AutoCAD有很多系統(tǒng)變量,例如當(dāng)前文本的固定字高這個系統(tǒng)變量為零或不為零時,用TEXT命令寫文本時的命令格式就不一樣。而好的 應(yīng)用程序必須在不改變當(dāng)前系統(tǒng)變量的前提下,標(biāo)注出與當(dāng)前系統(tǒng)設(shè)定的完全相同的格式文本。這就要求我們在程序中讀取各種相關(guān)的變量并采用相應(yīng)的命令格式。但文本的固定字高等一些系統(tǒng)變量的讀取很不方便。AutoCAD所提供的標(biāo)注命令很有限,雖然國內(nèi)有些二次開發(fā)軟件也提供一些比較特殊的標(biāo)注,但總不全面,為此要求用戶增加一些專用的標(biāo)注命令。
lGt:.p{NG 2acTw# 筆者根據(jù)自己的ADS編程經(jīng)驗,編寫了一些參考書中所沒有的應(yīng)用函數(shù),姑且包含在drawing.h文件中,讀者如想調(diào)用這 些函數(shù)只需在相關(guān)文件中增加一句#include“drawing.h ”即可(該文件放在..ιacadιads目錄下)。根據(jù)筆 者的測試,該函數(shù)系列能普遍用于各種C語言編譯器,如BC 、VC和WatcomC等(包括Auto?CADR12、R13的ForDos和Fo rWindows的各種版本)。下面?zhèn)戎刂v解各結(jié)構(gòu)變量和函數(shù)的功能。
ZWni5uF-c Zd'Yu{<_2N (1).結(jié)構(gòu)structhgy—dim—char,包含有三個成 員變量,dim—scale、dim—text、dim—asz分別對應(yīng)dims cale、dimtext、dimasz等變量,但本例函數(shù)中dim—text 、dim—asz分別是dimtext、dimasz變量與dimscale之積 (詳見函數(shù)get—dim—char())。
w59q* 2 I4|"Ztw (2).函數(shù)checkμtext(),檢查當(dāng)前文本的固定 字高,若讀取當(dāng)前字形名稱錯誤時返回0。反之,當(dāng)固定 字高不為零時返回1,當(dāng)固定字高為零時返回2.調(diào)用此函 數(shù)后由返回值來確定使用text命令的格式和是否繼續(xù)使用t ext命令。
73B[|J* Uq @].3nf (3).函數(shù)get—dim—char(structhgy—dim—cha r*dimchar),由結(jié)構(gòu)指針通過地址來傳值,讀者在應(yīng)用 時可以給結(jié)構(gòu)增加更多的成員變量,并相應(yīng)修改此函數(shù)即 可。
%{7*o5` L/E7xLz 另附上一標(biāo)注倒角的函數(shù)(標(biāo)注線與倒角平行并動態(tài) 地顯示)。用戶可以將該函數(shù)加入到任一ADS示范文件中 ,修改示范文件中定義命令名稱的結(jié)構(gòu),采用相應(yīng)的批處 理編譯連接即可使用。該函數(shù)有兩處比較有特色,一是處 理選中的實體的數(shù)據(jù),它包含在for()循環(huán)中。另一處是 動態(tài)
繪圖,包含在while()循環(huán)中。讀者可試著編譯連 接,領(lǐng)會其中動態(tài)繪圖的精要。其中主要有兩個ads函數(shù), 這里給出它們的原型:
}.pqV
X{d V