王 艷
(武漢工程職業(yè)技術(shù)學(xué)院 湖北 武漢:430080)
在AutoCAD中雖然有圖塊這個(gè)工具,可以解決重復(fù)繪制問題,但圖塊適用于圖形形狀相似且有比例關(guān)系的情況,用圖塊可以提高繪圖效率。而實(shí)際工作中存在這樣的棘手問題:圖形是同類型,結(jié)構(gòu)一致,但沒有確定的比例關(guān)系,若使用圖塊這個(gè)工具,那么工作效率將大大降低。而我們可以利用AutoCAD提供的開發(fā)環(huán)境,使用AutoLISP語言來解決這個(gè)問題。
本年度機(jī)械類專業(yè)高職生的畢業(yè)設(shè)計(jì)中選擇學(xué)習(xí)實(shí)踐“基于AutoCAD平臺(tái)的工程圖幅自動(dòng)生成程序的編制”這個(gè)課題就是基于“建立參數(shù)化繪圖系統(tǒng)”這個(gè)思想。以工程圖幅為例,編寫基于Auto-CAD平臺(tái)的工程圖幅自動(dòng)生成程序,實(shí)際工作中,繪圖者只要根據(jù)實(shí)際出圖需要,選擇幅面和有關(guān)工程參數(shù),即可完成輸出圖形之前的工程圖幅自動(dòng)生成,為圖紙的規(guī)范化和標(biāo)準(zhǔn)化、出圖效率提供保證。
由此類推,其他比如軸承、法蘭、螺母、螺桿、聯(lián)軸器等標(biāo)準(zhǔn)件、常用件均可用此思想實(shí)現(xiàn)參數(shù)化繪圖,只要在繪圖時(shí)調(diào)入所編寫的程序,通過對話框輸入簡單的幾個(gè)參數(shù),便自動(dòng)生成我們需要的圖形,這將極大地提高實(shí)際工作中的繪圖效率,真正實(shí)現(xiàn)計(jì)算機(jī)輔助設(shè)計(jì)或計(jì)算機(jī)輔助繪圖。
設(shè)計(jì)基于AutoCAD平臺(tái)的工程圖幅自動(dòng)生成程序,屬于AutoCAD的二次開發(fā),AutoCAD二次開發(fā)的語言基礎(chǔ)是AutoLISP語言。AutoLISP使用的數(shù)據(jù)類型有整型數(shù)、實(shí)型數(shù)、字符串、符號、表、選擇集、實(shí)體名、子程序和外部子程序。AutoLISP的變量不需要定義和說明,變量的數(shù)據(jù)類型取決于變量被賦值的類型。AutoLISP的表達(dá)式相當(dāng)于程序的語言,它是AutoLISP的處理對象,這種表達(dá)式采用前綴表示法,它的運(yùn)算符位于所有的操作數(shù)之前。AutoLISP有多種函數(shù),它們是數(shù)值計(jì)算和標(biāo)準(zhǔn)函數(shù)、賦值函數(shù)和邏輯函數(shù)、求值函數(shù)和轉(zhuǎn)換函數(shù)、字符處理函數(shù)和關(guān)系函數(shù)、表處理函數(shù)、條件和迭代函數(shù)、交互輸入函數(shù)和command函數(shù)、自定義函數(shù)和AutoCAD系統(tǒng)的新命令、輸出函數(shù)。AutoLISP以表的形式來調(diào)用函數(shù)。
參數(shù)化繪圖系統(tǒng)中交互式界面多是對話框界面。一個(gè)對話框要完整實(shí)現(xiàn),需要一個(gè)對話框定義程序和一個(gè)對話框AutoLISP驅(qū)動(dòng)程序。對話框定義程序是對擬建立的對話框的各個(gè)控件和其布局格式進(jìn)行的定義,其程序文件的擴(kuò)展名是*.dcl。一個(gè)對話框由按鈕、文本框、列表框、圖像等基本控件或組合控件組成。AutoCAD系統(tǒng)中的Base.dcl文件提供了這些控件。用對話框語言DCL(Dialog Control Language)編寫對話框時(shí)直接引用這些控件。這些控件有其自身的屬性和功能。AutoLISP驅(qū)動(dòng)程序是用來驅(qū)動(dòng)對話框的,在AutoLISP驅(qū)動(dòng)程序中可對其中的控件進(jìn)行控制。在AutoCAD繪圖界面,主菜單“工具”下的“AutoLISP”,可進(jìn)入“AutoLISP編輯器”,從而進(jìn)入AutoCAD二次開發(fā)界面。
“基于AutoCAD平臺(tái)的工程圖幅自動(dòng)生成程序的編制”首先涉及制圖國家標(biāo)準(zhǔn)中對圖紙的幅面和格式、比例、字體、圖線和尺寸標(biāo)注等參數(shù)和格式的規(guī)定。從國標(biāo)制圖手冊中找到其中的相關(guān)內(nèi)容,這些內(nèi)容是AutoCAD二次開發(fā)將使用的實(shí)際參數(shù)和圖線。
然后在AutoCAD繪圖區(qū)域,繪出標(biāo)題欄的共性參數(shù)和共性圖線,并保存為BTL.DWG文件。參見圖1所示。
圖1 共性參數(shù)、共性圖線的標(biāo)題欄
根據(jù)上述實(shí)際參數(shù)和圖線,實(shí)現(xiàn)“工程圖幅自動(dòng)生成程序”的編寫。
對話框用于接受操作者輸入圖紙上的相關(guān)參數(shù)。
(1)外形設(shè)計(jì):如圖2所示為工程圖幅的參數(shù)化繪圖程序中調(diào)用的對話框界面。
圖2 對話框外形設(shè)計(jì)
(2)對話框結(jié)構(gòu)設(shè)計(jì):從對話框標(biāo)題欄開始,從上到下,從左到右,分別布置控件,共有4個(gè)下拉式列表框控件、5個(gè)編輯框控件、1個(gè)復(fù)選框控件、確定-取消控件,結(jié)構(gòu)如圖3所示。
(3)對話框程序代碼的編寫:在AutoCAD繪圖界面,“工具”主菜單下的“AutoLISP”可進(jìn)入“AutoLISP編輯器”,在“Visual LISP”界面,新建文件,輸入代碼,保存文件在安裝目錄中support下,文件名gcttk.dcl。
(1)工程圖幅的參數(shù)化繪圖程序的流程圖,如圖4所示。
(2)根據(jù)該流程圖編制程序:在AutoCAD繪圖界面,“工具”主菜單下的“AutoLISP”可進(jìn)入“AutoLISP編輯器”,在“Visual LISP”界面,新建文件,輸入代碼,保存文件在安裝目錄中support下,文件名gcttk.lsp。
在AutoCAD繪圖界面,加載“工程圖幅的參數(shù)化繪圖程序”gcttk.lsp。如圖5所示,單擊“關(guān)閉”按鈕。
圖3 對話框結(jié)構(gòu)設(shè)計(jì)
圖4 繪圖程序流程圖
在AutoCAD繪圖界面,像輸入其他命令一樣輸入gcttk,出現(xiàn)如圖2所示對話框,選擇和填寫參數(shù)。假設(shè)填寫內(nèi)容如圖6所示。則在AutoCAD繪圖界面上4號工程圖幅自動(dòng)生成,結(jié)果如圖7所示。
圖5 所加載繪圖程序的界面
圖6 對話框?qū)嵗?
圖7 工程圖幅自動(dòng)生成實(shí)例
本文通過AutoCAD中的AutoLISP編輯器,開發(fā)一個(gè)自動(dòng)生成工程圖幅的參數(shù)化繪圖系統(tǒng)。該開發(fā)過程是通過機(jī)械專業(yè)學(xué)生的畢業(yè)設(shè)計(jì)來實(shí)現(xiàn)的。通過這一工作,讓學(xué)生了解到此種繪圖方式不同于過去所學(xué)的方式,這種方式將對實(shí)際工作中的結(jié)構(gòu)和尺寸均已標(biāo)準(zhǔn)化的標(biāo)準(zhǔn)件或常用件的繪圖工作來說,其效率將大大提高。如果我們是長期從事機(jī)械設(shè)計(jì)或制造工作的人員,在做齒輪、軸承、法蘭、螺母、螺桿、聯(lián)軸器等標(biāo)準(zhǔn)件、常用件的基礎(chǔ)工作時(shí),這種方式值得學(xué)習(xí)和推廣。
注:本文圖紙?jiān)O(shè)計(jì)參照武鋼設(shè)計(jì)研究院實(shí)際工程圖紙。
[1] 劉言松,賀 煒.AutoCAD二次開發(fā)實(shí)例教程[M].北京:化學(xué)工業(yè)出版社,2009.
[2] 李學(xué)志.Visual LISP程序設(shè)計(jì)[M].北京:清華大學(xué)出版社, 2006.
[3] 王 艷.AutoCAD工程制圖基礎(chǔ)教程[M].武漢:華中科技大學(xué)出版社,2007.