過年間上網偶然看到有國外網友將向日葵 Pattern搭配 Excel VBA實現在 SolidWorks上,基於追求數學的美跟好奇心使然,我也嘗試在Creo中實現,最後利用了MathCAD Prime + Creo做出來,稍做分享。
首先思路很重要,思考如何解決這問題:
找出 SunFlower Patter 的規律、規則
包含幾何規則、數學模型、數學公式、或是用code實現
決定採用的工具
能簡單就不要複雜,試過了草繪方式或是陣列增量方式,但都無法滿足
優化設計思路
將模型設計出來想辦法再優化,先求有再求好
最終設計思路→ 數學產生點資料 > 導入Creo > 點陣列生成
STEP1-數學產生點資料
為了控制Pattern的點資料與Creo模型連動,用MathCAD Prim將SunFlowerModel的點資料連動Creo參數
,我們需要種子的數量(n)到原點的距離(Δθ)來生成每個種子的座標(x,y),種子的數量會影響圖案。
- 「qty」=500 控制種子的數量
- 「n 」每顆種子排序 0 到 500 (qty)
- 「Δθ 」每一顆種子的增量
- 將極坐標轉換為笛卡爾坐標
- 「M 」矩陣每一點的增量座標位置
- 可以插入一個「3D 繪圖」將點打出來參考
STEP2-導入Creo Parametric
- 新建一個空白零件
- 切換到分析頁籤 > 「Prime 分析」就是連結 Mathcad Prime
- 載入剛剛 Mathcad Prime 建立的檔案
- 新增一個Creo參數qty
- 在「Creo Parametric 到 Prime」點選qty
- 在「Prime 到 Creo Parametric 」類型切換到”Prime變數”
- 點選輸出的變數out
STEP3-點陣列生成
連結Mathcad Prime後,會形成後台的運作模式,不需要一值開著Mathcad Prime軟體,只要透過Creo參數QTY 控制陣列數量就可以,執行再生後,系統會自行開啟Mathcad Prime運算新的數學資料,計算後結果會output到Creo裡,藉此保持連動。
進行陣列,類型切換至「點陣列」,設定選擇「來自基準點」選取剛產生的點資料分析
像這類型的大量陣列,建議將「選項」中的再生選項切換到「相同」,陣列運算速度會快好幾倍。預設是「一般」,最慢但也最容易陣列成功。