給AutoCAD增加標注命令
介紹AutoCAD是一種廣泛使用的計算機輔助設計軟件,用于制作二維和三維設計圖。然而,AutoCAD所提供的標注命令相對有限,并且國內二次開發(fā)軟件中提供的也不夠全面。因此,為了滿足用戶的需求,我們可以
介紹
AutoCAD是一種廣泛使用的計算機輔助設計軟件,用于制作二維和三維設計圖。然而,AutoCAD所提供的標注命令相對有限,并且國內二次開發(fā)軟件中提供的也不夠全面。因此,為了滿足用戶的需求,我們可以通過增加一些專用的標注命令來擴展AutoCAD的功能。
使用系統(tǒng)變量
AutoCAD中有許多系統(tǒng)變量,例如當前文本的固定字高。當這個系統(tǒng)變量為零或非零時,使用TEXT命令編寫文本的格式不同。在編寫應用程序時,我們需要讀取各種相關的變量并采用相應的命令格式,但是讀取文本的固定字高等一些系統(tǒng)變量并不方便。為了解決這個問題,筆者根據自己的ADS編程經驗編寫了一些參考書中沒有的應用函數,并將其包含在drawing.h文件中。如果讀者想要調用這些函數,只需在相關文件中增加一句include "drawing.h"即可。
函數系列
經過測試,該函數系列能夠普遍適用于各種C語言編譯器,如BC、VC和WatcomC等,包括AutoCAD R12、R13的ForDOS和ForWindows的各種版本。下面將重點介紹各結構變量和函數的功能。
結構struct hgy_dim_char
這個結構包含有三個成員變量,分別是dim_scale、dim_text和dim_asz,對應了AutoCAD中的dimscale、dimtext和dimasz等變量。在本例函數中,dim_text和dim_asz分別是dimtext和dimasz變量與dimscale之積(詳見函數get_dim_char())。
函數check_mtext()
這個函數用于檢查當前文本的固定字高,如果讀取當前字形名稱錯誤,則返回0。反之,當固定字高不為零時返回1,當固定字高為零時返回2。通過調用此函數,我們可以確定使用TEXT命令的格式以及是否繼續(xù)使用TEXT命令。
函數get_dim_char(struct hgy_dim_char *dim_char)
這個函數通過結構指針和地址傳值,讀者可以根據自己的需求在應用時給結構增加更多的成員變量,并相應修改此函數。這個函數在實際應用中非常靈活。
標注倒角的函數
附上一個標注倒角的函數,用戶可以將其加入到任意ADS示范文件中。同時,需要修改示范文件中定義命令名稱的結構,并采用相應的處理進行編譯連接。這個函數有兩個比較特色的地方,一是處理選中的實體的數據,它包含在for循環(huán)中;另一個是動態(tài)繪圖,它包含在while循環(huán)中。讀者可以嘗試編譯連接,深入理解其中動態(tài)繪圖的精髓。其中兩個主要的ADS函數原型如下:
1. int ads_grdraw(ads_point from, ads_point to, int color, int h1):這個函數用于繪制失量函數,當h1非零時,所畫的失量會高亮顯示,否則正常顯示。
2. int ads_grread(int track, int *type, struct resbuf *result):這個函數用于讀取設備的類型值和輸入特性,讀取的信息存儲在自變量result中。
以上是關于給AutoCAD增加標注命令的一些介紹和相關函數的說明,具體操作請參閱相關的編程手冊和教程。