找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 368|回复: 2

[求助]:如何绘制曲线

[复制链接]
发表于 2003-7-11 22:30:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
请教:在R14下或天正2下如何绘制抛物线、缓和曲线、双曲线、悬链线?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-7-11 23:13:48 | 显示全部楼层
http://data.lccnet.com.tw/QandA/a-list.asp?number=242
引用如下:

不知您的拋物線已知條件是什麼,比方焦距、頂點、終點、準線、.....

以前我寫過的程式採用近似方法請參考,如下所示。只要將下列拷下存成副檔名為lsp,在Autocad下選 工具 載入應用程式 選該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=focus^0.5/(x-h)^0.5

;or y=-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)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-12 23:08:53 | 显示全部楼层
非常感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 00:02 , Processed in 0.208177 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表