胡 珺,王洪九,王漢林(江漢大學 機電與建筑工程學院,湖北 武漢 430056)
基于AutoLISP的離子氮化爐爐體組件模塊開發(fā)
胡珺,王洪九,王漢林
(江漢大學機電與建筑工程學院,湖北武漢430056)
摘要:研究了AutoCAD環(huán)境下實現(xiàn)離子氮化爐爐體設計的參數(shù)化繪圖開發(fā)。提供了基于AutoLISP技術進行爐體組件模塊的開發(fā)設計方案,并以爐體下進水管座為具體對象給出相關程序。該方法對開發(fā)其他定型機械產(chǎn)品CAD系統(tǒng)具有借鑒價值。
關鍵詞:AutoCAD;離子氮化爐;AutoLISP
傳統(tǒng)人機交互繪圖是以生成精確固定尺寸圖形為目的,對于新產(chǎn)品設計及相似性結構圖形繪制則可通過二次開發(fā)參數(shù)化繪圖程序完成。參數(shù)化繪圖設計具有很強的草圖設計和尺寸驅(qū)動功能,通過約束參數(shù)修改達到系列產(chǎn)品圖形生成和開發(fā)的目的。
AutoCAD軟件是目前工程設計中應用最廣的軟件,它是由美國Autodesk公司開發(fā)的通用計算機輔助設計軟件。AutoCAD二次開發(fā)環(huán)境主要有:AutoLISP、VisualLISP、VBA、ObjectARX、DCL等。用戶可以利用這些內(nèi)嵌式編程語言進行二次開發(fā)從而擴充AutoCAD的功能,提高產(chǎn)品設計品質(zhì)和效率。
AutoLISP是AutoCAD二次開發(fā)的主要工具之一,是內(nèi)嵌的基礎性開發(fā)工具。AutoLISP是一種解釋性表結構處理語言,具有算術運算、關系運算與邏輯運算、字符處理、表處理、輸入輸出等常用功能,語法簡潔,程序控制結構靈活,并能直接調(diào)用AutoCAD實體繪圖命令,實現(xiàn)對屏幕圖形數(shù)據(jù)庫進行直接訪問與修改,程序文件所需存儲空間小、通用性強、開發(fā)周期短。同時,AutoLISP也是人工智能領域中應用最廣泛的程序設計語言,便于教學使用,以達到掌握人工智能繪圖語言的目的[1-2]。本文通過離子氮化爐爐體組件模塊開發(fā)為例說明解決實際工程類標準件自動繪制問題的方法。
1.1參數(shù)化繪圖
參數(shù)化繪圖適用于圖形結構具有相似性而結構尺寸參數(shù)為變量的系列圖形生成。任意AutoCAD二維圖形可以分解為點、直線、圓弧、圓共4種基本圖元?;緢D元幾何信息由圖元關鍵點確定,圖形描述分為圖形的拓撲關系、圖形的幾何參數(shù)、幾何參數(shù)與結構參數(shù)間聯(lián)系。將圖元間拓撲關系及約束變量信息生成程序,用賦值語句表達幾何參數(shù)與結構參數(shù)間關系,用調(diào)用語句描述圖形拓撲關系,即可實現(xiàn)設計相似結構通用系列產(chǎn)品模型,通過修改圖形數(shù)據(jù)庫參數(shù)即可生成尺寸參數(shù)為變量的系列相似圖形[3]。
如圖1所示“回”形紋樣,幾何參數(shù)為8個點坐標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)、(x6,y6)、(x7,y7)、(x8,y8),結構參數(shù)為4個尺寸a、b、c、d。輸入?yún)?shù)為(x1,y1,a,b,c,d),由程序自動確定其余各節(jié)點參數(shù),圖形中對邊平行、鄰邊垂直等拓撲關系直接由程序保證。
圖1 AutoCAD圖形描述Fig. 1 Description of AutoCAD drawing
1.2離子氮化爐爐體組件設計及自動繪制
一個實際的工程實際運用為應機床廠設計所需,對離子氮化爐爐體部件進行設計和參數(shù)化繪圖。設計要求利用AutoLISP程序語言進行離子氮化爐部件的參數(shù)化繪圖設計及圖形輸出。離子氮化爐的設計繪制工作比較復雜,其爐體零部件包括爐體下進水管座、底盤襯套、底盤抽氣襯套、下陰極托座法蘭、下陰極托座、爐底盤組件等,繪制過程基本相似,這里僅以爐體下進水管座設計作為具體程序編制對象。
1.2.1算法設計爐體下進水管座算法設計流程圖如圖2所示,首先輸入初始參數(shù)并判定輸入正確性,然后根據(jù)圖形拓撲約束關系由初始參數(shù)計算各點,并調(diào)用實體繪圖命令繪制圖形,最后給出尺寸樣式參數(shù)設定并進行尺寸標注。圖形參數(shù)和幾何關系如圖3所示,其中a為柱高,?d為小徑,?c為大徑,Ra為表面粗糙度。初始參數(shù)點p0定于圖形中心線與外輪廓線相交處,順序各點為p1,p2,…,p20。
1.2.2初始環(huán)境設置模塊初始環(huán)境設置模塊主要是對參數(shù)化繪圖環(huán)境進行設置,以便于所有對環(huán)境參數(shù)的引用保持相同。主要包括幅面、視圖、圖層、線型、比例、顏色、尺寸參數(shù)設置,初始化程序部分程序如下。
;;初始化
(defun hcch()
(command "limits"′(0 0)′(210 297));幅面定義
(command "zoom" "all")
(command "layer" "n" 1 "c" "white" 1 "l" "continuous" 1 "");定義連續(xù)實線層
(command "layer" "n" 2 "c" "red" 2 "l" "acad_iso10w100" 2 "")
(command "layer" "n" 3 "c" "green" 3 "l" "continuous" 3 "")
(command "layer" "n" 4 "c" "yellow" 4 "l" "continuous" 4 "")
(command "layer" "n" 5 "c" "blue" 5 "l" "continuous" 5 "")
(command "dimaso" "0");尺寸樣式參數(shù)定義
(command "dimasz" "2.5")
(command "dimdli" "8")
(command "dimexe" "2.5")
(command "dimexo" "0")
(command "dimgap" "0.5")
(command "dimrnd" "1")
(command "dimtad" "1")
(command "dimtih" "0")
(command "dimtix" "0")
(command "dimtoh" "0")
(command "dimtol" "0")
(command "dimtxt" "2" "dimtfac" "0.5"))
圖2 系統(tǒng)流程圖Fig. 2 System fow chart
圖3 圖形參數(shù)與幾何圖Fig. 3 Drawing parameters and geometric diagram
1.2.3圖形描述與繪制模塊圖形描述和繪制模塊是程序的主要部分。在實現(xiàn)參數(shù)化繪圖功能后,可以自定義人機交互界面,運用對話框控制模塊從用戶處獲取初始參數(shù),對話窗體驅(qū)動一般包括加載對話框、顯示對話框、設置相關初始參數(shù)、處理用戶操作、卸載對話框,通過定義實現(xiàn)對話框內(nèi)特定處理功能。同時通過自定義界面編輯實現(xiàn)在幫助菜單后添加用戶下拉菜單及子菜單項,從而實現(xiàn)整個系統(tǒng)的開發(fā)運行。自定義下拉菜單如圖4所示。
圖4 應用系統(tǒng)自定義菜單Fig. 4 Customizing menu of the application system
圖形繪制模塊根據(jù)初始參數(shù)計算獲得的數(shù)據(jù)計算圖形繪制所需的參數(shù),從而確定各基本圖元關鍵值。利用這些參數(shù)確定三維的點和向量,經(jīng)運算得出繪圖所需的三維點。利用創(chuàng)建的函數(shù)將新創(chuàng)建的實體設置到相應的圖層,并關閉實體。這時在用戶指定的位置、以用戶指定的角度顯示圖形。圖形繪制模塊具體設計過程如下。
(1)坐標基點選定。
將各視圖坐標基點選定在幅面內(nèi)適當位置,各視圖主要節(jié)點相對位置根據(jù)圖形拓撲特征確定。
(2)圖形描述。
以p0為基準點,根據(jù)拓撲關系計算各節(jié)點位置值[4]。圖形描述部分程序如下:
(setq p0′(80 170)
e(- a b)
f(/ d 2)
g(/ c 2)
h(- g 1)
i(- a 1)
pz01(list(-(car p0)3)(cadr p0));中心線端點
p1(list(car p0)(-(cadr p0)f));基點計算得到p1
p2(list(+(car p0)e)(-(cadr p0)f))
p3(list(+(car p0)e)(-(cadr p0)g))
p4(list(+(car p0)i)(-(cadr p0)g))
p5(list(+(car p0)a)(-(cadr p0)h))
p6(list(+(car p0)a)(+(cadr p0)h))
p7(list(+(car p0)i)(+(cadr p0)g))
p8(list(+(car p0)e)(+(cadr p0)g))
p9…)
(3)圖形繪制。
根據(jù)圖形描述完成圖形繪制、標注、圖框標題欄[5]。
;;畫輪廓線
(command "layer" "s" "1" "")
(command "pline" p1 "w" "0.5" "" p2 "");多義線命令繪輪廓
(setq e1(entlast))
(command "pline" p2 "w" "0.5" "" p3 "")
(setq e2(entlast))
(command "pline" p3 "w" "0.5" "" p4 "")
(setq e3(entlast))
(command "pline" p4 "w" "0.5" "" p5 "")
(setq e4(entlast))
……
;;標注
(command "layer" "s" "4" "")
(command "dim" "hor" p1 p5 "@0,-20" "")
(command "hor" p3 p5 "@0,-8" "")
(command "ver" p4 p7 "@12,0" "" "exit")
(command "dimse2" "on")
(command "dim" "ver" p15 "@0,21" "@6,0" "G1/2" "exit")
(command "dimse2" "off")
(command "dimtol" "on")
(command "dimtm" 0.1 "")
(command "dim" "ver" p1 p10 "@-6,0" "%%c<>" "exit")
;;畫剖面線
(command "layer" "s" "3" "")
(command "hatch" "u" 45 3 "" e1 e2 e3 e4 e5 e6 e7 e8 e9 "")
(command "layer" "s" "5" "")
(command "insert" "··/ ku/czd7" pc "0.5" "0.5" 90);插入自定義庫內(nèi)粗糙度符號
(command "block" "aa" p0 "all" "")
(command "insert" "aa" p0 "2" "" "")
(command "layer" "s" "1" "")
(command "insert" "··/ ku/tk4"′(0 0)"" "" "");插入自定義庫內(nèi)A4圖框
(command "insert" "··/ku/btl4"′(200 10)"" "" "");插入自定義庫內(nèi)標題欄
;;寫入
(command "layer" "s" "5" "")
(command "style" "style2" "simfang.ttf" "" "" "" "" "");定義字體類型為仿宋
(command "text"′(106 49)4 0 "爐體下進水管座LD-30KW")
(command "text"′(105 35)6 0 " 35 1 ")
(command "text"′(167 40)4 0 " 20301/2 ")
(command "text"′(157 32)4 0 "0.1 2:1")
(command "text"′(145.5 15)5.5 0 "武漢XX機床廠")
(command "insert" "··/ku/czd7"′(175 260)"0.8" "0.8" "")
(command "style" "style1" "txt.shx" "" "" "" "" "" "")
(command "text"′(172 250)4.5 0 "未注倒角c1"))
在AutoCAD中點擊下拉菜單項后彈出一個參數(shù)輸入對話框,輸入?yún)?shù)后進行計算得出結果,點擊生成圖紙和生成圖形,最終生成離子氮化爐CAD圖形。典型界面如圖5和圖6所示。
圖5 應用系統(tǒng)自定義界面Fig. 5 Customizing interface of the application system
圖6 參數(shù)化繪圖全圖Fig. 6 Total graph of the parametric drawing
本文所述模塊已在Windows XP、AutoCAD 2008上調(diào)試通過,取得較為滿意的效果。該模塊開發(fā)采用AutoLISP,此方法開發(fā)速度快、周期短。通過實例介紹運用二次開發(fā)技術在機械工程上的應用,對推廣計算機輔助設計在參數(shù)化設計方面的應用有較強現(xiàn)實意義,其方法對開發(fā)其他已定型的機械產(chǎn)品CAD系統(tǒng)也具有推廣價值。
參考文獻(References)
[1]李堯,王少愚.機械類專業(yè)的實踐教學及其擴展[J].教育與職業(yè),2008(26):163-164.
[2]鄧興龍. AutoCAD 2008實例教程[M].廣州:華南理工大學出版社,2009.
[3]蔣先剛,涂曉斌. AutoCAD 2008工程繪圖及應用開發(fā)[M].成都:西南交通大學出版社,2008.
[4]趙天嬋,胡珺.機械工程專業(yè)實驗教學平臺綜合實驗項目設計[J].延邊大學學報:自然科學版,2008,34(1):68-71.
[5]胡珺,萬宇杰.淺談CAD綜合實驗的設計[J].職業(yè)教育研究,2007(12):128.
(責任編輯:范建鳳)
Model Development of Ionic Nitriding Furnace Based on AutoLISP
HU Jun,WANG Hongjiu,WANG Hanlin
(School of Electromechanical and Architectural Engineering,Jianghan University,Wuhan 430056,Hubei,China)
Abstract:Studies the parametric drawing development of ionic nitriding furnace body under AutoCAD environment. Presents developing and designing scheme of the furnace body module based on AutoLISP,and gives out relative program taking water inlet as concrete object. The method has reference value for CAD system of other mechanical products.
Keywords:AutoCAD;ionic nitriding furnace;AutoLISP
作者簡介:胡珺(1973—),女,高級實驗師,碩士,研究方向:CAD及圖形學。
基金項目:江漢大學機電與建筑工程學院院級科研專項資助項目(SY003[2013])
收稿日期:2014-05-20
DOI:10.16389/j.cnki.cn42-1737/n.2015.01.011
中圖分類號:TP391.72
文獻標志碼:A
文章編號:1673-0143(2015)01-0065-05