梁 杰
(新疆輕工職業技術學院,新疆 烏魯木齊 830021)
機械傳動動態模型庫系統包括設置繪圖環境、繪圖圖素庫、動態模型庫和用戶標準菜單4大功能模塊,系統框架組成如圖1所示。

圖1 機械傳動動態模型庫的系統組成
(1)設置繪圖環境:該模塊主要設置繪圖所需的環境,例如圖層、線型、顏色、線寬等。
(2)繪圖圖素庫:根據模型庫的所有模型分解出基本組成單元——圖素,對圖素進行參數化編程,并建立起圖素庫,庫中的各圖素之間可以像積木那樣拼裝組合。
(3)動態模型庫:該模塊既可以展示二維零件簡圖或模型,也可以展示三維模型。同一模型通過輸入值的變化可以動態地展示變化的零件結構模型。
(4)用戶標準菜單:為了方便使用者操作,使用戶和計算機的交流更加直觀,需要嵌入標準菜單。
根據參數圖素拼裝的原理,首先將模型庫中的模型分解成若干個基本組成元素——圖素,再將每個圖素進行參數化編程,只要給定繪制各圖素所需的參數值,即可快速、準確地繪制該圖素,模型庫中的模型是由各圖素組合拼裝而來。圖2為機械傳動圖素庫的組成框圖。
以棘輪為例,其編程構思如下:
(1)基準點,用來確定模型的位置,屬于位置參數。
(2)旋轉角,用來確定模型的方位,屬于方位參數,即以基準點為旋轉中心,以圖素軸線與水平線的夾角為旋轉角可在平面的不同方向上繪制圖素,規定旋轉角順時針為負,逆時針為正。

圖2 機械傳動圖素庫的組成框圖
(3)齒數值:由于不同棘輪模型的齒數會發生變化,所以設置了齒數參數。在本程序設計中,采用了repeat語句和循環語句,并令齒數為循環次數,使程序更完善。
(4)為了方便圖素的插入、選擇及刪除,繪圖編程命令盡可能使用“pline”。
(5)三維模型的實現主要通過兩種方法:①先編寫二維模型程序,后編寫三維模型程序;②在二維零件的基礎上通過面域region和拉伸extrude實現三維。棘輪的實現程序如下:
(defun c:jlun1();定義棘輪
(setq p0(getpoint"\n插入點:")
alf(getangle p0"\n旋轉角:")
r(getdist p0"\n頂圓半徑:")
r1(getdist p0"\n根圓半徑:")
n(getint"\n齒數:")
)
(setq r2(-r r1))
(setq alf1(/(*2 pi)n))
(setq alf2(* pi(/20.0 180.0)))
(setq alf3(/alf1 3))
(setq alf4(/(*alf2 r2)r1))
(setq p1(polar p0(+alf(*0.5 pi))(*1.1 r)))
(setq p2(polar p0(-alf(*0.5 pi))(*1.1 r)))
(setq p3(polar p0 alf(*1.1 r)))
(setq p4(polar p0(+alf pi)(*1.1 r)))
(setq i 0)
(repeat n
(setq p5(polar p0(+alf(*i alf1))r))
(setq p6(polar p0(+alf alf3(*i alf1))r))
(setq p7(polar p0(+alf alf1 alf4(*i alf1))r1))
(setq p8(polar p0(+alf alf1(*i alf1))r))
(command"layer""s""draw""")
(command"pline"p5 p6 p7 p8"")
(setq i(1+i))
)
模型庫中的模型可以通過組合拼裝獲得。圖3為機械傳動動態模型庫的組成框圖。
用戶使用時只需點擊相應的下拉菜單,激活一個主控件菜單,而相應的主圖像控件菜單項又會激活相關的子圖像控件菜單,最后根據下拉菜單的文字提示操作就可以繪制出相應的模型。這樣的用戶菜單體系是一種“級聯”式的圖像控件菜單體系,對于專業設計中選擇標準的圖素、模型等操作是十分有效的方法。圖4為用戶下拉菜單。
利用Auto LISP開發的動態模型庫,同一模型只需要輸入不同的參數值,就可以動態地獲得結構尺寸不同的零件模型,大大提高了模型庫的靈活性、實用性;且可以通過編寫新的程序不斷擴充圖素庫、模型庫,使系統具有良好的交互性、擴展性、實用性和專業性。

圖3 機械傳動動態模型庫的組成框圖

圖4 下拉菜單
[1] 韓國才,張鋰.基于Pro/E的機械零件特征模型庫參數化設計[J].制造業自動化,2006,28(4):14-15.
[2] 賀煒,孫波,張淳.計算機繪圖[M].北京:機械工業出版社,2002.
[3] 孫江宏,丁立偉,米潔.Visual LISP R14——2000編程與應用[M].北京:科學出版社,1999.
[4] 姚杰,田勤.機械設計基礎[M].哈爾濱:哈爾濱工業大學出版社,2010.