iCAx开思网

标题: 已知一个specObject,求其所在的CATIProduct,如何区分同一零件不同实例? [打印本页]

作者: southillmoon    时间: 2006-12-10 22:26
标题: 已知一个specObject,求其所在的CATIProduct,如何区分同一零件不同实例?
下面这段代码可以得到        _piSpecOnAxis1所在的零件实例 CATIProduct:

   CATIContainer_var spISpecContFst = _piSpecOnAxis1->GetFeatContainer();
          
           CATIPrtContainer_var piPartContainerFst(spISpecContFst);
          
           CATIPrtPart_var spPartFst=piPartContainerFst->GetPart();
           CATIProduct_var piInstancePrt1=spPartFst->GetProduct();

但是当2个实例为同一零件的不同实例时,无法得到正确的CATIProduct。
不知道大侠们有何高见?
作者: southillmoon    时间: 2006-12-14 22:17
汗一个,咋没人回我的帖子呢?
作者: hick    时间: 2006-12-15 11:38
偶没看明白
作者: southillmoon    时间: 2006-12-15 23:01
hick没看明白?
比如装配的时候,我选一个轴,我要通过这个轴找到其所在的零件。
但是这个零件有2个实例。
那我这个代码就不能准确的知道这个轴是在哪个实例上。好像总是会得到结构树上的第一个实例。
作者: xyzhu    时间: 2006-12-18 17:05
如果_piSpecOnAxis1是从CATFeatureImportAgent得到的, 当然就没问题;
如果_piSpecOnAxis1是从CATIA里比如通过寻找得到的,你必须自己用CATPathElement记住路径,反正你总德从RootProduct开始向下寻找.
如过_piSpecOnAxis1是直接从CATPart-Document得到的, 那就没办法了.

相信CATIA内部有更好的办法,比如CATFeatureImportAgent是怎么得到正确路径的?有没后那位高手知道?
作者: southillmoon    时间: 2006-12-19 22:23
_piSpecOnAxis1就是通过CATFeatureImportAgent,经过鼠标选择得到的,同样有问题的。
作者: xyzhu    时间: 2006-12-20 16:17
CATPathElementAgent::GetValue()应该给出所有路径




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3