1. 程式人生 > >CATIA CAA二次開發專題(九)---3DE平臺的特徵樹遍歷

CATIA CAA二次開發專題(九)---3DE平臺的特徵樹遍歷

因為應用開發需要移植到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);      }    }   } }