/*获取选择的面的面积*/
double GetFaceArea(tag_t t_Face)
{
Session* theSession = Session::GetSession();
Part* workPart(theSession->Parts()->Work());
Part* displayPart(theSession->Parts()->Display());
Face* face = dynamic_cast<Face*>(NXObjectManager::Get(t_Face));
NXOpen::MeasureFaces* measureFaces1;
std::vector<NXOpen::IParameterizedSurface*> faceArea(1, face);
NXOpen::UnitCollection* uniCol = workPart->UnitCollection();
NXOpen::Unit* unit1 = *uniCol->end();
measureFaces1 = workPart->MeasureManager()->NewFaceProperties(unit1, unit1, 0.2, faceArea);
double dis = measureFaces1->Area();
return dis;
}
/*获取体上所有面的总面积*/
double GetBodyAllFaceArea(tag_t bodyTag)
{
uf_list_p_t face_list;
UF_MODL_ask_body_faces(bodyTag, &face_list);
int face_count = 0;
UF_MODL_ask_list_count(face_list, &face_count);
double all_Area = 0.0;
for (int i = 0; i < face_count; ++i)
{
tag_t tmpface;
UF_MODL_ask_list_item(face_list, i, &tmpface);
all_Area += GetFaceArea(tmpface);
}
return all_Area;
}
【UG\NX二次开发】获取体上所有面的总面积
于 2023-11-09 15:23:19 首次发布