如何获取几何图形集
CATIA二次开发 CAA开发
本文原作者:Luca Gutierrez,经授权后转发
几何图形集主要由厚度为零的元素组成,如点、线、曲线、曲面、线框,其也可以包含包络体。
几何图形集包括两种类型:
GS可以存在于Part节点、PartBody节点下,OGS只允许存在于Part节点下,此外,几何图形集允许嵌套。
获取零件下的几何图形集可以使用CATIDescendants接口
- 1CATIDescendants *pIDescendantsOnPart =NULL ;
- 2HRESULT rc = spSpecObjectOnPart->QueryInterface(IID_CATIDescendants,(void**)&pIDescendantsOnPart);
- 3if ( SUCCEEDED(rc) ){
- 4 CATLISTV(CATISpecObject_var) ListResult ;
- 5 rc = pIDescendantsOnPart ->GetDirectChildren("CATIMmiOrderedGeometricalSet",ListResult);
- 6}
使用CATIMmiOrderedGeometricalSet可以返回OGS,使用CATIMmiNonOrderedGeometricalSet可以返回GS, 使用CATIMmiGeometricalSet返回所有类型几何图形集(OGS+GS)。
如何创建几何图形集
CAA中可通过CATIMechanicalRootFactory接口中的CreateGeometricalSet方法创建几何图形集。
- 1CATDocument* pDoc = ...
- 2
- 3CATInit_var spInitOnDoc(pDoc);
- 4CATIPrtContainer *spPrtCont= (CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
- 5
- 6CATIMechanicalRootFactory*spMechRoot=NULL;
- 7rc = spPrtCont->QueryInterface(IID_CATIMechanicalRootFactory,(void**)& spMechRoot);
- 8
- 9CATISpecObject_var spPart=spPrtCont->GetPart();
- 10
- 11CATISpecObject_var spGeomFeat=NULL_var;
- 12spMechRoot->CreateGeometricalSet("TestGeometricalSet",spPart,spGeomFeat);
- 13spGeomFeat->Update();