首页/文章/ 详情

利用Hypermesh进行穿透检测及二次开发自动修复

3月前浏览595

    本篇文章主要是介绍HyperMesh的穿透处理,也会穿插介绍ANSA的检查与处理方式。   

 

    众所周知,在显式计算中,如果网格之间存在过小的间隙或者穿透现象,就会导致实际计算中出现初始穿透现象,这将导致计算结果不准确,甚至会引发错误报告,或者当迭代至一定时间步后,再出现错误,总的来说就是不可控。


    因此,进行网格模型间隙检测变得至关重要。通过对网格模型中的间隙进行检测,我们能够及时发现和解决潜在的问题,以确保计算的准确性。


    在HyperMesh中提供了相关的穿透检测功能。个功能能够自动识别网格模型中的间隙,并为我们提供交互面板。通过使用这个功能,我们能够在前处理阶段发现间隙问题,并调用相关功能自动修复网格,从而确保计算的准确性和可靠性。



点击对应的Item即可实现,将穿透部件,仅显示出来


当部件较大时,我们能查找穿透部位就不是很直观,可以通过“Review Failed Elements”按钮切换显示模式。这就能直观查看穿透位置,或通过“Display Only Failed Elements”,仅显示错误单元。


程序提供了自动修复的功能“Automatic Intersection Penetration Fix”,效果如图所示。

我猜测修复逻辑是,将一侧的节点投影至另一个单元的法向平面,再沿着两个单元法向叉乘,得到的第三个矢量方向,移动节点实现的自动修复。


ANSA也能实现同样的功能



    这个通过移动节点修复单元的逻辑一言难尽。对于结构影响太大了,当影响范围调整小一点时,穿透依然是不能修复的。在ANSA中对于这种结构的穿透,可以通过Move功能,能够更快的处理穿透。这个功能拿来,仅检查穿透还是很方便的。



    上述的仅包含穿透的一种形式,软件的自动修复功能,如果是处理穿透距离较短,或者穿透部分较小的时候,可以实现自动修复,并且修复后和周围的网格不会存在过多的质量问题。


反之如果出现大面积穿透的情况,就会存在下图的修复效果。


HyperMesh


ANSA



    通过对Hyper Mesh修复后的模型分析,可以看出自动修复的功能是基于网格节点的方式移动的。

    如何正确修复上述的穿透问题,当穿透的位置的结构是搭接方式时,我们可以尝试将修复方式,修改为基于穿透单元法向移动,但软件并未提供相关功能,这时候就可以使用二次开发程序来进行间隙检测,网格修复。


    目前程序,是定制化开发的,只能处理这视频中这一种形式的穿透面面穿透的,(面和边穿透,以及边和边穿透)处理逻辑不一样。


      使用方式是选择需要处理穿透的单元,程序会识别出穿透区域,然后选择需要移动的面的任意一个单元,就可以沿着单元法向移动,从而完成修复。全自动修复的目前是做不了的,穿透形式,结构位置太多了,不好处理,太多的逻辑判断会让程序变得不稳健。


    通过使用二次开发程序,我们能够更加灵活和精确地检测模型间隙,并为保证计算的模型是准确的。否则就会靠运气,在刀尖上跳舞,模型不稳定。

    网格模型的准确性对于计算结果的可靠性至关重要。间隙检测只是模型检测中的一项,如果网格模型存在其它问题,仍然无法得到准确的计算结果。

    因此,在进行模型创建过程中,我们需要遵循规范,注重细节。这包括正确的几何建模、合适的网格划分和适当的边界条件,正确的模型装配等。


    但在实际工作中,往往存在多个版本的几何,或者仅更新部分总成的情况,模型装配上,法兰边可能就存在大面积穿透或者穿透较多过大,那二次开发更解决不了。


    总而言之,CAE网格模型间隙检测对于确保计算准确性至关重要。通过使用工具如Hypermesh中的网格检查功能以及二次开发程序的支持,我们能够及早发现和解决模型间隙问题,确保计算结果的准确性和可靠性。同时,我们也要重视模型的准确性,遵循规范和注重细节,以提高计算的可靠性和精确性。



来源:TodayCAEer
HyperMesh二次开发ANSA装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 18粉丝 28文章 249课程 0
点赞
收藏
作者推荐

HyperView二次开发_自动识别模态系列-GUI操作

识别模态的工具开发将分为两篇,本篇将介绍在GUI界面下手动操作的步骤,以及程序开发的逻辑。正所谓授人以鱼,不如授之以渔,咱们开始了。识别全局模态基于NVHUtilities工具,超级简单。选择文件,点击Load按钮,程序就自动识别模型的所有工况,如果不只是模态工况的话,需要手动切换为模态工况,设置识别的百分比,并根据模型设置具体的识别范围,节点的类型等。然后点击IdentifyModes开始识别,如果Global/Local的ListBox没有新的Item,表示你设置的Criterion比值太大,请减小数值,当出现Item后,点击Animate,即可加载对应的阶次动画。大部分模型,如果关注一阶扭转或弯曲,那么前两个Item就是你所需要的,是能识别正确的。如果对于TB这种大模型,或者局部模态较多的,可以采用FRF功能加以辅助甄别,当然这是另一个NVHUtilities工具下的另一个功能了。这就是识别整体模态的操作,但是对于像动力总成这类的模型,不仅仅关注的是整体模态,更关注的是各个部件的局部模态,这除了人工识别外,有没有其他办法实现呢,有知道的小伙伴,能后台分享下就更好了,哈哈哈。以上是手动识别的步骤,如果要开发自动识别的工具,前提条件是你得手动能操作出来,并捋清楚程序运行的逻辑,这样才可以着手开发,不然后世浪费时间。开发逻辑:这个工具是识别每一阶模态中,节点的参与的数量,最后得以一个参与因子,取最大值,简单粗暴。来源:TodayCAEer

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