我的程序现在通过Automation的方式(我用的C++,不是
VB),能够启动CATIA,并且能依次得到Catia的各级Automation对象:CATIAApplication->CATIADocuments
->CATIADocument->CATIAPart。这些Automation的C++对象不同于CAA C++ API里提供的对象,比如说在CAA C++ API文档里我能
看到的是CATDocument类而不是CATIADocument(在Catia的安装目录下,"CATDocument.h"位于
B13\ObjectModelerBase\PublicInterfaces目录下,而"CATIADocument.h"位B13\InfInterfaces
\PublicGenerated\intel_a目录下),同样对应零件的类CAA C++ API文档里是CATIPrtPart而不是
CATIAPart(在Catia的安装目录下,"CATIPrtPart.h"位于B13\MecModInterfaces\PublicInterfaces
目录下,而"CATIAPart.h"位B13\MecModInterfaces\PublicGenerated\intel_a目录下)。
现在我需要从那些我已经得到的Automation对象中得到CAA C++ API提供的对象:CATDocument或者CATIPrtPart。我试过用CATIADocument和CATIAPart的QueryInterface(IID_CATIPrtPart,...)方法,看上去都没有成功。不知道大家有什么高见?