余志偉
(江漢大學 智能制造學院,湖北 武漢 430056)
AutoCAD是目前較為先進的計算機輔助設計軟件之一,廣泛應用于機械、建筑、化工等領域。其功能強大、易學易用,并具有良好的開放性。但作為通用軟件無法解決實際使用中出現(xiàn)的所有問題。因此,需要在AutoCAD上進行二次開發(fā),以滿足用戶的實際需要,提高使用效率,以達到事半功倍的效果。
ADS是指AutoCAD Development System。在AutoDesk公司開發(fā)的AutoCAD中,這是在R11.0-R14.0所用的開發(fā)方式。它包括一組AutoCAD專用的C函數(shù)庫及頭文件。一個ADS應用程序是一系列經(jīng)過編譯和連接的C函數(shù),這些函數(shù)作為AutoCAD的外部函數(shù)由AutoLISP調(diào)用。ADS應用程序是執(zhí)行文件,可以在AutoCAD中運行。它和AutoCAD建立通訊聯(lián)接,獲得執(zhí)行的結(jié)果。自AutoCAD2000起被淘汰已被融合于ObjectARX中。
ObjectARX程序本質(zhì)是WindowsDLL程序,它們之間均采用Windows消息傳遞機制直接進行通信。還可以直接調(diào)用AutoCAD的函數(shù)、訪問數(shù)據(jù)庫和圖形系統(tǒng)。通過ObjectARX創(chuàng)建的自定義實體與AutoCAD內(nèi)部實體沒有任何區(qū)別。由ObjectARX定義的外部命令與AutoCAD內(nèi)部命令的執(zhí)行機制是一樣的。
AutoLISP是AutoCAD內(nèi)部解釋型的API語言,它適用于交互式程序的二次開發(fā),它不是面向?qū)ο蟮恼Z言,而是一種人工智能語言[1]。AutoLISP語言具有強大的圖形和數(shù)據(jù)處理能力,是工程專業(yè)人員常用的AutoCAD二次開發(fā)工具。
通過AutoLISP,用戶可以充分調(diào)用AutoCAD的現(xiàn)有資源,修改現(xiàn)有命令或者開發(fā)自己的新命令。也可以修改AutoCAD命令的功能,擴充其用途。VisualLISP是AutoLISP語言的更新和加強,提供了與AutoCAD ActiveX對象的接口函數(shù),擴展了AutoLISP應用程序的功能。
VisualLISP具有獨立的集成開發(fā)環(huán)境(IDE),改善了Active X和AutoCAD對象模型之間的接口特性,大幅縮短了應用程序的開發(fā)周期。VisualLISP編譯成的二進制代碼無法直接讀取,所以它生成的應用程序更安全。VisualLISP程序調(diào)試過程簡潔,效率高。編譯后程序的運行效率比解釋型AutoLISP程序快幾倍[2]。
對于簡單的AutoLISP程序,或用DEFUN函數(shù)定義的簡單用戶函數(shù),AutoLISP程序的執(zhí)行過程可直接在AutoCAD環(huán)境中的“命令:”提示符運行。對于復雜的AutoLISP程序,需采用VisualLISP編輯器先編譯好,在用LOAD函數(shù)裝載后運行。如果程序中沒有DEFUN函數(shù),則便加載邊運行。否則裝載后只在“命令:”提示符下輸入命令名或函數(shù)名即可運行[3]。
AutoLISP 程序編輯及運行過程如下:
(1)啟動 AutoCAD。
(2)打開AutoCAD的工具菜單,選擇AutoLISP(I)的VisualLISP編輯器(V)。
(3)打開VisualLISP(V)編輯器,新建文件編寫程序。
(4)完成程序編寫并保存。
(5)打開VisualLISP編輯器(V),加載所保存的文件。
(6)在_$提示符下,用LOAD函數(shù)加載程序,其格式為:(LOAD"文件名.LSP")加載成功返回函數(shù)名。
(7)在_$符號下或在AutoCAD的“命令:”提示符下執(zhí)行函數(shù)。
(1)《機械制圖》中指引線標注樣式有3種形式。第一種樣式如圖1中的(a)所示,數(shù)字下面加下劃線。第二種樣式如圖1中的(b)所示,數(shù)字外面畫圓圈表示。第三種樣式如圖1中的(c)所示,數(shù)字直接標注在指引線末端即可。
圖1 指引線標注
通過AutoLISP編程,可以實現(xiàn)自動繪制需要的圖框樣式,部分程序代碼如圖2所示。
圖2 指引線標注樣式程序代碼
(2) 在裝配圖中,一般零件的指引線標注末端為小黑點。薄片類零件在剖視圖中,通過涂黑畫法替代剖面線,這時指引線的末端用實心三角形箭頭代替小黑的。如圖3所示。
圖3 常見指引線末端樣式
在AutoCAD中是通過DIMBLK(系統(tǒng)變量)來設置尺寸線末端顯示的箭頭塊。其類型為字符串,保存位置在圖形,通過""來設置其初始值。其中常用的形式為實心閉合"";點"_DOT";小點"_DOTSMALL";空心點"_DOTBLANK";空心小點"_SMALL"和無"_NONE"。要恢復默認設置(實心閉合箭頭顯示),請輸入單個句點 (.)。根據(jù)需要還可以輸入用戶定義的箭頭塊名稱。其中要注意的是注釋性塊不能用作標注或引線的自定義箭頭[4]??梢酝ㄟ^AutoLISP setvar函數(shù)來給系統(tǒng)變量賦值,從而改變箭頭塊的形狀。
(3) 一級和二級圓柱齒輪減速器是《機械制圖》和《機械設計》課程里面要畫的大作業(yè),由于零件的種類特別多,所以指引線的編號數(shù)字也多。學生畫的時候普遍感覺到難度較大,特別是在繪制零件序號的時候比較麻煩。在原有的AutoCAD中,一般采用快速引線命令進行標注。每次都需要手動修改每個零件的序號,標注起來非常的繁瑣,效率低下。通過指引線標準命令的二次開發(fā),使用起來方便快捷,提高了繪圖效率。
通過AutoLISP編程,可以自動實現(xiàn)零件序號數(shù)字的自動增加,大幅提高繪圖速度。部分程序代碼如圖4所示。
圖4 自動標號程序代碼
AutoCAD是目前較為先進的計算機輔助設計軟件之一,其功能強大、易學易用,并具有良好的開放性。但作為通用軟件無法解決實際使用中出現(xiàn)的所有問題。以AutoLISP語言作為開發(fā)工具, VisualLISP編譯環(huán)境作為開發(fā)平臺,對AutoCAD進行二次開發(fā),以滿足用戶的實際需要,以達到事半功倍的效果。