caa开发学习5_几何体、有序几何图形集、几何图形集、零件几何体
(2016-09-27 15:17:41)| 分类: catia开发(caa) |
void GetObjectsInPart()
{
//1.获得Editor 【pEditor】
CATDocument *pDoc = pEditor->GetDocument();
if ( NULL ==pDoc )
{
return ;
}
//3.从doc中获取prt文件的初始化 【pDocAsInit】
CATInit *pDocAsInit = NULL ;
rc = pDoc->QueryInterface(IID_CATInit,
(void**)&pDocAsInit);
if ( FAILED(rc) )
{
return ;
}
CATIPrtContainer *pSpecContainer = NULL ;
pSpecContainer =
(CATIPrtContainer*)pDocAsInit->GetRootContainer("CATIPrtContainer");
if ( NULL == pSpecContainer )
{
return ;
}
pDocAsInit->Release();//内存释放
pDocAsInit = NULL ;
// 5.获取Part特征 【spPart】
CATIPrtPart_var spPart = pSpecContainer->GetPart();//
if ( NULL_var == spPart )
{
return ;
}
pSpecContainer->Release();
pSpecContainer = NULL ;
// 6.【IID_CATIDescendants】
CATIDescendants *pPartAsDescendants = 0;
rc = spPart->QueryInterface(IID_CATIDescendants,
(void**)&pPartAsDescendants) ;
if ( FAILED(rc) )
{
return ;
}
// 6.1【CATIMechanicalTool】几何体和零件几何体
CATLISTV(CATISpecObject_var) BodyListDesc;
pPartAsDescendants->GetAllChildren("CATIMechanicalTool",
BodyListDesc);//
// ShowObjects2(BodyListDesc);
// 6.2 有序几何图形集【CATIMmiOrderedGeometricalSet】
CATLISTV(CATISpecObject_var) OGSList;
pPartAsDescendants->GetAllChildren("CATIMmiOrderedGeometricalSet",OGSList);//
// ShowObjects2(OGSList);
// 6.3 几何图形集【CATIMmiNonOrderedGeometricalSet】
CATLISTV(CATISpecObject_var) GSList;
pPartAsDescendants->GetAllChildren("CATIMmiNonOrderedGeometricalSet",GSList);//
//ShowObjects2(GSList);
pPartAsDescendants->Release();
pPartAsDescendants = NULL ;
// 7.【IID_CATIPartRequest】
CATIPartRequest *pPartAsRequest = 0;
rc = spPart->QueryInterface(IID_CATIPartRequest,
(void**)&pPartAsRequest) ;
if ( FAILED(rc) )
{
return ;
}
const CATUnicodeString stdContext(" "); // Sets the context
for topo bodies lookup
// 7.1 【BodyList】几何体和零件几何体
CATLISTV(CATBaseUnknown_var) BodyList;
pPartAsRequest->GetSolidBodies(stdContext, BodyList);
ShowObjects(BodyList);
// 7.2 【SurfacicSetList】几何图形集
CATLISTV(CATBaseUnknown_var) SurfacicSetList;
pPartAsRequest->GetSurfBodies(stdContext,
SurfacicSetList);
// ShowObjects(SurfacicSetList);
pPartAsRequest->Release();
pPartAsRequest = NULL ;
}
void ShowObjects(const CATLISTV(CATBaseUnknown_var)
&iSet)
{
//AddinMultiList(aliasOnCurrentSet->GetAlias());
wchar_t charTmp[100] = {0};
istring.ConvertToWChar(charTmp);
//3.取出第curSetIdx个元素 【CurrentFeat】
//AddinMultiList(aliasOnCurFeat->GetAlias());
CATUnicodeString istring =
aliasOnCurFeat->GetAlias();
wchar_t charTmp[100] = {0};
istring.ConvertToWChar(charTmp);
MessageBox(NULL,charTmp,TEXT("元素"),MB_OK);
}else;
}
void ShowObjects2(const CATLISTV(CATISpecObject_var)
&iSetSpecObj)
{
}

加载中…