給AutoCAD增加標注命令 ;vitg"Zh>
ry0 =N^
5*AKl< Jl
AutoCAD所提供的標注命令很有限,雖然國內有些二 次開發(fā)軟件也提供一些比較特殊的標注,但總不全面,為 此要求用戶增加一些專用的標注命令。AutoCAD有很多系統(tǒng) 變量,例如當前文本的固定字高這個系統(tǒng)變量為零或不為 零時,用TEXT命令寫文本時的命令格式就不一樣。而好的 應用程序必須在不改變當前系統(tǒng)變量的前提下,標注出與 當前系統(tǒng)設定的完全相同的格式文本。這就要求我們在程 序中讀取各種相關的變量并采用相應的命令格式。但文本 的固定字高等一些系統(tǒng)變量的讀取很不方便。因此筆者根 據(jù)自己的ADS編程經(jīng)驗,編寫了一些參考書中所沒有的應 用函數(shù),姑且包含在drawing.h文件中,讀者如想調用這 些函數(shù)只需在相關文件中增加一句#include“drawing.h ”即可(該文件放在..ιacadιads目錄下)。根據(jù)筆 者的測試,該函數(shù)系列能普遍用于各種C語言編譯器,如BC 、VC和WatcomC等(包括Auto?裁ADR12、R13的ForDOS和Fo rWindows的各種版本)。下面?zhèn)戎刂v解各結構變量和函數(shù) 的功能. H
#BgE29
*"ShE=\p
。1).結構structhgy―dim―char,包含有三個成 員變量,dim―scale、dim―text、dim―asz分別對應dims cale、dimtext、dimasz等變量,但本例函數(shù)中dim―text 、dim―asz分別是dimtext、dimasz變量與dimscale之積 (詳見函數(shù)get―dim―char())。 >UMnItq(l
.kIf1-(<U
。2).函數(shù)checkμtext(),檢查當前文本的固定 字高,若讀取當前字形名稱錯誤時返回0。反之,當固定 字高不為零時返回1,當固定字高為零時返回2.調用此函 數(shù)后由返回值來確定使用text命令的格式和是否繼續(xù)使用t ext命令。 gm DC,"Y<
DFonK{
。3).函數(shù)get―dim―char(structhgy―dim―cha r*dimchar),由結構指針通過地址來傳值,讀者在應用 時可以給結構增加更多的成員變量,并相應修改此函數(shù)即 可。 2. _cEY34
pB./L&h
另附上一標注倒角的函數(shù)(標注線與倒角平行并動態(tài) 地顯示)。用戶可以將該函數(shù)加入到任一ADS示范文件中 ,修改示范文件中定義命令名稱的結構,采用相應的批處 理編譯連接即可使用。該函數(shù)有兩處比較有特色,一是處 理選中的實體的數(shù)據(jù),它包含在for()循環(huán)中。另一處是 動態(tài)繪圖,包含在while()循環(huán)中。讀者可試著編譯連 接,領會其中動態(tài)繪圖的精要。其中主要有兩個ads函數(shù), 這里給出它們的原型: oB9m\o7$
EMG*8HRI>r
1.intadsμgrdarw(adsμpointfrom,adsμpointt o,intcolor,inth1),繪制失量函數(shù),其中h1非零時, 所畫的失量高亮顯示,否則正常顯示。 bRp[N
m!_ghD{5h
2.intadsμgrread(inttrack,int*type,struct resbuf*result),其中type返回設備的類型值和輸入特 性,讀取的信息存到自變量result中。具體操作請參閱程 序和有關書籍. Xhi?b|
[p:5]