我们在录制宏代码,或者自己写VBA二次开发程序时,通常以下面的代码作为开头,来获取CATIA当前激活的文档,从而进行后续的操作:
Set Document = CATIA.ActiveDocument
但有一种情况,相信各位做Automation开发的时候都遇到过:如何获取装配文件中正在编辑的Part?
对于上面图片的情况,我们直接通过ActiveDocument,获取到的永远倒是装配体的根节点,即Product5。所以,要想获取到Part1,我们不得不另辟蹊径。
那么,这个蹊径是什么呢?
如果你用过CATIA软件的Search功能(快捷键Ctrl+F),那么你会知道,我们查到的范围是可以设置的。并且,在装配文件下设置为“in”的时候,
如果当前处于某个part的编辑状态,其范围会自动限定为在该part下搜索。
现在,我们来做一些手动的尝试,比如:激活part的情况下,通过in的范围,可以搜索到名为xy plane的元素:
但激活Product的情况下,则无法搜到:
借助这一特性,我们便可写出如下函数,通过搜索part下实现“获取装配文件中正在编辑的Part”这一需求。
实际运行一下,也是可以达到我们预期的效果的:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删