Re: [問題] 這種螺旋線

看板Cad_Cae (電腦輔助設計)作者 (jiwen)時間14年前 (2011/09/20 21:53), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《yobook (@@)》之銘言: : 想問一下 : 這種螺旋線 : http://tinyurl.com/3fd26tn : 非正圓形 : AutoCAD該用哪一種 : 才能畫的又快又好 : 還是用AutoLISP ? 第一次聽到這個東西 : 謝謝! ※ 引述《yobook (@@)》之銘言: : 想問一下 : 這種螺旋線 : http://tinyurl.com/3fd26tn : 非正圓形 : AutoCAD該用哪一種 : 才能畫的又快又好 : 還是用AutoLISP ? 第一次聽到這個東西 : 謝謝! 這是以阿基米得(等速)螺旋作為中立線向兩側增加寬度後做出來的圖形 如果偶而單純畫這種線條,板友有提供相應的螺旋指令可以勝任(可能在其他cad也有) 連結到您上一題,如果是要做成一個模組以快速產生各種所需的螺旋電感 可以考慮專用軟體,如果想要透過lisp或其他語言在繪圖軟體中製作 這裡可以就螺旋線的部分提供一些心得: (用的語法並非lisp以求簡明) 首先,對於螺旋線的點集合當中的任一點,以極座標來定義位置, 需要兩個變數,這次的例子命名為 Pr 和 Pa : Pa 角度 包括LISP在內的許多語言多半是用弳度的, 2 * Pi 代表一圈。 Pr 半徑 有寬度的平面螺旋圖形中很少直接從中心(半徑0)開始畫的, 並且通常半徑的上下限會被用來定義(或檢查)迴圈範圍。 等速螺旋的特性是它的間距是相等的,這裡要釐清一點所謂的間距, 數學上指的是中心點放射出去的線,與螺旋線相交的任意相鄰的兩點距離。 由於增量(斜率)的存在,這裡得到的兩點距離會比兩圈之間實際的最短距離稍大, 這個現象離中心愈近就愈明顯,離中心越遠(或者說圈數愈多的時候)就愈不明顯。 理解並接受這個特性之後就可以應用 Pa 和 Pr 之間的線性關係作為程式的核心: Pr = X * Pa / (2 * Pi) 這個X就是每圈(2 Pi 弳度)的半徑成長幅度, 等速螺旋的X是定值(就是上面說的間距), 以迴圈在Pr的上下限範圍內,依序取得多組 Pa 和 Pr 的(極座標)點集合, 迴圈結束後連接這些點就是螺旋線,處理完端點的走向 並作成聚合線, 再呼叫ACAD的offset向兩側作出寬度,了不起再加蓋就差不多了。 這樣看下來似乎是個僅有一層迴圈的小函數。 但是這個迴圈有個要注意的點,Pr不應該用等差級數帶入迴圈 (此例來說應避免 Pr = Pr + n 之類的寫法): 因為Pr成長量固定意味著Pa成長量也是固定的,也就是說不論內圈還是外圈, 每一圈取樣的次數是固定的,這會導致外圈的解析度不足而有正多邊形的趨勢 (即使是畫多邊形的螺旋線也不需要利用這種情形,邊長難以控制)。 解法有許多種,舉個程式碼最短的例子: 可以在迴圈中計算目前Pr為半徑時的假想圓週長,除以恆定的弧長(解析精度), 來推算下一個Pa,再透過公式得Pr..循環 以上是關於螺旋的程式部分 至於LISP的參考資料,我以前主管教的,只有講義和筆記, 手冊則是將ACAD的中文lisp說明備份下來參考 (印象中2000應該是少數有中文化到開發者手冊的版本了)。 實體書可能要請板上的前輩們推薦了 以上,希望對您有幫助。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.120.176.204
文章代碼(AID): #1EU9hV4w (Cad_Cae)
討論串 (同標題文章)
本文引述了以下文章的的內容:
2
2
完整討論串 (本文為第 2 之 2 篇):
2
2
文章代碼(AID): #1EU9hV4w (Cad_Cae)