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