//抽取组件中的实体
vector<tag_t> GetInstanceBodies(tag_t compTag)//返回组件的全部实体
{
int nn = 0;
vector<tag_t> bodies;
tag_t tempOcc = 0;
if (compTag != NULL_TAG)
{
int type = 0, subType = 0;
UF_OBJ_ask_type_and_subtype(compTag, &type, &subType);
tag_t* instanceToOcc;
if (type == 68)
{
int nnn = UF_ASSEM_ask_part_occs_of_inst(compTag, &instanceToOcc);
if (nnn)
{
tempOcc = instanceToOcc[0];
}
else
{
//ccc::cecho::echo("没找到", nnn, NumLine);
}
}
else if (type == 63)//occ
{
tempOcc = compTag;
}
tag_t member = NULL_TAG;
UF_ASSEM_cycle_objs_in_comp(tempOcc, &member);
if (tempOcc == 0)
{
return bodies;
}
while (member != NULL_TAG)
{
int type = 0, subType = 0;
UF_OBJ_ask_type_and_subtype(member, &type, &subType);
if (type == 70 && subType == UF_solid_body_subtype)
{
nn++;
bodies.push_back(member);
}
else if (type == 63)
{
vector<tag_t> temp;
temp = GetInstanceBodies(member);
for (int i = 0; i < temp.size(); i++)
{
bodies.push_back(temp[i]);
}
}
UF_ASSEM_cycle_objs_in_comp(tempOcc, &member);
}
if ((int)bodies.size() == 0)
{
}
}
else
{
uc1601("参数为空", 1);
}
return bodies;
}
【UG\NX二次开发-UFUN函数】UF_ASSEM_cycle_objs_in_comp遍历组件中的成员(抽取组件中全部的实体)
最新推荐文章于 2024-05-29 09:27:36 发布