Hypermesh中使用矩阵提取功能删除重复的载荷
在文章《在Hypermesh中通过Excel电子表格进行数据的批量修改》中介绍了如何使用matrix获取HyperMesh数据库中的数据以及如何把通过Excel电子表格修改后的结果用于更新模型。本文进一步介绍如何使用Altair Compose对matrix查询到的数据进行运算并获得希望的结果。下面通过一个实例来演示matrix和Compose的使用方法。
1、问题描述
以下模型中的不同结果是因为某种原因把部分单元上压力载荷施加了多次。我们希望把重复施加的压力载荷检查出来并且删除掉。下图是有限元模型。
删除模型中重复载荷后(左)和之前(右)的变形结果对比如下图所示。
2、使用matrix提取每个载荷的单元信息
为了删除重复载荷,首先需要使用matrix把每个载荷的单元信息提取出来。
打开Tools > matrix browser,在DataSource中选择HMdata,在Entities中选择loads
然后选择query选择模型中的所有压力载荷。
得到的结果如下:
在上表中点击loads列选择所有load id,在DataSource中选择HMdata,在Entities中选择loads,在Datanames中选择element,然后选择query选择载荷对应的单元id号,由于有重复载荷,结果中有的单元id号会重复出现。
查询结果如下:
接下来点击右上角的excel按钮在excel中打开数据,然后将excel中的数据导出为.csv文件。
3、在Altair Compose中进行数据筛选
启动Compose并在Compose中输入如下代码
点击Start按钮运行Compose脚本后会在D:\Compose目录下生成loadid.csv文件。(不把结果输出到屏幕上是为考虑到实际工程中的大模型可能有百万单元,输出命令会花费很长的时间)。
4、删除重复的载荷
复制loadid.csv文件中的内容(载荷id号),打开HyperMesh按F2进入删除面板,类型选择loads,在扩展面板中先选择by id,然后ctrl-v把剪切板中的id号复制进去,然后再在扩展面板中选择reverse进行反选。点击delete entity删除。这样我们就把模型中的重复压力载荷全部删除了。
当然,第4、5两步中也可以通过其他方法直接提取重复载荷的ID,然后直接进行选择删除。