如何获取CATIPrtContainer
CATIA二次开发 CAA开发
本文原作者:Luca Gutierrez,经授权后转发
如何获取CATIPrtContainer
Specification Container有时又可称为Mechanical Container,其接口为CATIPrtContainer。Specification Container包含机械对象的设计,该设计由可以在结构树中显示的机械特征定义,如下图所示,其中Part特征是产品结构树中的最高节点,其直接或间接的聚合其他所有的机械特征。
获取Specification Container有以下三种方法:
- 使用CATIContainerOfDocument接口
- 使用CATInit接口
- 使用CATISpecObject接口
使用CATIContainerOfDocument接口
- 1CATDocument* pDocument = ...
- 2CATIContainerOfDocument* pIContainerOfDocumentOnDoc = NULL ;
- 3HRESULT rc = pDocument->QueryInterface(IID_CATIContainerOfDocument,(void**)&pIContainerOfDocumentOnDoc);
- 4if (SUCCEEDED(rc) ){
- 5 CATIContainer * piPrtContainer = NULL ;
- 6 rc = pIContainerOfDocumentOnDoc->GetSpecContainer(piPrtContanier);
- 7 }
使用CATInit接口
- 1CATInit* pInitOnDoc = NULL ;
- 2HRESULT rc = pDocument->QueryInterface(IID_CATInit, (void**)&pInitOnDoc );
- 3if ( SUCCEEDED(rc) ){
- 4 CATIPrtContainer* piPrtContainer = NULL ;
- 5 piPrtContainer = (CATIPrtContainer*) pInitOnDoc->GetRootContainer("CATIPrtContainer");
- 6 }
使用CATISpecObject接口
- 1CATISpecObject* pSpecObjectOnFeat = NULL ;
- 2HRESULT rc = pMyFeat->QueryInterface(IID_CATISpecObject, (void**)&pSpecObjectOnFeat);
- 3if ( SUCCEEDED(rc) ){
- 4 CATIContainer_var spPrtContainer = pSpecObjectOnFeat->GetFeatContainer();
- 5 }