【SimLab自動化】一鍵生成高質量網格
SimLab 2020.1版推出了期待已久的草繪功能,可以在SimLab中通過草繪創建幾何啦。
錄製宏界面也發生了變化。下拉選單名稱由Project修改為Scripting,在開始錄製代碼前,可通過Set Working Folder工具設置工作目錄,可通過Language工具設置代碼格式,目前支持Python、Java Script以及XML。
一鍵生成高質量網格
SimLab介面本身可以通過Mesh-3D-Tet工具實現一鍵自動網格劃分,但僅限於基礎的網格劃分,無法自動添加必要的網格劃分控制參數來滿足不同行業的需求,比如常用的倒角、圓孔和washer控制參數。
通過二次開發,可以實現一鍵自動劃分實體網格的同時添加相應的網格控制參數。
要實現一鍵網格劃分,同時施加相應的網格控制參數。需要分三步實現:手動網格劃分並錄製宏代碼,修改宏代碼增加通用性,通過 UI Customization 工具定制介面。
錄製宏代碼
要基於SimLab 進行二次開發,最快的方法就是先把想實現的功能通過手動操作一遍,通過 Scripting-Record 工具把操作過程的代碼錄製下來,然後基於宏代碼進行修改,即可得到適用所有模型的實現特定功能的代碼。
我們的目標是實現一鍵網格劃分,同時自動添加一些網格控制參數。下面對目標進行分解細化:
- 要進行網格劃分,必須要進行面網格劃分和實體網格劃分;
- 要添加網格控制參數,必須要通過Mesh-Controls-Mesh Controls面板添加倒角、圓孔以及washer等控制參數;
另外,如果希望代碼適用於所有的模型,則網格平均尺寸、最大網格尺寸、最小網格尺寸、washer寬度等參數需要根據網格尺寸進行調整。
最簡單的方法是通過 Parameters 面板定義一個名為 meshsize 的參數,然後將以上的尺寸都與 meshsize 參數進行關聯,那麼對於不同的模型或者不同的網格尺寸只需要修改 meshsize 參數即可。
綜上所述,手動操作錄製宏代碼步驟為:
- 打開 SimLab2020.1
- 導入幾何模型
- 通過 Scripting-Record 工具開始錄製宏代碼
- 創建網格平均尺寸 parameter
- 添加倒角、圓孔以及 washer 控制參數
- 面網格劃分
- 體網格劃分
- 結束錄製並保存宏代碼
■ 注意
在劃分網格等操作中,請盡可能使用 parameter 賦予尺寸,這樣可以減少修改宏代碼的工作量。
參數使用格式為 $meshsize,可在後方添加乘法符號進行運算;實際使用中,可長按 shift 鍵加單擊鼠標左鍵點擊 parameter 面板定義好的參數,引用參數。
修改宏代碼
01 修改Parameter 參數
需要將 Parameter 參數中的 Value 值修改為變量,需要將數值“2”修改為:三個英文輸入法下的單引號+加號+變量名+加號+三個英文輸入法下的單引號,即'''+size+'''。Size 是變量名,左右各三個英文狀態下的單引號,中間兩個加號,這是 Python 的語法規則。
修改前
修改後
02 修改SurfaceMesh 函數中的最大網格尺寸參數
介面中沒有自動將SurfaceMesh 函數中的最大網格尺寸參數調整為參數相關的變量,我們將下圖中的2.828 修改為$meshsize*1.414 即可。
SimLab 中默認最大尺寸為平均尺寸的根號2倍。修改好的代碼為mesh_done.py 文件。
修改後,將代碼文件另存為mesh_done.py 文件。
修改前
修改後
03 使用UI Customization 工具快速定制介面
由Advanced-UI Customization - Dialog Designer 進入快速定制介面工具。
點擊 Controls 下方加號添加一個變量,Caption 為定制介面中顯示的變量名稱,Python Variable Name 為mesh_done.py 文件中的parameter 名稱,Control Type 為變量類型,後面還可以通過Property 和Value 設置單位制和默認值,在Script file(*.py) 欄選擇修改好的mesh_done.py 文件,最後點擊 Create 即可快速創建定制介面。
創建好定制介面後,可由 Advanced-UI Customization - Custom Dialog List 找到定制的一鍵網格工具。點開後,輸入尺寸2mm,即可一鍵進行網格劃分。
如果你認為每次都要通過 Advanced-UI Customization - Custom Dialog List 這一系列點擊才能找到定制的介面太麻煩,可以將定制的介面工具固定在模型窗口右側方便使用。
另外一種方法,可通過如下圖所示方法將定制介面做成下拉選單。注意:需要一張 png 格式的圖片作為圖標。
使用 OneClickMesh 進行網格劃分,可以看到劃分好的模型有3層倒角網格,圓孔周向劃分為12份,圓孔添加了2層washer,說明在劃分網格之前已經添加的相應的倒角、圓孔和washer控制參數。
調試一套通用的網格控制參數,不管多複雜的幾何模型都可以藉助 OneClickMesh 小工具一鍵生成高質量的四面體網格啦。
想了解更多 Altair SimLab多物理場平台,歡迎聯絡我們申請試用或產品展示。
- 電話 : (02)2518-9060
- 郵件 : info@agilesim.com.tw