Catia二次开发源码分享: 获得零件下所有节点
获得 CATIPrtPart
参考代码如下:
CATIPrtContainer_var spPrtContainer = spContainer;
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
获得零件下所有节点
方法一:利用 CATIDescendants 接口
CATIDescendants_var spDescendantsOnPart = spPrtPart;
CATListValCATISpecObject_var spSpecObjects;
piDescendantsOnPart->GetAllChildren("CATISpecObject", spSpecObjects);
方法二:利用CATContainer 中的ListMembersHere 方法
SEQUENCE(CATBaseUnknown_ptr) ListObj;
long NbObj = piRootContainer->ListMembersHere("CATISpecObject",ListObj);
for(int j=0;j<NbObj;j++)//注意从0 开始
{}
注意:"CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该
参数设置为相应的接口,例如"CATPoint"表示所有的点。
获得参考平面
参考平面包括 XY 平面、YZ 平面、ZX 平面,参考代码如下:
CATListValCATISpecObject_var spReferencePlanes;
spReferencePlanes = spPrtPart->GetReferencePlanes();
注意:spReferencePlanes 为包含三个元素的数组,数组元素依次为xy 平面, yz 平面和zx 平
面。
如果要使用 yz 平面,则参考代码如下:
CATISpecObject_var spyzPlane = spReferencePlanes;
获得轴系
参考代码如下:
CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var;
spPrtPart->QueryInterface(IID_ CATIMf3DAxisSystemManager,(void**)& spAxisSystem);
//得到的所有轴系
CATLISTV(CATIMf3DAxisSystem_var) oAxisSystemList;
spAxisSystem ->GetAxisSystems(oAxisSystemList);
页:
[1]