陶文東
(楊凌職業(yè)技術(shù)學(xué)院,楊凌 712100)
歐特克計(jì)算機(jī)輔助設(shè)計(jì)(Autodesk Computer Aided Design,AutoCAD)軟件廣泛應(yīng)用于機(jī)械設(shè)計(jì)、工業(yè)制圖、工程制圖、土木建筑、裝潢設(shè)計(jì)以及服裝加工等行業(yè),功能強(qiáng)大,整體開放性好。AutoLISP是一種專為AutoCAD軟件設(shè)計(jì)的LISP編程語言。它作為嵌入在AutoCAD內(nèi)部的具有智能特點(diǎn)的編程語言,是AutoCAD二次開發(fā)應(yīng)用不可缺少的工具[1-2]。文章采用AutoLISP開發(fā)交互式對話框,實(shí)現(xiàn)機(jī)械典型零件的自動繪制,提高了零件的成圖效率。
AutoCAD二次開發(fā)指利用AutoCAD軟件的開發(fā)接口(AutoLISP、AutoCAD.NET API等)及編程語言來擴(kuò)展和定制AutoCAD的功能,使開發(fā)人員能夠編寫自定義程序和插件,以滿足特定的設(shè)計(jì)和繪圖需求。通過AutoCAD的二次開發(fā),可以實(shí)現(xiàn)自動化任務(wù),定制命令和界面,進(jìn)行數(shù)據(jù)交互和處理,創(chuàng)建新的對象和實(shí)體等。AutoLISP作為AutoCAD二次開發(fā)的重要工具,主要用于與AutoCAD的繪圖數(shù)據(jù)庫交互、修改幾何圖形、創(chuàng)建新對象和相關(guān)計(jì)算等,可以幫助用戶和開發(fā)人員快速、高效地定制和擴(kuò)展AutoCAD的功能,極大地提高了AutoCAD的繪圖效率[3-4]。
在實(shí)際生產(chǎn)過程中,零部件設(shè)計(jì)經(jīng)常會遇到形狀相似但尺寸不同的同類型零件工程圖,繪圖過程單調(diào)煩瑣,且成圖效率低。鑒于此,可通過繪圖軟件的二次開發(fā),利用參數(shù)化繪圖的形式實(shí)現(xiàn)零件二維圖和三維模型的繪制。在機(jī)械設(shè)計(jì)中,參數(shù)化繪圖主要適用于系列化、規(guī)格化的產(chǎn)品,尤其是機(jī)械領(lǐng)域的標(biāo)準(zhǔn)件,如齒輪、軸、螺釘、螺母、法蘭、墊圈和軸承等[5]。法蘭盤作為一種連接零件,在工程應(yīng)用中主要用于軸與軸的連接、管道間的連接等,種類繁多,結(jié)構(gòu)形式多樣。文章利用AutoLISP開發(fā)編制法蘭盤程序,通過給定的法蘭盤命令獲取交互式對話框,自動實(shí)現(xiàn)法蘭盤三維模型的繪制。
根據(jù)法蘭盤零件圖分析零件的形狀和尺寸,確定結(jié)構(gòu)形式,選擇零件的主要尺寸參數(shù)。如果零件的某些尺寸之間存在一定的關(guān)系,那么確定尺寸參數(shù)時需要查閱相關(guān)資料或建立數(shù)學(xué)關(guān)系,并通過參數(shù)完成其他方面的設(shè)置和要求。設(shè)計(jì)過程中,根據(jù)零件結(jié)構(gòu)和尺寸參數(shù)之間的關(guān)系編制程序,可設(shè)計(jì)出同類型的產(chǎn)品模型,通過改變零件尺寸參數(shù)得到不同尺寸的零件模型[6]。根據(jù)零件的結(jié)構(gòu)特點(diǎn),將主要結(jié)構(gòu)尺寸確定為參數(shù)化繪圖程序的設(shè)計(jì)參數(shù),變量參數(shù)可表示為外直徑D、內(nèi)直徑d2、外直徑d1、圓臺高h(yuǎn)1、總高H,文件以flange.DCL命名。法蘭盤零件剖面圖,如圖1所示。
圖1 法蘭盤剖面圖
對話框是一種便捷固定的窗口,也是一種先進(jìn)的人機(jī)交互界面。運(yùn)用對話框可以方便直觀地實(shí)現(xiàn)程序設(shè)計(jì)時的數(shù)據(jù)傳輸和信息傳輸。在AutoCAD中采用對話框設(shè)計(jì)語言(Dialog Control Language,DCL),運(yùn)用DCL編寫的對話框主要考慮各尺寸參數(shù)及控件的布局,即界面的交互性和可觀性。在零件圖的繪制中,對話框應(yīng)包含零件圖中各個參數(shù)的內(nèi)容,即控件組。只需用戶提供基本的位置信息,AutoCAD就可以自動確定對話框的大小和布局[7]。對話框的DCL程序也可在專門的LISP編程軟件中編輯,但需另存為DCL源文件。
法蘭盤對話框的DCL部分程序?yàn)?/p>
對話框文件描述了對話框的結(jié)構(gòu)和外觀、所屬控件的式樣和功能以及控件的布局,但要將對話框顯示到屏幕上,使對話框連同各控件發(fā)揮作用,必須靠程序驅(qū)動。編寫對話框的驅(qū)動程序,完成繪圖程序與對話框程序的連接,是整個開發(fā)過程的關(guān)鍵[8]。利用AutoLISP語言編寫對話框驅(qū)動程序,首先加載對話框文件,將對話框顯示到屏幕上。其次,根據(jù)對話框文件中控件的屬性值初始化控件,激活對話框。再次,用戶操作對話框,控件根據(jù)用戶的操作執(zhí)行相應(yīng)的動作。最后,卸載對話框,對話框向應(yīng)用程序傳遞數(shù)據(jù)[9]。在整個流程中,如何一個步驟顯示出錯,程序都將結(jié)束。具體流程如圖2所示。
圖2 驅(qū)動程序流程圖
采用AutoLISP編制法蘭盤程序,過程如下:首先,獲取法蘭盤的主要尺寸參數(shù),如內(nèi)徑、外徑、圓臺高等;其次,根據(jù)參數(shù)繪制截面,繞軸線旋轉(zhuǎn);最后,繪制定位孔,進(jìn)行陣列和差集操作,得到法蘭盤的三維模型[10]。
繪制法蘭盤的部分程序?yàn)?/p>
在AutoCAD的“命令”對話窗口輸入“flange”并回車,可以看到法蘭盤交互式對話框,如圖3所示。在對話框中輸入法蘭盤零件的相應(yīng)參數(shù),可得到法蘭盤的三維圖。為了方便查看圖形,在窗口中通過不同視角顯示模型。法蘭盤三維效果圖,如圖4所示。
圖3 法蘭盤交互式對話框
圖4 法蘭盤三維效果圖
AutoLISP語言作為一種AutoCAD軟件的二次開發(fā)工具,能夠?qū)崿F(xiàn)參數(shù)化和自動化繪圖,從而達(dá)到高效準(zhǔn)確的繪圖目的,使繪圖工作變得輕松快捷,提高了成圖效率和經(jīng)濟(jì)效益,減少了設(shè)計(jì)人員的機(jī)械性、重復(fù)性操作。