//求干涉体
void interFerencel(vector<TaggedObject*>target, vector<TaggedObject*>tool)
{
Session* theSession = Session::GetSession();
Part* workPart(theSession->Parts()->Work());
Part* displayPart(theSession->Parts()->Display());
GeometricAnalysis::SimpleInterference* simpleInterference1;
simpleInterference1 = workPart->AnalysisManager()->CreateSimpleInterferenceObject();
simpleInterference1->SetInterferenceType(GeometricAnalysis::SimpleInterference::InterferenceMethodInterferenceSolid);
simpleInterference1->SetFaceInterferenceType(GeometricAnalysis::SimpleInterference::FaceInterferenceMethodFirstPairOnly);
Body* body1(dynamic_cast<Body*>(target[0]));
simpleInterference1->FirstBody()->SetValue(body1);
Body* body2(dynamic_cast<Body*>(tool[0]));
simpleInterference1->SecondBody()->SetValue(body2);
GeometricAnalysis::SimpleInterference::Result result1;
result1 = simpleInterference1->PerformCheck();
std::vector< NXOpen::NXObject* > nXObject1;
simpleInterference1->Commit();
nXObject1 = simpleInterference1->GetCommittedObjects();
simpleInterference1->Destroy();
//找到干涉体
interFerencelBody = NULL_TAG;
tag_t UFworkPart = UF_ASSEM_ask_work_part();
tag_t tempFeat = NULL_TAG;
UF_MODL_ask_current_feature(UFworkPart, &tempFeat);
UF_MODL_ask_feat_body(tempFeat, &interFerencelBody);
}
【UG\NX二次开发】NXOpen 简单干涉 求干涉体 (SimpleInterference)
于 2023-11-09 21:21:55 首次发布