环境:Win7 x64 , NX12
场景描述:
如上图所示:部件 _model1 ,_model2 都有组件 _model3 ,然后将 _model3 ->"在窗口中打开"。
然后求在窗口中打开父项中的值。
代码:
tag_t displayTag = UF_PART_ask_display_part();
tag_t* fathersID = NULL;
int count = UF_ASSEM_where_is_part_used(displayTag, &fathersID);
std::vector<std::pair<tag_t, std::string>> fathersIdName;
for (int i = 0; i < count; ++i)
{
tag_t tmpFather = fathersID[i];
char name[133] = { 0 };
UF_OBJ_ask_name(tmpFather, name);
fathersIdName.push_back(std::pair<tag_t, std::string>(tmpFather, std::string(name)));
}
UF_free(fathersID);
结果: fathersIdName的值如下图所示
这里父项顺序可能和所在部件打开顺序有关,如果部件打开顺序是_model1,_model2,则父项是_model2,_model1......
这个顺序和NX 显示父项的顺序不一样 !!!
限制条件:部件和组件必须都打开,如果只打开组件,无法获取父项!