近的项目也快结束了,第一次接触Catia的二次开发,对于一个以前完全没有学过Catia的人来说,当时感觉这似乎是不可能完成的任务
Catia二次开发多数是以VB进行,网上的资料也偏VB居多,而我们偏偏选择了CAA,使用C++开发
网上关于CAA的二次开发相关资料不多,但是CAA自带了很详细的说明文档,类库,和大量示例程序(虽然我至今也仍未跑成功过它的例子)
现在就准备将项目开发过程中一些认为比较重要的部分记录下来
在项目中,有一个很重要的功能,就是上传Catia文件
普通的上传文档并不困难,但关键在于Catia文件带有相链接的文档,比如CATProduct文件,所以需要在程序中自动找到Catia文件的相链接的文档
起初,在帮助文档中找到一篇关于RetrievingaProduct'sProperties的文章,其中介绍了如何打印一个文档的属性
首先它获得文档的根CATIProduct对象,然后获得它的所有孩子GetAllChildren(),这个方法将获得CATIProduct对象的所有孩子,并且不分层次
然后使用CATIAttributesDescription类来获得CATIProduct的属性名,最后通过CATIInstance对象获得属性名对应的属性值,从CATIProduct获得CATIAttributesDescription和CATIInstance对象的操作如下:CATIProduct*iInstanceProd;CATIAttributesDescription*piAttrDesc=NULL;iInstanceProd->QueryInterface(IID_CATIAttributesDescription,(void**)&piAttrDesc);CATIInstance*piInstance=NULL;rc=iInstanceProd->