getOccBody(tag_t compTag)
{
int nn = 0;
vector<tag_t> bodies;
tag_t tempOcc;
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);
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 = getOccBody(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)
{
//ccc::cecho::echo("数量为", (int)bodies.size(), NumLine);
}
}
else
{
uc1601("参数为空", 1);
}
return bodies;
}