你的位置: 深圳市永志精密五金有限公司 > 彈簧新聞 > Visual LISP開發三維圓柱螺旋線程序

Visual LISP開發三維圓柱螺旋線程序

發布時間:2010/3/16
Visual LISP開發三維圓柱螺旋線程序
摘 要 本文介紹了用AutoCAD 2000 中的Visual LISP開發工具開發三維圓柱螺旋線程序,給出了開發程序代碼和運行結果,以及三維彈簧、螺紋繪制實例。
  1、 引言
  在眾多的AutoCAD開發工具中,AutoLISP是使用最簡單、應用最廣泛、使用者最多的一種開發工具。但是,AutoLISP只是一種解釋型語言,且不能加密。為了解決這個問題,Autodesk公司在AutoCAD R14中推出了Visual LISP的測試版,隨后在AutoCAD 2000中推出了Visual LISP的正式版本。Visual LISP完全兼容以前的AutoLISP,同時應用了AutoCAD的另一個開發工具-----ObjectARX面向對象技術和ActiveX技術,使Visual LISP開發的應用程序功能更強大,運行速度更快,從而真正成為一個能開發商業軟件的開發平臺。本文作者采用AutoCAD 2000 中的Visual LISP進行了三維圓柱螺旋線程序開發,并與AutoCAD 2000交互繪圖結合,快速繪制三維螺紋和彈簧。
  2、 問題的提出
  筆者在用AutoCAD 2000繪制三維工程圖時,經常遇到繪制螺紋、彈簧這類三維圓柱螺旋線的問題。在AutoCAD中,繪制三維線的命令有很多,如Line、3Dpoly、Spline等命令,而可以作為三維拉伸路徑的線只有3Dpoly命令繪出的線可以勝任,而且不能使用其中的擬合項。因此,為了保證繪制的三維圓柱螺旋線尺寸精確,就必須輸入大量精確數據,才能一點一點地畫出所需的螺旋線,這樣做起來非常麻煩。有關資料介紹采用圓弧近似構成螺旋線[1],但是這樣畫出的螺紋不能通過裝配干涉檢查。由于在AutoCAD中不方便繪制螺旋線,為了解決這個問題,筆者采用編制一個LISP程序來實現。該程序可以實現圓柱螺旋線自動繪圖,不僅可以用于繪制彈簧螺旋線和螺紋的螺紋線。還可以進行參數化繪圖。
  3、 圓柱螺旋線的繪制
  3.1 圓柱螺旋線數學模型
  * 圓柱螺旋線的形成
  圓柱螺旋線是技術上應用最廣的空間曲線,其形成如圖1所示。一動點M沿圓柱的母線AB作等速直線運動,而該母線又繞圓柱的軸線作等角速旋轉時,點M的運動軌跡即為圓柱螺旋線。
  * 數學模型
  當圓柱螺旋線的軸線與坐標系的Z軸重合時,    
  圓柱螺旋線上動點M(x,y,z)的參數方程如下:   
  x=rcosα                 
  y=rsinα
  z=±t1*α/(2π)           
  在參數方程中:r為圓柱面的半徑,α為螺旋線升角,t1為導程(即母線AB旋轉一周時,動點M沿軸線方向上升的距離),右旋取正號,左旋取負號。
  3.2 程序框圖
  開始
  參數r、t1、k賦值    
  給出基點坐標
  計算x, y, z各點坐標
  繪制螺旋線
  結 束
  3.3 程序代碼
  打開AutoCAD2000進入Visual LISP開發環境,新建一個文件,在Visual LISP文本編輯器窗口進行程序代碼編制。   
  繪制圓柱螺旋線的AutoLISP程序代碼如下:
  ; This program is using for drawing a helix
  (setq b1 (getpoint "請輸入基點:"))   
  (setq r (getreal "半徑 r=:"))
  (setq t1 (getreal "節距 t1=:"))
  (setq k (getint "段?k=:"))
  (setq n (getint "圈數 n=:")) 
  (setq ta (/ (* 2 3.14159) k))
  (setq j1 (/ t1 k))
  (setq a 0)
  (setq jj 0)
  (setq ii 0)
  (command "ucs" "o" b1)
  (command "3dpoly" (list r 0 0))
  (repeat n
  (repeat k
  (setq jj (+ jj 1))
  (setq a (+ ta a))
  (setq x (* r (cos a)))
  (setq y (* r (sin a)))
  (setq z (* j1 jj))
  (setq p2 (list x y z))
  (command p2)
  )
  (setq ii (+ ii 1))
  (setq z (* t1 ii))
  )
  (command "" )
  段數k 最好為36或36的倍數(72)。繪彈簧時,n為彈簧的總圈數;繪螺紋時,若螺紋的長度為L,則n=L / t1。將這個LISP程序保存為“helix.lsp"。
  在編寫LISP程序時,應注意輸入一定要正確,括號和空格都必不可少,否則會影響到螺旋線的軌跡。
  3.4 程序運行結果
  加載并運行 "helix.lsp" 程序,首先在AutoCAD2000繪圖窗口命令行出現提示,按提示輸入參數r、t1、k、n值后,螺旋線即畫好。
  4、 應用
  * 繪制彈簧
  在AutoCAD2000 繪圖窗口改變坐標系,用“畫圓”的命令繪制彈簧截面,再將螺旋線作為彈簧拉伸路徑拉伸,進行適當剖切繪制支承段即畫好如圖5所示彈簧。
  我們繪制的彈簧參數如下:
  外徑D=14mm,d=1mm,節距t=4mm,有效圈數n1=10,支承圈數n2=2.5,右旋。
  * 繪制螺紋
  如果用“畫多邊形”的命令繪制三角形或矩形截面,再將螺旋線作為螺紋拉伸路徑拉伸。然后進行適當修整,我們可以得到如圖6 所示螺紋。
  5、 結論
  (1) 在Visual LISP開發環境加載并運行圓柱螺旋線AutoLISP程序,在AutoCAD2000繪圖窗口命令行后,按提示輸入不同的參數,即可繪制所需要的三維圓柱螺旋線。故此,可以參數化快速繪制各種三維螺紋和壓縮彈簧
  (2)以前AutoLISP應用程序要另找文本編輯器編寫源代碼,然后回到AutoCAD中加載運行,不便于程序的調試。用Visual LISP 集成開發環境,我們可以在一個單獨的環境中執行文本編輯、程序調試、與AutoCAD及其他應用程序的交互等操作,極大地方便了AutoCAD的二次開發,滿足技術人員AutoCAD的二次開發需要。
欧美videofree性欧美另类,国内精品视频一区二区三区,亚洲国产欧美一区二区欧美,丝袜一级片 欧美videofree性欧美另类,国内精品视频一区二区三区,亚洲国产欧美一区二区欧美,国产成+人+亚洲+欧美综合 欧美videofree性欧美另类,国内精品视频一区二区三区,亚洲国产欧美一区二区欧美,欧美专区第一页

857--------m.gyqhygkq.com

30--------m.xvz8.com

709--------m.dianshangsheji.com

318--------m.yzthzx.com

50--------m.hbtaifengjixie.com