梁芳 尹守軍
摘 要:AutoCAD 是一款通用的繪圖軟件,Auto LISP是嵌入AutoCAD的二次開發工具,參數化繪圖是其典型的應用。文章探討了參數化繪圖設計原理及步驟,并以軸承參數化繪圖為例,介紹了Auto LISP的參數化繪圖技術。
關鍵詞:參數化;AutoCAD;Auto LISP
中圖分類號:TP391.72 文獻標識碼:A 文章編號:1006-8937(2014)24-0093-02
AutoCAD是由Autodesk公司發行的一款應用于多領域的設計輔助和圖形處理軟件。在機械行業得到了廣泛應用。AutoCAD雖然功能強大,但在專業應用上還是有不足之處,如何讓通用的CAD系統更適合行業需要,必須對其要進行二次開發。AutoCAD在30多年時間里相繼推出了Auto LISP、ADS、Visual LISP、VBA、Object ARX、AutoCAD.NET幾種不同層次的二次開發工具。“其中Auto LISP是唯一的一種以解釋方式運行于AutoCAD內部的解釋性程序設計語言,Auto LISP把數據和程序統一表達為表結構,所以它既可以把程序當作數據來處理,還可以把數據當作程序來執行”。其語言規則簡單,直接針對AutoCAD,易學易用,AutoCAD的絕大多數命令可直接調用,參數化繪圖是其典型的應用之一。
1 參數化繪圖設計原理及步驟
所謂參數化就是將圖形的有關幾何關系、約束關系有機地結合起來,從而構成一個完整的參數化模型。當設計人員改變圖形的某一參數時,模型能根據尺寸及幾何約束等自動計算出滿足約束關系的工程圖形。
參數化編程方法的實質,就是將圖形信息記錄在程序中。它用一組變量記錄圖形的幾何參數,用一些約束條件或者賦值語句來表達幾何參數與結構參數之間的關系,再用一些繪圖語句來表述圖形的拓撲關系。參數化方法快捷、高效,參數化繪圖程序編寫步驟是:
①先進行圖形結構特征分析,一般繪制一個零件的圖樣,需要很多尺寸,這就需要我們分析這個零件,確定圖形中的關健幾何尺寸及圖形對象之間的依賴關系。
②從設計角度具體分析,確立不僅能體現零件的結構特征,又可以推導出其它尺寸的基本尺寸作為圖形參數,并明確尺寸與圖形參數之間的關系。
③構造參數化模型,對應參數。
④用修改參數值的方法,檢驗所建模型的正確性。
2 參數化繪圖程序設計的應用實例
下面以深溝球軸承的參數化繪圖為例,詳細闡述其實現過程。
2.1 軸承主視圖繪制思路
首先,進行分析圖形,由于軸承是標準件,在機械手冊中已給出標準規格系列,所以其主要參數為內徑d、外徑da及寬度B, 其他部分可根據軸承規定畫法畫出,參數化繪圖關鍵在于找出軸承圖形各個關鍵點和插入點(p0)之間的相對關系和換算坐標。
然后用直線將所有各點連接起來,滾珠的繪制用畫圓命令即可,軸承各尺寸參數之間的關系如圖1所示。
2.2 程序編寫
(defun d:zhch() ;程序定義
(setq p0 (getpoint "請輸入基點坐標"))
(setq da (getreal "請輸入da的值"))
(setq d (getreal "請輸入d的值"))
(setq b (getreal "請輸入b的值"))
(setq d3 (+ d (/ (- da d) 2) ) )
(setq d4 (/ (- da d) 4) );
計算滾珠直徑;
以下部分代碼為根據插入點坐標計算各關鍵點坐標
(setq p1 ( polar p0 0 b))
(setq p2 ( polar p0 (/ pi 2) (/ d 2) ) )
(setq p3 ( polar p2 0 b) )
(setq p4 (polar pt1 pi (/ (- b(* (sin (/ pi3) ) d4) )2)) )
(setq p5 (polar pt2 0 (/ (- b (* (sin (/ pi3) )d4) )2) ) )
(setq p6 (polar pt3 pi (/ (- b (*(sin (/ pi3) ) d4) )2)) )
(setq p7 (polar pt4 0 (/ (- b (* (sin (/ pi3) ) d4) ) 2) ) )
(setq p8 ( polar p0 (/ pi 2) (/ da 2) ) )
(setq p9 ( polar p8 0 b) )
(setq p10 ( polar pt (/ pi 2) (/ d3 2) ) )
(setq pt ( polar p0 0 (/ b 2) ) )
(setq pt1 ( polar p10 ( - 0 (/ (* 5 pi) 6) ) (/ d4 2) ) )
(setq pt2 ( polar p10 ( - 0 (/ pi 6) ) (/ d4 2) ) )
...... 因相似且篇幅較長,故將其省略。
圖形繪制:
(command "line" p0 p2 "")
(command "mirror" "l" "" p0 p1 "n" )
(command "line" p1 p3 "")
(command "mirror" "l" "" p0 p1 "n" )
(command "layer" "M" "hatch" "C" 4 "hatch" "" )
(command "pline" p4 pt1 "A" "A" 120 pt2 "L" p5 p3 p2 "c")
(command "hatch" "p" "ansi31" 1.5 0 "s" "l" "" "" )
(command "layer" "M" "hatch" "C" 4 "hatch" "" )
(command "pline" p7 pt4 "A" "A" 120 pt3 "L" p6 p8 p9 "c")
......
(princ)
)
2.3 程序的加載和運行
在AutoCAD繪圖環境中,選擇下拉菜單/工具T→Auto LISP(I)→加載應用程序(L)...,就會打開,加載/卸載應用程序對話框,選擇所要加載的zhch.lsp文件,點擊加載即可。然后在command:提示符下鍵入defun定義的程序名即zhch,依次根據提示輸入插入點坐標值、軸承內徑、外經及寬度相關參數后,系統將會按照輸入的參數值在相應位置畫出軸承的圖像,如圖2所示。
3 結 語
利用Auto LISP的參數化設計可以避免結構相同或尺寸差異實體繪圖時的繁瑣與重復性工作,縮短了設計周期,提高了生產效率,使設計人員能把主要精力投到真正的設計和創新的工作中去。
參考文獻:
[1] 唐正連.AutoLISP二次開發技術在拖拉機設計中的應用[D].南京:南京理工大學,2008.
[2] 梁雪春,崔洪斌,吳義忠,等.Auto LISP實用教程[M].北京:人民郵電出版社,1998.
[3] 周陶勇,李珊,王磊,等.基于Auto LISP的AutoCAD參數化繪圖[J].計算機應用,2006,(4).
[4] 劉喜平.基于AutoLISP的AutoCAD二次開發技術[J].信息技術,2011,(4).