nx二次開發-判斷選擇的是裝配還是非裝配部件
阿新 • • 發佈:2020-12-19
環境:nx10.0+vs2103
//已經封裝成函式
/**
* @函式功能:判斷選擇的部件是裝配部件還是非裝配部件
* @輸入引數1:tmpIsOccBody: true為裝配
* @輸入引數2:tmpIsPartBody: true為非裝配
* @輸入引數3:selBodys: 選擇的部件
* @輸出引數:tmpIsOccBody tmpIsPartBody
*/
1 void Dev_TestShareLib::IsOccOrPartBody(bool &tmpIsOccBody, bool &tmpIsPartBody, std::vector<NXOpen::TaggedObject *> selBodys)2 { 3 for (int i = 0, length = (int)selBodys.size(); i < length; i++) 4 { 5 if (tmpIsOccBody != true || tmpIsPartBody != true) 6 { 7 NXOpen::Assemblies::Component *compBody = dynamic_cast<NXOpen::NXObject *>(NXOpen::NXObjectManager::Get(selBodys[i]->Tag()))->OwningComponent();8 9 if (NULL != compBody) 10 { 11 tmpIsOccBody = true;//選擇到裝配部件 12 uc1601("選擇到裝配部件", 1); 13 } 14 else 15 { 16 tmpIsPartBody = true;//選擇到非裝配部件(單個實體) 17 uc1601("選擇到非裝配部件(單個實體)", 1);18 } 19 } 20 else 21 { 22 break; 23 } 24 } 25 return; 26 }
//標頭檔案
1 #include <NXOpen/Assemblies_Component.hxx> 2 #include <NXOpen/NXObjectManager.hxx>
//執行程式碼
1 std::vector<NXOpen::TaggedObject *> selObjects = selection0->GetSelectedObjects(); 2 bool tmpIsOccBody = false; bool tmpIsPartBody = false; 3 IsOccOrPartBody(tmpIsOccBody, tmpIsPartBody, selObjects);