西安航空動力控制科技有限公司 西安 710077
在繪制系列化產品設計圖樣時,因為包含著許多形狀結構相似但參數不同的零件,使設計人員不可避免地要進行大量重復性繪圖工作,導致工作效率低下。要解決這個問題,可以在AutoCAD軟件平臺上應用其內嵌的AutoLISP語言進行編程二次開發,依據國家標準和行業標準,結合企業自身特點,自定義繪圖命令,實現參數化繪圖設計。
AutoCAD作為Autodesk公司推出的一種通用的計算機輔助設計和圖形處理軟件,具有易于掌握、使用方便、繪圖精確和體系結構開放等優點。AutoCAD以強大的繪圖功能和便利的交互式操作風格深受廣大科技人員的青睞,是現在普遍使用的計算機輔助設計軟件,已廣泛應用于機械、建筑、電子、化工、航空、航天等領域。AutoCAD的缺點是專業性、針對性不強,因此Autodesk公司在AutoCAD 2.18版及之后的版本中內嵌了AutoLISP語言編程開發工具[1-3]。
AutoLISP是LISP語言的一個分支,具有很強的數據表格處理功能,它與AutoCAD繪圖命令相結合,可以存取和修改AutoCAD圖形實體數據,存取AutoCAD的塊表、層表、視圖表、字體表及線型表,控制AutoCAD圖形屏幕和設備輸入等,并可直接調用全部的AutoCAD命令[4]。相比其它編程語言,AutoLISP語言簡便易學,既具有一般高級語言的基本結構和功能,又具有一般高級語言所沒有的強大圖形處理功能,是應用AutoCAD的一種重要手段[5]。
所謂參數化繪圖設計,是指繪圖平臺能夠根據用戶輸入的相關參數信息,自動生成所需的圖樣,要求設計或開發人員事先根據所要繪制的零件結構及圖樣進行相應的程序設計。參數化繪圖設計可以遵循以下步驟。
(1)分析結構特征,確定繪圖參數,將既能體現零件結構特征,又能推導出其它尺寸的基本尺寸確定為繪圖參數,參數應簡潔明了[6]。
(2)輸入繪圖參數,應用DCL語言設計對話框。對話框主要考慮繪圖參數的輸入和相關布局,可在對話框中用幻燈片文件來顯示各繪圖參數的含義。應用DCL語言定義對話框屬于界面描述,不能獨立運行,需要以PDB函數為基礎的LISP程序來驅動,這樣才能實現指定的功能,獲取繪圖參數[7]。
(3)按照繪圖需要,編寫繪圖程序。根據獲取的繪圖參數,按照繪圖需要,進行相關坐標轉換,編寫相應的圖形繪制程序。程序編寫完成后保存為.LISP格式文件,類型名為LSP。
(4)裝載相關程序,繪制所需圖形。在編輯器中編輯好的LISP程序,必須經過加載方能使用。加載LISP程序有以下幾種方式。
① 命令行方式。在“command”提示下輸入“load"驅動器:\路徑\文件名"”,用Load函數裝載。
②對話框方式。在 “command”提示下輸入“Appload”, 或選擇下拉菜單 “工具”→“AutoLISP”→“加載”選項,在出現“加載/卸載應用程序”對話框后,選擇所編寫的LISP程序進行加載即可。
③自動加載。在AutoCAD工作目錄下有一個ACADLISP文件,它是AutoCAD啟動時自動加載的AutoLISP程序。用戶想要在AutoCAD啟動時自動加載自己定義的程序,在這個ACADLISP文件中加入“load"驅動器:\路徑 \文件名"”即可[8]。
④添加用戶工具按鈕。用以上幾種方法加載LISP程序,用戶只能在當前圖形文件中執行,如果退出當前圖形文件并打開另一圖形文件,原來已加載的LISP程序將會自動從內存中清除,必須再次加載才能使用。這個缺陷可以通過添加用戶工具按鈕的方法予以解決。限于篇幅原因,這一方法的具體操作在此不作介紹。
(5)參數化繪圖。在AutoCAD環境中,LISP程序被加載后就可以運行了。運行時,在“command”提示符下鍵入defun定義的函數名,就會出現相應的對話框,輸入相關參數后點擊“確定”按鈕,根據提示進行相應輸入后,就可以繪制所需的圖形[9-10]。
筆者在工作中經常需要繪制定位銷圖樣,所繪制的定位銷大多數形狀相同,但尺寸不一樣。盡管計算機硬盤上存有以前繪制的圖樣,可以通過更改尺寸標注的方法或是用塊插入命令方式實現繪圖,但這些方法的缺點是輸出的圖樣與所設計的零件實際形狀不成比例,存在視覺誤差。若采用AutoLISP編程,實現參數化繪圖設計,不但可以縮短繪圖時間,而且可以使圖形繪制得準確、美觀。以下以圖1所示定位銷的參數化繪圖設計為例,介紹其實現過程。
(1)根據定位銷結構特征進行分析,確定定位銷的直徑d1、d2、D和長度L、L1為繪圖參數。
(2)為了使編制的程序用起來更加方便,輸入定位銷繪圖參數時采用對話框形式,應用DCL語言編寫一個對話框文件,在對話框中增加一個圖像按鈕,用幻燈片文件來顯示各繪圖參數的含義。對話框界面如圖2所示。
(3)根據輸入的繪圖參數,確定其它參數,換算繪圖坐標,用LISP語言編寫定位銷的參數化繪圖程序。主程序流程如圖3所示。

▲圖1 定位銷
(4) 在 AutoCAD環境中,相關程序被加載后就可以運行了。運行時,在“command”提示符下鍵入文件函數名,就會出現對話框。輸入相關繪圖參數后,若點擊“取消”按鈕,則將退出此程序;若點擊“確定”按鈕,則對話框將關閉,并提示輸入繪圖基點。選取合適的繪圖基點后,就可以繪出定位銷圖形了。
如果是實心定位銷,在對話框中輸入D=0,就可以繪制出如圖4所示的圖形。

▲圖2 對話框界面

▲圖3 主程序流程

▲圖4 實心定位銷
上述定位銷參數化繪圖設計實例較簡單,目的是介紹應用AutoLISP語言在AutoCAD平臺上實現參數化繪圖設計的思路和方法。在理解和掌握方法的基礎上,對于較為復雜的問題,可以逐步分解為簡單問題來處理。
從應用實例可以看出,與直接利用AutoCAD命令進行交互式繪圖相比,采用基于AutoCAD內嵌的AutoLISP語言進行參數化繪圖設計,可以大大減少工程設計人員不必要的重復繪圖,提高設計效率。因此,可以說自從AutoCAD嵌入AutoLISP之后,使作為交互式圖形編輯軟件的AutoCAD發展為真正意義上進行計算機輔助設計、繪圖的軟件。AutoLISP語言程序可以在現今流行的各個版本AutoCAD中使用,它的許多新增功能和優點有待進一步學習和開發。