暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

另辟蹊径:介绍一种二次开发在HyperMesh中抓取rbe2脚本的新思路

AICaer 2021-12-29
3246
在车身仿真模型搭建中,抓取washer孔处的RBE2是一个极为繁琐的过程。采用二次开发方法,可以节省大量washer孔建模的时间。本文对HyperMesh中自动抓取washer孔周边rbe2脚本的开发思路进行讨论,为大家提供一种与传统方法不同的识别washer孔周边节点的思路。


在以往的传统方法中,脚本往往是通过检索模型网格的edge来获取washer孔的边界,并以此获取到孔周边的节点。开发思路如下:
1、选择孔边任意多个点 → 2、获取选点所对应零件的所有边 → 3、获取孔所在的边 → 4、根据孔所在边得到孔周边的节点 → 5、抓取获取的节点

这种方法直观且易于实现,在轻量级的网格模型,如开闭件模型中,无论是便捷程度还是抓取节点的速度都能让人满意。一般抓取rbe2的脚本依据的都是这种逻辑。但它也有缺点,即在面对有大量washer需要抓取,且网格规模较大的仿真模型(如白车身)时,虽然比手工还是快一些,但运行速度并不理想。

  

为了解决上述方法在大模型中运行效率不高的问题,我们可以采用另一种思路去抓取节点,即采用hm中connectors面板的bolt功能快速拾取孔边界的节点。该功能原本就是用于创建螺栓rbe2连接,可以快速的检索出孔周边的节点并创建rbe2。但其也有不足之处,首先是对抓取的网格层数、孔所归属的零件(layer)一致性要求较高,无法批量的处理多块板不同位置的孔,同时也无法处理单块板的washer孔;其次无法自适应调整孔的搜索容差,每次创建均需针对不同孔手动进行相关参数的适配,导致失败率较高。


但因为bolt功能是HyperMesh内部集成的功能,其检索孔边界的效率极高。我们可以利用这一点,依靠它来检索孔边界节点,然后调用自己配置的脚本来对生成的rbe2进行更大程度的自定义,从而规避上述的bolt连接类型的缺点。其思路如下:
1、选择孔边任意多个点 → 2、获取选点所对应的零件→ 3、后台调用bolt功能创建对应孔的bolt连接 → 4、获取到对应节点→ 5、删除bolt → 6、根据获取到的节点创建自定义rbe2


以下是两种不同算法实现的脚本在同一台电脑上同时抓取不同个数的washer孔需要的时间对比。可以看到采用了bolt方法的脚本,抓取速度明显提高,且随着同时抓取的孔的个数的增加,抓取速度的提升越发明显。

利用bolt去抓取节点,除了可以提升脚本运行速度,在抓取多层washer孔时,脚本对初始时选点的位置也变得更为宽容,可以不再要求必须选择在孔边缘,仅需靠近目标孔位置即可。由于逻辑发生变化,其操作和传统方法比还有诸多区别,此处不再赘述。感兴趣的读者可以自行尝试。

文章转载自AICaer,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论