模型中如何自动批量创建刚性patch
渝之南先生对于ANSA二次开发有非常造诣,经常写出比较实用的小脚本和插件,在二次开发的经验上亦是让我受益良多。我问他,你这么多好东西,为什么不拿出来分享呢?分享才能使人进步,总不能一直陶醉在自己的小世界里吧,怡然自得地有些近乎於闭门造车了。他说,价格不好定,写文章麻烦,收钱一时爽、售后火葬场,balabala,还是不折腾得好。
在我再三要求下,才愿意拿出来一点脚本给大家玩玩儿。同时,这点玩具也包含了我一点点私心,我想看看这个市场到底愿不愿意为对小脚本或者插件买单,这也将影响到今后这个公 众号会不会继续为大家推送类似的文章。好了,废话就先讲到这里,以下我们来看看渝之南先生的这篇文章。在整车碰撞模型中,各总成(如白车身、车门、前后盖、底盘等)直接的连接通常用CRB进行连接。在此之前,首先要将各总成每个螺栓孔周围单元单独放置于一刚性part,整车碰撞模型中涉及到成百上千处螺栓孔,若全手动创建费时费力且容易误将两个螺栓孔周边单元放置于同一part(仿真失真,很难检查),为此,我开发了一小插件,这个小插件能批量且快速地创建螺栓孔刚性Patch,插件效果如下视频演示:
下面,我来为大家介绍一下视频里的插件脚本的思路及源代码:
(1)首先,获取单元id和PID。我们通过单元定义的会话框可以仔细查看单元关键字,EID即孔边缘的单元id号,N1-N4为四边形单元节点,PID则是需要我们改变的单元属性。
(2)获取孔周边的所有单元。我们可以先获取孔周边的所有节点,再通过节点搜索所在单元即可(base.NodesToElements函数)。
(3)创建一个新的Property。新的Property属性的id为当前所有Property中id号最大并加1,Property的名称则为"Patch_"+id形式。
(4)给识别的单元赋值PID。将孔周边一圈所有单元的PID修改为新创建PID的id号。