首页/文章/ 详情

【SimLab自动化】一键生成高质量网格

8月前浏览4574

本文摘要(由AI生成):

这篇文章主要介绍了如何使用 Altair SimLab 通过自动化工具一键生成高质量网格,并且提供了详细的操作步骤和代码示例。首先介绍了 SimLab 2020.1 的新功能,包括草绘功能和录制宏界面的变化。接下来讲解了实现一键网格划分的详细步骤,包括录制宏代码、修改宏代码增加通用性以及通过 UICustomization 工具定制界面。


导语

上期我们主要对 Altair SimLab™ 的多物理场仿真能力、录制宏代码、二次开发以及快速定制界面等功能做了介绍。本期主题我们来讲讲:如何使用 Altair SimLab 通过自动化工具一键生成高质量网格。


     

上期回顾:Altair SimLab™ 自动化功能介绍

     


因为本期内容都是基于 SimLab 2020.1 来撰写的,所以在正式进入本期主题前,我们先一起来看看 SimLab 2020.1 有哪些新功能吧~ 


SimLab 2020.1 新功能简介


SimLab 目前最新版为 2020.1 继 2019.3 版推出清理几何 LOGO 和倒角之后,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 面板定义好的参数,引用参数。


 
 
 
 
 


我们已经为大家准备了一个简单的几何模型 bracket.x_t,大家可自行操作进行录制宏代码;如果你只想了解一下,我们也为大家准备好了录制好的宏代码 mesh_original.py(不过还是建议大家自己动手操作一下),下载链接见文末~ 


修改宏代码


若根据上一步操作中尽可能引用了 meshsize 参数,则 mesh_original.py 文件中有以下两处需要修改。


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 格式的图片作为图标(文末链接里也贴心的给大家附了一张图片作为 icon )。


 
 


使用 OneClickMesh 进行网格划分,可以看到划分好的模型有3层倒角网格,圆孔周向划分为12份,圆孔添加了2层 washer,说明在划分网格之前已经添加的相应的倒角、圆孔和 washer 控制参数。


 
 


■   

调试一套通用的网格控制参数,不管多复杂的几何模型都可以借助 OneClickMesh 小工具一键生成高质量的四面体网格啦。

来源:Altair澳汰尔
SimLab动网格二次开发通用python控制OriginAltair
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-03-24
最近编辑:8月前
Altair澳汰尔
澳汰尔工程软件(上海)有限公司
获赞 142粉丝 476文章 746课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈