本期给大家演示如何把重复的事情做得优雅一点。编程是解决重复问题的重要方法,但我希望能让害怕写代码的同学也能有所收获,所以会尽量少写代码,就算要写,也只是使用一下foreach循环进行遍历,foreach的简单形式如下,将美元符号放在变量名前进行变量值的提取:
foreach 变量名 变量值列表 循环体
运行结果如下:
i = 1
i = 2
i = 3
通用形式为:
foreach 变量名列表1 变量值列表1 变量名列表2 变量值列表2…… 循环体
运行结果如下:
i = 1, j = 10, k = 20
i = 2, j = 30, k = 40
i = 3, j = 50, k = 60
以下是另外一个例子,第一行最后的反斜杠是续行符:
运行结果如下:
HyperWorks 2017.0 is released in 2017, contains HyperMesh and OptiStruct
HyperWorks 2018.0 is released in 2018, contains HyperMesh and OptiStruct
HyperWorks 2021.0 is released in 2021, contains HyperMesh and OptiStruct
先看一个选择对象的问题:把下图中的曲线和直线分为两个组件,方法是用平面选择+CTRL-M选择类似对象:
接下来演示创建一批节点,节点提供了位置信息,是很多其它对象创建的基础,比如曲线,单元,焊点,载荷等等,很奇怪 HyperMesh 居然没有提供这么常用的工具, Altair 中国二次开发部门已经发布了3期,提供了30个工具。如果大家日常碰到什么重复性很高的烦人工作,可以来找我们,说不定能帮到您。
我把一些简单方法录了个视频给大家参考。
使用HWX toolbox
直接用文本编辑器写fem文件
写简单tcl脚本
修改hm模型导出的fem文件里面的节点坐标
类似的还有批量创建comps:
批量修改comps名字,这里的字符串操作使用excel自带函数,也可以使用文本编辑器或者编程语言中的其它方法,
还有批量分拆属性和材料,目标是每个comp都有自己的独立材料和属性
很多新界面功能是基于part的,如何批量把comp转换为part呢?
HyperMesh提供了很多方法,例如在导入fem文件的时候会自带创建。
除了识别已有模型中的相似件,还可以通过part browser的右键菜单instances中的移动/旋转/对称等功能创建多个instance,实现网格同步。
但我们有时还是倾向于简单稳健的工具,比如阵列。结合FE-GEOM以及part等工具可以发挥出更强大的威力。
批量切割曲面,方便划分规则网格。我们用脚本把手工的曲面切割变成了批量处理,这个例子中用的是midmesh得到的FE-GEOM,脚本也适用于纯几何面
输入及结果如下:
批量创建工况,各种工况都可以:
还有很多很多……有了规则排列的节点,算法复杂度就大大降低了。