CATIA零件文档的结构

2014-07-04 20:44:41|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++, CAA, CATIA|来源:唯设编程网

“Contents of Specification Container”这篇文章详细讨论了零件特征,几何特征集合和几何特征。

获取结构定义容器

有三种方法可以获取这个容器:

1).      使用在经历文档(Part Document)实现的CATIContainerOfDocument (MecModInterfaces)接口:

//...
  CATDocument * pDocument = ...  
  CATIContainerOfDocument * pIContainerOfDocumentOnDoc = NULL ;
  HRESULT rc = pDocument->QueryInterface(IID_CATIContainerOfDocument,
                              (void**)&pIContainerOfDocumentOnDoc)

  if (SUCCEEDED(rc) )
  {
      CATIContainer * pIContainer = NULL ;
      rc = pIContainerOfDocumentOnDoc->GetSpecContainer(pIContainer);
  }
 // ...

2).      使用被所有V5文档实现的CATInit (ObjectModelerBase)接口:

//...
  CATInit * pInitOnDoc = NULL ;
  HRESULT rc = pDocument->QueryInterface(IID_CATInit, (void**)&pInitOnDoc ) ;
  if ( SUCCEEDED(rc) )
  {
     CATIPrtContainer *pIPrtCont = NULL ;
     pIPrtCont = (CATIPrtContainer*)
                    pInitOnDoc->GetRootContainer("CATIPrtContainer");

  }
  //...

如果是一个零件文档,更容器是CATProtCont。

3).      使用所有特征上都实现了的CATISpecObject接口:

 

//...
  CATISpecObject * pSpecObjectOnFeat = NULL ;
  HRESULT rc = pMyFeat->QueryInterface(IID_CATISpecObject, (void**)&pSpecObjectOnFeat ) ;

  if ( SUCCEEDED(rc) )
  {
     CATIContainer_var spISpecCont = pSpecObjectOnFeat->GetFeatContainer();
  }

  //...

其中,pMyFeat是一个指向任意特征的指针,spISpecCont是一个CATPrtCont容器上的句柄。

作用域容器(Scope Container)

在设计期间,对一个边或者一个面进行选择是有必要的,比如创建一个形状。这些拓扑将会是一个机械特征的输入。但是一个特征不能够直接引用一个拓扑作为定义。主要原因是几何元素和拓扑结构可以在更新的时候被删除。因此,拓扑对象不稳定。在V5中为克服这个问题采用的方案是使用名字,而不是直接应用拓扑对象。这样的名字称之为通用名字(generic name)。它提供一种引用拓扑元素的稳定方式。

发表评论0条 】
网友评论(共?条评论)..
CATIA零件文档的结构