Catia二次开发源码分享:获得几何图形集等节点
获得几何图形集等节点例 1:获得零件中的所有几何体的代码如下。
CATIPartRequest *pIPartRequest =NULL ;
HRESULT rc = spPart->QueryInterface(IID_CATIPartRequest,(void**)&pIPartRequest );
if ( SUCCEEDED(rc) )
{
CATLISTV(CATBaseUnknow_var) ListBodies;//所有几何体
CATUnicodeString ViewContext ="MfDefault3DView" ;
rc = pIPartRequest->GetSolidBodies(ViewContext,ListBodies);
}
例2:获得零件中的所有有序几何图形集的代码如下。
CATIDescendants_var spDescendantsOnPart = spPrtPart;
CATListValCATISpecObject_var spSpecOGSs;//所有有序几何图形集
piDescendantsOnPart->GetAllChildren("CATIMmiOrderedGeometricalSet", spSpecOGSs);
例3:获得零件几何体的代码如下。
CATBaseUnknow_var spMainBody;//零件几何体
pIPartRequest->GetMainBody(ViewContext,spMainBody);
例4:获得CATBody 的代码如下。
CATIBodyRequest *pIBodyRequest= NULL;
spMainBody ->QueryInterface(IID_CATIBodyRequest,(void**) &pIBodyRequest);
CATLISTV(CATBaseUnknown_var) ListResult ;
pIBodyRequest->GetResults("",ListResult);
CATIGeometricalElement * pIGeometricalElement = NULL ;
for (int i=1 ; i<= ListResult.Size(); i++)
{
CATBaseUnknown_var spResult = ListResult;
spResult->QueryInterface(IID_CATIGeometricalElement ,(void**) &pIGeometricalElement );
CATBody_var spBodyResult = pIGeometricalElement->GetBodyResult();
}
页:
[1]