int pointToPointMove(vector<tag_t> objTags, Point3d startPoint, Point3d endPoint)
{
if (objTags.size() == 0) {
uc1601("传入的对象为空!", 1);
return 1;
}
try
{
Session* theSession = Session::GetSession();
Part* workPart(theSession->Parts()->Work());
Part* displayPart(theSession->Parts()->Display());
Features::MoveObject* nullFeatures_MoveObject(NULL);
Features::MoveObjectBuilder* moveObjectBuilder1;
moveObjectBuilder1 = workPart->BaseFeatures()->CreateMoveObjectBuilder(nullFeatures_MoveObject);
//点到点移动
moveObjectBuilder1->TransformMotion()->SetOption(GeometricUtilities::ModlMotion::OptionsPointToPoint);
for (int i = 0; i < objTags.size(); i++) {
NXObject* body1 = dynamic_cast<NXObject*>(NXOpen::NXObjectManager::Get(objTags[i]));
bool added1 = moveObjectBuilder1->ObjectToMoveObject()->Add(body1);
}
Point* point2;
point2 = workPart->Points()->CreatePoint(startPoint);
moveObjectBuilder1->TransformMotion()->SetFromPoint(point2);
Point* point6;
point6 = workPart->Points()->CreatePoint(endPoint);
moveObjectBuilder1->TransformMotion()->SetToPoint(point6);
NXObject* nXObject3;
nXObject3 = moveObjectBuilder1->Commit();
return 0;
}
catch (const std::exception&)
{
return 1;
}
}
UG\NX二次开发 NXOpen点到点移动多个对象
于 2024-05-12 16:50:43 首次发布