首页/文章/ 详情

【CATIA VBA】CATIA 二次开发来寻找零件结构树中的父子级别关系

3年前浏览4429

来源:CATIA小蚂蚁

问题

Some days before ,一个网友问我一个问题,在catia中如何通过vba来确认父子级别关系,如下图点.2 有一个父级旋转体.1 和两个子级点.7和直线.2 

图片

经过我反复确认,以及国外同事的协助,得出了如下三点结论:

结论一   

在catia中大部分的元素受vba二次开发的局限性无法确认父子级别关系

结论二  

但是倘若在元素生成的时候,对话框中有明显的reference参考提示选择的时候,我们通常可以在local window中找到对相应的reference元素,即为生成元素的父级元素,千万不要找parent,因为parent和本元素是包含关系,但是ref却是link关系!

如下图,点7,是以点2为参考 通过坐标定义的方式创建的,那么点2就是点7的父级,同时当我们在vba中获得点7的时候,我们发现其有一个PtRef属性,我们可以通过这个属性获得点7的父级别,即点2. 

图片

图片

以上功能还是比较受限,很多元素下都没有这个reference属性,pity!

结论三

在结论二中,我们通过点7获得了其ptref点2,即获得某一个点的父级,那么我们如何通过父级来获得某一个子级别呢,或者说获得父级下面的子级collection呢?答案是没有直接的方法,但是在通过与国外同事讨论的过程中 ,得到了下面的一种方法,即,当我们确定了某一个元素a的子级的类型的时候,我们可以将结构树中所有的此类型全部选中,然后与这个元素a匹配,同时依次问问选中的每一个元素,你是不是元素a的子级啊(当然,这些元素是不会回答的,因为他们没有这个功能,但是结论二给出了方法,我们可以针对每一个选中的元素问元素a,你是不是某一个元素的父亲啊),直到找到这个龟儿子为止!只能说老外的脑洞真的大!下面是与国外二开组的聊天截图,谢谢这位朋友~

图片

以下是相关的代码


图片

这就是今天给大家分享的关于父子级别关系的理论,当然大家可能会有更好的方法,请不吝分享给我~~~

CATIA二次开发
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-10-27
最近编辑:3年前
CATIA专业培训讲师
日拱一卒无有进 功不唐捐终入海
获赞 37粉丝 128文章 61课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈