精華區beta Cad_Cae 關於我們 聯絡資訊
請問一下 如果說有一個拋物線方程式要用autocad畫出來 例如 y=2x^2 要怎麼畫呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.64.3
flyalice:要用lisp寫吧 203.70.36.169 04/22
> -------------------------------------------------------------------------- < 作者: flyalice (飛愛麗斯) 看板: Cad_Cae 標題: Re: [問題] 請問autocad怎麼畫拋物線? 時間: Fri Apr 22 13:43:05 2005 剛剛找到一個拋物線的Lisp程式,給你參考 來源處 http://cadcam.mold.net.tw/online/3Wbbs/acad/280.htm 以下列出說明及程式,可將下列存成 ???.lsp, 使用前執行(load"路徑/???.lsp"),路徑須使用順斜線/別忘記。 ;已知頂點、焦距、軸長、旋轉角,畫拋物線 ;採用7點近似畫法,以雲形線畫出拋物線 ;端點及頂點由已知資料直接求得, ;再求4個中間點中間點,及端點的斜率 ;以上面九個條件圖畫出零度之拋物線才以rotate指令旋轉 ;物件鎖點設定為無 (setq osn (getvar "osmode")) (setq osn (setvar "osmode" 0)) ;資料輸入 (setq p4(getpoint "\n輸入拋物線頂點: ")) (setq focus(getreal "\n輸入拋物線焦距: ")) (setq length(getreal "\n輸入拋物線軸長: ")) (setq angle(getreal "\n輸入拋物線角度: ")) ;已知拋物線 x座標值,求 y座標值公式: ; y=k+2*focus^0.5*(x-h)^0.5 ;or y=k-2*focus^0.5*(x-h)^0.5 ; p1x=h+length p1y=k+2*focuse^0.5*length^0.5 ; p2x=h+2*length/3 p2y=k+2*focuse^0.5*length^0.5*(2/3)^0.5 ; p3x=h+length/3 p3y=k+2*focuse^0.5*length^0.5*(1/3)^0.5 ; p4x=h p4y=k ; p5x=h+length/3 p5y=k-2*focuse^0.5*length^0.5*(1/3)^0.5 ; p6x=h+2*length/3 p6y=k-2*focuse^0.5*length^0.5*(2/3)^0.5 ; p7x=h+length p7y=k-2*focuse^0.5*length^0.5 (setq h(car p4) k(cadr p4)) (setq foc(sqrt focus) len(sqrt length)) (setq n13(sqrt (/ 1.0 3.0)) n23(sqrt (/ 2.0 3.0))) (setq p1x(+ h length) p2x(+ h (* 2 (/ length 3))) p3x(+ h (/ length 3)) p5x p3x p6x p2x p7x p1x p1y(+ k (* 2 foc len)) p2y(+ k (* 2 foc len n23)) p3y(+ k (* 2 foc len n13)) p5y(- k (* 2 foc len n13)) p6y(- k (* 2 foc len n23)) p7y(- k (* 2 foc len)) ) ;已知拋物線 x座標值,求拋物線斜率公式: ; y'=2*focus^0.5/(x-h)^0.5 ;or y'=-2*focus^0.5/(x-h)^0.5 ; y'(p1x)=focus^0.5/length^0.5 ; y'(p7x)=-focus^0.5/length^0.5 (setq slope1(* foc (/ 1.0 len)) slope2(- 0.0 (* foc (/ 1.0 len))) ) (setq p1(list p1x p1y) p2(list p2x p2y) p3(list p3x p3y) p5(list p5x p5y) p6(list p6x p6y) p7(list p7x p7y) p8(list (+ p1x 1.0) (+ p1y slope1)) p9(list (+ p7x 1.0) (+ p7y slope2)) ) ;畫出拋物線 (command "spline" p1 p2 p3 p4 p5 p6 p7 "" p8 p9) (command"rotate" "l" "" p4 angle) ;復原物件鎖點 (setvar "osmode" osn) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.36.169
Phileo:感謝~~試試去~~:D 61.229.127.157 04/23
> -------------------------------------------------------------------------- <