本文摘要(由AI生成):
文章主要介绍了Hypermesh软件的二次开发,以及二次开发在仿真工程中的便利性。二次开发可以通过宏命令、Tcl/TK脚本批量自动化和流程自动化等方式实现,可以减少重复性劳动,提高仿真效率,最小化仿真分析时间,标准化仿真流程,固化仿真经验。
很多有限元仿真工程师对软件的使用比较精通,但是对软件的二次开发确不是很清楚,总认为二次开发是比较高级,较难掌握的部分。其实不然,二次开发不像编程需要考虑那么多,只需要将工程师的想法即工程师平时的操作通过软件自带的api函数传递给软件,辅助一些逻辑判断结构,就可以自动实现工程师的想法,对于重复性的劳动,可以起到一劳永逸的效果,工程师对软件越熟悉,二次开发上手越快。
Hypermesh作为目前市面上最常用的前处理软件,而前处理是整个仿真过程中最费时费力的部分,如果我们能把这个最耗时耗力的部分通过二次开发实现全部或部分自动化,必将大大提升仿真效率,减少工程师的劳动量。下面将以三个小例子由浅入深的为大家讲解hypermesh二次开发给大家工作带来的便利性。
在utility的user面板中自定义一个按钮来实现常用的命令,能够减少用户在做一个重复繁琐的工作,创建用户自定义的工作环境。主要通过userpage.mac中*createbutton命令来实现。
以导入用户自定义的template模板文件为例,常规操作是File ->import -> model然后打开File selection对话框选择template模板文件。Hypermesh软件本身除了提供api接口函数外,还提供实时记录用户操作的command.tcl脚本文件。
首先我们进行一次常规操作,完成模板导入。打开command.tcl文件找到如下命令:
拷贝并将其保存为一个后缀为tcl的文件,在userpage中输入如下语句完成button按钮的定义工作
*createbutton(5,"Import Template",0,0,10,BUTTON,"Import drop template to your model", "EvalTcl","ImportTemplate.tcl"
其中*createbutton命令的各参数含义如下:
重新启动软件,在user界面就可以看到新生成的Import Template按钮,同样道理,可以完成其他的用户工作环境的定义、更换、删除等操作
用户自定义的宏命令
需要注意的是,宏命令方式的缺点主要是不能取消或者撤销命令的执行,而且无法调用自身,不能迭代操作。
使用tcl/TK脚本开发可以增加hypermesh的api命令的逻辑和条件控制方式,实现模型文件批量自动处理。在电子产品中螺钉的数量较多,划分起来很费时间,通过hypermesh可以快速的进行螺钉的网格划分工作,可在一分钟内完成数十个螺钉的自动划分工作,提升效率,避免重复劳动。
操作思路主要是
a) 根据螺钉结构特点寻找出螺钉头部位置及螺帽的高度
b) 自动得出螺杆直径尺寸,完成整个螺钉的网格划分操作
c) 使用foreach语句逐个螺钉完成上述操作,最终实现多个螺钉的划分工作
演示动画
Hypermesh内嵌tcL程序,通过内部的api函数可与Tcl语言的if、for、while、
foreach、switch等逻辑命令无缝结合,通过两者之间的嵌套使用可以完成工程师的绝大部分手工操作命令,将工程师从繁重重复的前处理工作中彻底解放出去。
二次开发的终极目标是实现仿真流程的自动化,最理想的状态是选择输入文件后自动得到分析报告,目前不是非常复杂的几何结构已可以完全实现流程自动化。
在hypermesh中可以通过用户自己定义流程界面来完成仿真流程的搭建,也可以使用altari process manager工具来搭建仿真流程。下图是一个简单悬臂梁刚度分析流程Demo,用户只需要逐个步骤点击后输入相应的参数,最后就可以输出模型文件,这样就完成了前处理阶段自动化流程。
完成前处理部分,我们可以通过在后台调用求解器,以及后处理软件自动读取结果。后处理软件自动读取结果生成报告文件的操作后续有机会为大家展开介绍。下图是一个结合hypermesh和abaqus的仿真分析自动化流程。用户仅需要在定制好的界面选择几何文件,将载荷设置输入界面中,点击提交按钮,程序户在后台自动调用hypermesh完成网格划分求解文件输出,然后调用abaqus求解该inp文件,计算完成后读取我们关注的结果并自动生成ppt文件,最后将仿真报告自动发送到客户邮箱,整个仿真过程实现完全自动化。
综上所述,hypermesh软件的二次开发就是自动或半自动的执行一系列其命令、步骤或者流程,我们通过二次开发可以提高仿真效率,最小化仿真分析时间,标准化仿真流程,固化仿真经验。