我们在录制宏代码,或者自己写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”这一需求。

实际运行一下,也是可以达到我们预期的效果的:

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...