Re: [問題] AutoCad畫2D的彈簧?

看板Cad_Cae作者 (下課中)時間17年前 (2007/07/20 23:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《floot (floot)》之銘言: : 其實我是幫我朋友問的 他有學過autocad 2和3D : 但是他有些部分忘了 : 因為現在我們需要用2D畫出彈簧 : 請問如何畫出? : 我沒有學過 所以也沒有辦法說出什麼專業語句 : 或是知道有什麼簡單的功能就可以解決 : 所以 如果問題太過白目 請各位見諒 : 謝謝各位大大 基本上能給個草圖來看看才知道你要畫到什麼程度 不然2D的彈簧,以線性彈簧來說 說實在不過就是像下面這樣 /\ /\ /\ /\ _ _/ \ / \ / \ / \ / \/ \/ \/ \/ 畫兩條平行線設些等分點 然後用polyline慢慢連就好了 數目多的話可以用矩形陣列複製 或者使用vlisp撰寫程式更方便 不介意的這是我以前學校上課練習的程式 可以畫圈數長度任意的2D彈簧,且與水平夾角可任意 打(load "espring"),enter後打指令es,enter後 照註解點擊兩點輸入彈簧半徑及長度參數即可 如果這樣的結果不合需要 我也不知道你要的2D彈簧是要怎麼樣了 ========================================= ;espring.lsp ;2D彈簧 (defun c:es (/ ip p2 len R n th) ;===前置動作=== (setvar "cmdecho" 0) ;指令執行過程不回應 (setq os (getvar "osmode")) ;記錄原物件鎖點值 (setvar "osmode" 0) ;設物件鎖點關閉 (graphscr) ;===參數輸入=== (setq ip (getpoint "\n<ip>") ;彈簧起點 p2 (getpoint ip "\n<p2>") ;彈簧端點 R (getreal "\nR:") ;半徑值 n (getint "\ninput n:") ;彈簧圈數 th (rtd (angle ip p2)) ;取得ip p2之夾角 len (distance ip p2) ;彈簧總長 ) ;===呼叫副程式=== (drawes ip len R n th) (setvar "osmode" os) ;歸還物件鎖點值 ) ;======================================================= (defun drawes (ip len R num th / p0 p1 px pe1 pe2 d d/2) (setq p0 (polar ip (/ pi 2.0) R) pe1 (polar ip (- (/ pi 2.0)) R) d (/ len n) d/2 (/ d 2.0) p1 (polar pe1 0.0 d/2) px (polar ip 0.0 len) pe2 (polar px (- (/ pi 2.0)) R) ) (command "arc" "c" ip p0 pe1) (command "pline" p0) (repeat num (command p1) (setq p0 (polar p0 0.0 d) p1 (polar p1 0.0 d) ) (command p0) ) (command "") (command "arc" "c" px pe2 p0) (command "rotate" "all" "" ip th) ) ;==================================== (princ "\n<2D彈簧繪製> c:es\n") (princ) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.37.123
文章代碼(AID): #16eDOLEw (Cad_Cae)
討論串 (同標題文章)
文章代碼(AID): #16eDOLEw (Cad_Cae)