[討論]問一個很簡單的弧線求法
4 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 2D討論
第1頁(共1頁)
[討論]問一個很簡單的弧線求法
如圖面所示.不知哪位大大能幫忙求出該弧線半徑
用2010版求到最近似值是6686
用的方法是該給參數的都給了
只剩弧與邊框的交點用拉伸垂直於邊框
所以弧線端點直線長度是4346.99998855
下方等寬的弧至上方框線是505沒錯
但這是偷雞方法.不知道各位有沒有學理方式能解
感謝先
judyyai 在 2011-05-03, 16:00 作了第 2 次修改 (原因 : 此主題為討論類型)
wtm1713- 初級會員
- 文章總數 : 160
年齡 : 54
來自 : 台南
職業 : 不鏽鋼工程
愛好 : 上網打屁
個性 : 隨遇而安
使用年資 : 10
使用版本 : 2013
積分 : 3
經驗值 : 5928
威望值 : 102
注冊日期 : 2010-08-11
大家試試看
如圖.是另一個要求的弧段半徑
跟前一張是同樣的模式
雖然已求出(用幾何約束)但還是希望能有學理解法
以下分享約束過程.如有誤請指教
已知方框678*5366繪製並將四角點重合+固定.四個邊固定
由於兩弧與邊框交點會構成一直角三角形
於是先畫一直角三角形.約束直角+三角點重合.斜邊約束150
將三角形直角點與方框角點重合(記得另一邊也做一個並重合)
三角形直角的任一邊需與方框的邊做共線約束
畫一弧段起點於三角形上角點.中點方線中點.終點為另一邊三角形上角點
弧的兩個端點重合於三角形上角點.弧切框線
平行複製弧往下150.做同心圓約束.兩弧中心點高約束150
將下弧兩端點重合於三角形下角點.
完成後求證上弧直線距離為5366.下弧端點至上方框線距離678
wtm1713- 初級會員
- 文章總數 : 160
年齡 : 54
來自 : 台南
職業 : 不鏽鋼工程
愛好 : 上網打屁
個性 : 隨遇而安
使用年資 : 10
使用版本 : 2013
積分 : 3
經驗值 : 5928
威望值 : 102
注冊日期 : 2010-08-11
回復: [討論]問一個很簡單的弧線求法
不知是不是您要的
;rll.lsp 已知半徑夾角求弧長
(defun c:rll()
(setq r1 (getreal "\nEnter circle radius:"))
(setq a1 (getreal "\nEnter angle:"))
(setq l1 (/ (* r1 a1 pi) 180.0))
)
;rla.lsp 已知弧長半徑求夾角
(defun c:rla()
(setq l1 (getreal "\nEnter circle arc length:"))
(setq r1 (getreal "\nEnter circle radius:"))
(setq a1 (/ (* l1 180.0) (* r1 pi)))
)
;rlr.lsp 已知弧長夾角求半徑
(defun c:rlr()
(setq l1 (getreal "\nEnter circle arc length:"))
(setq a1 (getreal "\nEnter angle:"))
(setq r1 (/ (* l1 180.0) (* a1 pi)))
)
;rll.lsp 已知半徑夾角求弧長
(defun c:rll()
(setq r1 (getreal "\nEnter circle radius:"))
(setq a1 (getreal "\nEnter angle:"))
(setq l1 (/ (* r1 a1 pi) 180.0))
)
;rla.lsp 已知弧長半徑求夾角
(defun c:rla()
(setq l1 (getreal "\nEnter circle arc length:"))
(setq r1 (getreal "\nEnter circle radius:"))
(setq a1 (/ (* l1 180.0) (* r1 pi)))
)
;rlr.lsp 已知弧長夾角求半徑
(defun c:rlr()
(setq l1 (getreal "\nEnter circle arc length:"))
(setq a1 (getreal "\nEnter angle:"))
(setq r1 (/ (* l1 180.0) (* a1 pi)))
)
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6268
威望值 : 263
注冊日期 : 2010-07-01
回復: [討論]問一個很簡單的弧線求法
請教一下tarpon大
這一大串是甚麼東東?
我只會用滑鼠點指令......
這一大串是甚麼東東?
我只會用滑鼠點指令......
wtm1713- 初級會員
- 文章總數 : 160
年齡 : 54
來自 : 台南
職業 : 不鏽鋼工程
愛好 : 上網打屁
個性 : 隨遇而安
使用年資 : 10
使用版本 : 2013
積分 : 3
經驗值 : 5928
威望值 : 102
注冊日期 : 2010-08-11
回復: [討論]問一個很簡單的弧線求法
那是LISP程式語法!有3種指令用法!
複製那段貼到 記事本,存成 *.lsp (*你取 或是 rll)
appload載入,剛剛存檔 *.lsp
指令列 輸入 rll 就可以使用~ 其他以此類堆
例如 (藍色為輸入文字)
指令: rlr
Enter circle arc length:100
Enter angle:30
190.986
- 代碼:
;rll.lsp 已知半徑夾角求弧長
(defun c:rll()
(setq r1 (getreal "\nEnter circle radius:"))
(setq a1 (getreal "\nEnter angle:"))
(setq l1 (/ (* r1 a1 pi) 180.0))
)
- 代碼:
;rla.lsp 已知弧長半徑求夾角
(defun c:rla()
(setq l1 (getreal "\nEnter circle arc length:"))
(setq r1 (getreal "\nEnter circle radius:"))
(setq a1 (/ (* l1 180.0) (* r1 pi)))
)
- 代碼:
;rlr.lsp 已知弧長夾角求半徑
(defun c:rlr()
(setq l1 (getreal "\nEnter circle arc length:"))
(setq a1 (getreal "\nEnter angle:"))
(setq r1 (/ (* l1 180.0) (* a1 pi)))
)
複製那段貼到 記事本,存成 *.lsp (*你取 或是 rll)
appload載入,剛剛存檔 *.lsp
指令列 輸入 rll 就可以使用~ 其他以此類堆
例如 (藍色為輸入文字)
指令: rlr
Enter circle arc length:100
Enter angle:30
190.986
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30458
威望值 : 3607
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論]問一個很簡單的弧線求法
學理方式~應該三角函數去算弦 勾 股 還有角度!
不過已知條件太少!可能不好算!
弦長150 勾 股不知道 角度也不知道
若能用參數式畫出來就好!
不過已知條件太少!可能不好算!
弦長150 勾 股不知道 角度也不知道
若能用參數式畫出來就好!
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30458
威望值 : 3607
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論]問一個很簡單的弧線求法
抱歉會錯樓主意思了
條件已足夠可用lsp來完成
已知矩形方框尺寸及斜邊長150各夾角為90,60,30
求出長邊及短邊值即可繪出
有空來練習一下
條件已足夠可用lsp來完成
已知矩形方框尺寸及斜邊長150各夾角為90,60,30
求出長邊及短邊值即可繪出
有空來練習一下
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6268
威望值 : 263
注冊日期 : 2010-07-01
回復: [討論]問一個很簡單的弧線求法
to wtm1713
早上依圖二條件重新檢討
若為同心圓弧則直角三角形另兩角就不一定是30度和60度這樣條件就不足無法 計算
應該說會因矩形框大小不同另二個角度也隨著不同
若限定為30和60則計算出來的弧非同心圓兩端距離會縮小就不是您要的
還是把程式po上看有沒有前輩可解
早上依圖二條件重新檢討
若為同心圓弧則直角三角形另兩角就不一定是30度和60度這樣條件就不足無法 計算
應該說會因矩形框大小不同另二個角度也隨著不同
若限定為30和60則計算出來的弧非同心圓兩端距離會縮小就不是您要的
還是把程式po上看有沒有前輩可解
- 代碼:
;少一條件二角度或二邊長
;求弧線長及半徑
(defun c:calarc()
(setvar "cmdecho" 1)
(setq 4b1(getreal "\n請輸入矩型外框長邊:"))
(setq 4b2(getreal "\n請輸入矩型外框短邊:"))
(setq ld1(getreal "\n請輸入兩弧間距或斜邊長:"))
(setq pt1(getpoint "\n請點選外框左下角插入點:"))
;三角函數正弦定理求直角三角形長邊及短邊已知兩角一夾邊c=2RsinC b=2RsinB
;已知A=90度B=30度C=60度a=150
;求2R=a/sinA 已知斜邊a=150=ld1
(setq 2r(/ ld1 (sin (/ pi 2.0))));求2R
;求短邊b=2RsinB
;(setq ld2(* 2r (sin (/ pi 6.0))));求短邊b
(setq ld2(* 2r (sin (angtof "22.75640" 0))));求短邊b
;求長邊c=2RsinC
;(setq ld3(* 2r (sin (/ pi 3.0))));求短邊c
(setq ld3(* 2r (sin (angtof "67.24360" 0))));求短邊c
;繪製
(command "pline" pt1 (setq pt2(polar pt1 0 4b1)) (setq pt3(polar pt2 (/ pi 2.0) 4b2)) (setq pt4(polar pt3 pi 4b1)) "c");繪外框
(command "arc" (setq rp1(polar pt1 (/ pi 2.0) ld3)) (setq rp2(polar pt4 0 (/ 4b1 2.0))) (setq rp3(polar pt2 (/ pi 2.0) ld3)));繪上弧
(command "lengthen" "l" "");上弧長
(setq dl01 (rtos(getvar "perimeter") 2 4));取出上弧長度
(setq r1(rtos(cdr (assoc 40 (entget (entlast)))) 2 4));取出上弧半徑
(command "arc" (setq rp4(polar pt1 0 ld2)) (setq rp5(polar rp2 (-(/ pi 2.0)) ld1)) (setq rp6(polar pt2 pi ld2)));繪下弧
(command "lengthen" "l" "");下弧長
(setq dl02 (rtos(getvar "perimeter") 2 4));取出下弧長度
(setq r2(rtos(cdr (assoc 40 (entget (entlast)))) 2 4));取出下弧半徑
(command "line" rp1 rp4 "");繪左邊斜邊
(command "line" rp3 rp6 "");繪右邊斜邊
(setq lsarc(strcat "上弧長=>>" dl01 "半徑=>>" r1 "&" "下弧長=>>" dl02 "半徑=>>" r2));結合弧長半徑字串
(alert lsarc);螢幕列示弧長及半徑
(setvar "cmdecho" 0)
(princ)
)
tarpon- 中級會員
- 文章總數 : 209
年齡 : 34
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 6268
威望值 : 263
注冊日期 : 2010-07-01
已知條件不少.但不一定能由LISP做出來
這個問題已知的條件有矩形的大小
以及同心圓的弧等寬150
而外弧必需相切於矩形長邊的中點
兩弧的端點剛好相交於矩形連成一線
這兩線延伸相交應該剛好是弧的圓心
用2010幾何約束做出來的外弧半徑答案
與其它參數軟體做出來的一樣
但我還是發現其中有些許誤差
我上述的條件結果是
直線相交並不是在弧圓心
些許誤差在小數點後第四位
也許你有興趣的話.除了LISP.試試用幾何約束玩玩看
也請你PO上你的答案來看看
大家交流交流
以及同心圓的弧等寬150
而外弧必需相切於矩形長邊的中點
兩弧的端點剛好相交於矩形連成一線
這兩線延伸相交應該剛好是弧的圓心
用2010幾何約束做出來的外弧半徑答案
與其它參數軟體做出來的一樣
但我還是發現其中有些許誤差
我上述的條件結果是
直線相交並不是在弧圓心
些許誤差在小數點後第四位
也許你有興趣的話.除了LISP.試試用幾何約束玩玩看
也請你PO上你的答案來看看
大家交流交流
wtm1713- 初級會員
- 文章總數 : 160
年齡 : 54
來自 : 台南
職業 : 不鏽鋼工程
愛好 : 上網打屁
個性 : 隨遇而安
使用年資 : 10
使用版本 : 2013
積分 : 3
經驗值 : 5928
威望值 : 102
注冊日期 : 2010-08-11
幾何關係說明
---方框和圓弧的幾何關係---
X=R1*sinC;Y=R1-R2*cosC ;R1=R2+150 ;(C為圓弧角)
---以上3式整理---
sinC=X/R1;cosC=(R1-Y)/R2=(R1-Y)/(R1-150)
---程式想法---
輸入X、Y,(矩形的長寬尺寸),C角從0遞增到90以內。符合以上可得到,R1、R2。
!!另外可設厚度為T,取代150。這樣可以設計出一任意厚度T,[輸入X、Y、T,求得C、R1、R2]
還未編寫程式,但用excel驗證過,x=4347/2,Y=505,T=150;求得角度C=18.9707,R1=6685.9634,R2=6535.9634
X=R1*sinC;Y=R1-R2*cosC ;R1=R2+150 ;(C為圓弧角)
---以上3式整理---
sinC=X/R1;cosC=(R1-Y)/R2=(R1-Y)/(R1-150)
---程式想法---
輸入X、Y,(矩形的長寬尺寸),C角從0遞增到90以內。符合以上可得到,R1、R2。
!!另外可設厚度為T,取代150。這樣可以設計出一任意厚度T,[輸入X、Y、T,求得C、R1、R2]
還未編寫程式,但用excel驗證過,x=4347/2,Y=505,T=150;求得角度C=18.9707,R1=6685.9634,R2=6535.9634
- 附件
周辰- 一般會員
- 文章總數 : 9
年齡 : 48
來自 : 台北
職業 : 產品機構
愛好 : 音樂單車
個性 : 溫和
使用年資 : 15
使用版本 : 2012
經驗值 : 5092
威望值 : 18
注冊日期 : 2011-02-21
alalphapha likes this post
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 2D討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章