因为应用开发需要移植到3DE平台,所以又开始了新的征程。
在3DE平台上,因为使用中心数据库存储设计文档和安全原因,很多V5平台的特征及接口做了很大的
改变,给刚刚有点熟悉V5平台的我,很大的困扰。只有又开始昏天黑地的啃文档,摸索着解决。
搜索特征树是二次开发基础的操作之一,之前的博客已经写过遍历的方法,在3DE上,有些改变,这里
我重写了这个方法,希望对摸索中的朋友们有所帮助。
这个函数的输入参数是一个特征,可以是Part或Product的任意特征节点,遍历就从
这个特征开始。
函数会输出每个特征的名称,至于其它处理,可以根据需要添加。
void NavigateMechanicalPart(CATIMmiMechanicalFeature_var spObject)
{
CATIAlias_var as;
CATBaseUnknown_var base;
if (spObject!=NULL_var)
{
as=spObject;
cout<<as->GetAlias().ConvertToChar()<<endl;
CATINavigateObject_var piNavi=spObject->QueryInterface("CATINavigateObject");
if (piNavi!=NULL) {
CATListValCATBaseUnknown_var *childList;
childList=piNavi->GetChildren();
for (int i=1;i<=childList->Size();i++)
{
base=(*childList)[i];
NavigateMechanicalPart(base);
}
}
}
}