首页/文章/ 详情

HyperMesh二次开发实例第三弹_模型非正常自由边检查

27天前浏览750

嗨,大家晚上好!

豆豆又有许久没看公 众号,今日打开看见人数还在蹭蹭蹭的增加,感谢大家的支持。

这次继续分享hypermesh二次开发案例。

CAE工作中,前处理最为消耗时间,网格划分、模型检查,载荷施加。网格模型正确,是正确求解的基础。

模型检查包括,重复单元,不符合质量标准单元,是否正确创建属性,材料等。

hypermesh提供了一个模型检查工具,在nastran下,选择下拉菜单Tools-Model Checker-Nastran,check这个功能,能够检测出如图所示的错误类型。

当然,检查过程中少不了的一步是,模型自由边检查。

为什么需要检查模型自由边,如果在模型关注位置,存在非正常自由边,节点不连续,将会导致计算结果与实际存在偏差。

说了这么多,今天的主体部分来了。

关于模型自由边的检查脚本。

视频中用到四个过程,

Translate 

Translate_Test 

CheckEdge

 CheckEdge_Auto

视频内容为:

    1、使用Translate_Test 生成了8个测试Comps,

    2、使用CheckEdge演示了手动检查自由边的脚本用法,当前Comps没问题点击Esc,进入下一Comps检测,如有问题,点击Comps自动将模型放到名为FreeEdge的Assembly中。

    3、使用Translate生产了50个Comps,

    4、使用CheckEdge_Auto自动检测模型自由边。

手动检查自由边的方法,模型少没问题,检查起来没问题,但如果模型数量扩大到白车身层级,检查起来眼花缭乱,看同一事物太长时间,容易疲倦,对于事物的判断能力下降。

    之前某一天灵光一现,故写了一个自动检测模型非正常自由边的方法,效果参见视频。目前还存在BUG会将正常孔的边缘查找出来,但是是个例,如视频所示,仅有一个Comps产生错误识别。

豆豆还想着把公 众号做大做强,继续分享,奈何脑容量只有那么大,知识只有那么多,故hypermesh二次开发系列的下一篇文章,再分享自动检测模型自由边脚本。

手动检测自由边,以及平移模型脚本如下:

 1proc CheckEdge { } {
2    *createmarkpanel comps 1 "select Comps"
3set CompsIDS [hm_getmark comps 1]
4    catch {*createentity assems name=FreeEdge}
5set AssemblyID [hm_getvalue assems name=FreeEdge dataname=id]
6    foreach CompsID $CompsIDS {
7        *createmark comps 1 $CompsID
8        *createstringarray 2 "elements_on""geometry_on"
9        *isolateentitybymark 1 1 2
10        *findedges1 components 1 0 0 0 30
11        *view "iso1"
12        *createmarkpanel comps 1 "Check"
13if {[hm_getmark comps 1] != ""} {
14            *createmark comps 1 $CompsID
15            *assemblyaddmark $AssemblyID components 1  
16        }
17        *deleteedges 
18
19    }
20}
21#########################################
22
23proc Translate {} {
24    hm_createmark element 1 "advanced""displayed"
25set elementID [hm_getmark element 1]
26for {set i 0} {$i < 50} {incr i} {
27        hm_createmark element 1 $elementID
28        catch {*createentity comps name=Comps_$i}
29        *duplicatemark elements 1 1
30        hm_createmark element 1 $elementID
31        *createvector 1 0 0 1
32        *translatemark elements 1 1 5
33    }
34}

手动检测自由边的脚本还有优化的空间:

1、比如判断当前模型是否存在名为FreeEdge的Assembly,再考虑是否创建Assembly

2、由于当前网格都是真实着色状态,自由边的的红色Plot单元并不是很明显,可以增加控制模型显示的代码,以突出显示自由边。

来源:TodayCAEer
HyperMeshNastran二次开发UG材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:27天前
TodayCAEer
本科 签名征集中
获赞 16粉丝 8文章 163课程 0
点赞
收藏
作者推荐

hypermesh自动保存补充说明

今天看到后台有小伙伴私信,脚本怎么使用。上一篇文章忘记说了,一个关键的步骤。大家在下载了脚本后,记得用编辑器打开,将最后一行的前面的#字符去掉后在保存,然后再运行就可以了。如何随着hypermesh打开,自动运行脚本,下面给大家介绍一种方法。1、鼠标右键点击左边hm图标,点击属性。2、在目标(T)的输入框后,加入-tcl&quot;脚本路径&quot;。例如:&quot;E:\ProgramFiles\Altair\2018\hm\bin\win64\hmopengl.exe&quot;-tcl&quot;D:\work\Test\mainTest_20201130-level3.tcl&quot;引号是英文状态下的引号,-tcl与脚本路径之间记得加入空格符号。3、点击确认按钮,即可。随着软件启动,会弹出该对话框。1、文件保存的地址。2、保存时间,以分钟为单位。3、最大的备份数量。4、文件保存的后缀,可以更改为hm,当然hmbackup也可以打开。大家根据自己需求,设置相应参数,即可然后点击autosave开始保存。小伙伴们,快去试试吧后续使用方便问题,欢迎后台留言来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈