1. 程式人生 > 實用技巧 >nx二次開發-判斷選擇的是裝配還是非裝配部件

nx二次開發-判斷選擇的是裝配還是非裝配部件

環境: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);