余志偉
(江漢大學 智能制造學院,湖北 武漢 430056)
AutoCAD是目前較為先進的計算機輔助設計軟件之一,廣泛應用于機械、建筑、化工等領域。其功能強大、易學易用,并具有良好的開放性。但作為通用軟件無法解決實際使用中出現的所有問題。因此,需要在AutoCAD上進行二次開發,以滿足用戶的實際需要,提高使用效率,以達到事半功倍的效果。
ADS是指AutoCAD Development System。在AutoDesk公司開發的AutoCAD中,這是在R11.0-R14.0所用的開發方式。它包括一組AutoCAD專用的C函數庫及頭文件。一個ADS應用程序是一系列經過編譯和連接的C函數,這些函數作為AutoCAD的外部函數由AutoLISP調用。ADS應用程序是執行文件,可以在AutoCAD中運行。它和AutoCAD建立通訊聯接,獲得執行的結果。自AutoCAD2000起被淘汰已被融合于ObjectARX中。
ObjectARX程序本質是WindowsDLL程序,它們之間均采用Windows消息傳遞機制直接進行通信。還可以直接調用AutoCAD的函數、訪問數據庫和圖形系統。通過ObjectARX創建的自定義實體與AutoCAD內部實體沒有任何區別。由ObjectARX定義的外部命令與AutoCAD內部命令的執行機制是一樣的。
AutoLISP是AutoCAD內部解釋型的API語言,它適用于交互式程序的二次開發,它不是面向對象的語言,而是一種人工智能語言[1]。AutoLISP語言具有強大的圖形和數據處理能力,是工程專業人員常用的AutoCAD二次開發工具。
通過AutoLISP,用戶可以充分調用AutoCAD的現有資源,修改現有命令或者開發自己的新命令。也可以修改AutoCAD命令的功能,擴充其用途。VisualLISP是AutoLISP語言的更新和加強,提供了與AutoCAD ActiveX對象的接口函數,擴展了AutoLISP應用程序的功能。
VisualLISP具有獨立的集成開發環境(IDE),改善了Active X和AutoCAD對象模型之間的接口特性,大幅縮短了應用程序的開發周期。VisualLISP編譯成的二進制代碼無法直接讀取,所以它生成的應用程序更安全。VisualLISP程序調試過程簡潔,效率高。編譯后程序的運行效率比解釋型AutoLISP程序快幾倍[2]。
對于簡單的AutoLISP程序,或用DEFUN函數定義的簡單用戶函數,AutoLISP程序的執行過程可直接在AutoCAD環境中的“命令:”提示符運行。對于復雜的AutoLISP程序,需采用VisualLISP編輯器先編譯好,在用LOAD函數裝載后運行。如果程序中沒有DEFUN函數,則便加載邊運行。否則裝載后只在“命令:”提示符下輸入命令名或函數名即可運行[3]。
AutoLISP 程序編輯及運行過程如下:
(1)啟動 AutoCAD。
(2)打開AutoCAD的工具菜單,選擇AutoLISP(I)的VisualLISP編輯器(V)。
(3)打開VisualLISP(V)編輯器,新建文件編寫程序。
(4)完成程序編寫并保存。
(5)打開VisualLISP編輯器(V),加載所保存的文件。
(6)在_$提示符下,用LOAD函數加載程序,其格式為:(LOAD"文件名.LSP")加載成功返回函數名。
(7)在_$符號下或在AutoCAD的“命令:”提示符下執行函數。
(1)《機械制圖》中指引線標注樣式有3種形式。第一種樣式如圖1中的(a)所示,數字下面加下劃線。第二種樣式如圖1中的(b)所示,數字外面畫圓圈表示。第三種樣式如圖1中的(c)所示,數字直接標注在指引線末端即可。

圖1 指引線標注
通過AutoLISP編程,可以實現自動繪制需要的圖框樣式,部分程序代碼如圖2所示。

圖2 指引線標注樣式程序代碼
(2) 在裝配圖中,一般零件的指引線標注末端為小黑點。薄片類零件在剖視圖中,通過涂黑畫法替代剖面線,這時指引線的末端用實心三角形箭頭代替小黑的。如圖3所示。

圖3 常見指引線末端樣式
在AutoCAD中是通過DIMBLK(系統變量)來設置尺寸線末端顯示的箭頭塊。其類型為字符串,保存位置在圖形,通過""來設置其初始值。其中常用的形式為實心閉合"";點"_DOT";小點"_DOTSMALL";空心點"_DOTBLANK";空心小點"_SMALL"和無"_NONE"。要恢復默認設置(實心閉合箭頭顯示),請輸入單個句點 (.)。根據需要還可以輸入用戶定義的箭頭塊名稱。其中要注意的是注釋性塊不能用作標注或引線的自定義箭頭[4]。可以通過AutoLISP setvar函數來給系統變量賦值,從而改變箭頭塊的形狀。
(3) 一級和二級圓柱齒輪減速器是《機械制圖》和《機械設計》課程里面要畫的大作業,由于零件的種類特別多,所以指引線的編號數字也多。學生畫的時候普遍感覺到難度較大,特別是在繪制零件序號的時候比較麻煩。在原有的AutoCAD中,一般采用快速引線命令進行標注。每次都需要手動修改每個零件的序號,標注起來非常的繁瑣,效率低下。通過指引線標準命令的二次開發,使用起來方便快捷,提高了繪圖效率。
通過AutoLISP編程,可以自動實現零件序號數字的自動增加,大幅提高繪圖速度。部分程序代碼如圖4所示。

圖4 自動標號程序代碼
AutoCAD是目前較為先進的計算機輔助設計軟件之一,其功能強大、易學易用,并具有良好的開放性。但作為通用軟件無法解決實際使用中出現的所有問題。以AutoLISP語言作為開發工具, VisualLISP編譯環境作為開發平臺,對AutoCAD進行二次開發,以滿足用戶的實際需要,以達到事半功倍的效果。