NX/UG二次开发:NX的方式获取一组vector中最大体积的实体
//测量实体体积boolMeasureBody(tag_t body,doublebodyVolume){UF_UNDO_mark_id_t mark_id;try{UF_UNDO_set_mark(UF_UNDO_visible,NULL,mark_id);Session*theSessionSession::GetSession();Part*workPart(theSession-Parts()-Work());NXObject*nullNXObject(NULL);MeasureBodyBuilder*measureBodyBuilder1;measureBodyBuilder1workPart-MeasureManager()-CreateMeasureBodyBuilder(nullNXObject);std::vectorIBody*bodies1;Body*body1(dynamic_castBody*(NXObjectManager::Get(body)));bodies1.emplace_back(body1);std::vectorUnit*unit_vec;Unit*unit1(dynamic_castUnit*(workPart-UnitCollection()-FindObject(UF_UNIT_VOLUME_mm3)));unit_vec.emplace_back(unit1);MeasureBodies*measurebodys1workPart-MeasureManager()-NewMassProperties(unit_vec,0.5,bodies1);bodyVolumemeasurebodys1-Volume();returntrue;}catch(conststd::exception){UF_UNDO_undo_to_mark(mark_id,NULL);returnfalse;}}//测量一组体找出最大体积的体tag_tMeasureBodysGetMax(vectortag_tvBodys){doubleMaxVolumNULL;//最大体积tag_t MaxVloumTagNULL_TAG;//最大体积的Tagfor(size_t i0;ivBodys.size();i){//当前对象体积doubleBodyVolumNULL;MeasureBody(vBodys[i],BodyVolum);if(BodyVolumMaxVolum){MaxVolumBodyVolum;MaxVloumTagvBodys[i];}}returnMaxVloumTag;}