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