首页/文章/ 详情

hypermesh二次开发-快速输出板厚为0的组

22天前浏览669

在结构仿真中,模型前处理占据大部分时间,大型模型往往有几百上千个组,当经过多次模型更改后或者换了CAE工程师处理模型,想要检查所有组是否赋予了材料和属性,以及壳单元厚度是否符合要求,一个个检查费时费力,还容易出错。

用TCL语言对HyperMesh进行二次开发,可以实现用以下代码对所有包含壳单元的组件进行检查,判断是否已分配材料和属性,以及检查板厚是否大于0。对于未分配材料和属性或板厚为0的组件,将其ID号输出到一个TXT文档中。

程序主要部分如下:

# 打开TXT文件准备写入数据

set fileId [open "output.txt" w]


# 获取所有存在壳单元的组件

set components [hm_entitylist comps "by config" ""]


# 循环遍历每个组件

foreach comp $components {

    # 获取组件的ID

    set compID [hm_getentityvalue comps $comp id]


    # 检查组件是否有材料和属性

    set material [hm_getvalue comps id=$compID dataname=material]

    set property [hm_getvalue comps id=$compID dataname=property]


    # 检查板厚是否大于0

    set thickness [hm_getvalue comps id=$compID dataname=thickness]


    # 如果未分配材料或属性,或者板厚为0,则将组件ID写入TXT文件

    if { $material == "" || $property == "" || $thickness <= 0 } {

        puts $fileId "Component ID: $compID"

    }

}


# 关闭TXT文件

close $fileId


这段程序的大致思路是

1.遍历所有component,是否存在壳单元,对存在壳单元的组进行下一步。

2.获取所有存在壳单元的组的ID号,便于后面输出。

3.判断每个组是否有材料和属性,板厚是否大于0。对不符合条件的组输出ID号至TXT文档。

至于板厚和数模是否相符,还需要更多的设置,首先需要在所有壳单元组名称加上板厚,如_3mm,表示板厚3mm,在程序中增加判断语句,提取名称中的此字符串和属性中的厚度判断,相同跳过,不同输出属性ID号,输出到TXT-prop。


来源:仿真老兵
HyperMesh二次开发材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-23
最近编辑:22天前
无情浪子
硕士 签名征集中
获赞 13粉丝 4文章 35课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈