
//单个体创建镜像体tag_t Create_Mirror_Bodys(tag_t bodys, double dir[3], double Pt[3]){tag_t planetag NULL_TAG;std::vectortag_t mirrorBodys;if (!bodys) return NULL_TAG;UF_CALL(UF_MODL_create_fixed_dplane(Pt, dir, planetag));Session *theSession Session::GetSession(); Part *workPart(theSession-Parts()-Work()); Part *displayPart(theSession-Parts()-Display()); Features::Feature *nullFeatures_Feature(NULL); if (!workPart-Preferences()-Modeling()-GetHistoryMode()) { throw NXException::Create(Create or edit of a Feature was recorded in History Mode but playback is in History-Free Mode.); } Features::MirrorBodyBuilder *mirrorBodyBuilder1; mirrorBodyBuilder1 workPart-Features()-CreateMirrorBodyBuilder(nullFeatures_Feature); mirrorBodyBuilder1-SetAssociative(false); mirrorBodyBuilder1-SetCopyThreads(false); mirrorBodyBuilder1-SetFixAtCurrentTimestamp(true); Body *body1(dynamic_castBody *(NXObjectManager::Get(bodys))); bool added1; added1 mirrorBodyBuilder1-MirrorBodyList()-Add(body1); DatumPlane *datumPlane1(dynamic_castDatumPlane *(NXObjectManager::Get(planetag))); mirrorBodyBuilder1-Plane()-SetValue(datumPlane1); NXObject *nXObject1; nXObject1 mirrorBodyBuilder1-Commit(); std::vectorNXObject * objects1; objects1 mirrorBodyBuilder1-GetCommittedObjects(); mirrorBodyBuilder1-Destroy(); if (objects1.empty()) { objects1.push_back(nXObject1); } tag_t bodytag; UF_CALL(UF_MODL_ask_feat_body(objects1[0]-Tag(), bodytag)); mirrorBodys.push_back(bodytag); UF_OBJ_delete_object(planetag); return bodytag;}//多个体创建镜像体std::vectortag_t Create_Mirror_Bodys(std::vectortag_t bodys, double dir[3], double Pt[3]){tag_t planetag NULL_TAG;std::vectortag_t mirrorBodys;if (bodys.empty()) return mirrorBodys;UF_CALL(UF_MODL_create_fixed_dplane(Pt, dir, planetag));Session *theSession Session::GetSession(); Part *workPart(theSession-Parts()-Work()); Part *displayPart(theSession-Parts()-Display()); Features::Feature *nullFeatures_Feature(NULL); if (!workPart-Preferences()-Modeling()-GetHistoryMode()) { throw NXException::Create(Create or edit of a Feature was recorded in History Mode but playback is in History-Free Mode.); } Features::MirrorBodyBuilder *mirrorBodyBuilder1; mirrorBodyBuilder1 workPart-Features()-CreateMirrorBodyBuilder(nullFeatures_Feature); mirrorBodyBuilder1-SetAssociative(false); mirrorBodyBuilder1-SetCopyThreads(false); mirrorBodyBuilder1-SetFixAtCurrentTimestamp(true); for (int i 0; i bodys.size(); i) { Body *body1(dynamic_castBody *(NXObjectManager::Get(bodys[i]))); bool added1; added1 mirrorBodyBuilder1-MirrorBodyList()-Add(body1); } DatumPlane *datumPlane1(dynamic_castDatumPlane *(NXObjectManager::Get(planetag))); mirrorBodyBuilder1-Plane()-SetValue(datumPlane1); NXObject *nXObject1; nXObject1 mirrorBodyBuilder1-Commit(); std::vectorNXObject * objects1; objects1 mirrorBodyBuilder1-GetCommittedObjects(); mirrorBodyBuilder1-Destroy(); if (objects1.empty()) { objects1.push_back(nXObject1); } for (int i 0; i objects1.size(); i) { tag_t bodytag; UF_CALL(UF_MODL_ask_feat_body(objects1[i]-Tag(), bodytag)); mirrorBodys.push_back(bodytag); } UF_OBJ_delete_object(planetag); return mirrorBodys;}