#include <NXOpen/Features_AdmMoveFace.hxx>
NXOpen::Features::Feature* MoveFace(tag_t FaceTag/*移动的面*/, double moveValue/*移动的距离*/,double dir[3]/*移动的方向*/)
{
if (FaceTag == NULL_TAG)
{return NULL_TAG;}
Session* theSession = Session::GetSession();
Part* workPart(theSession->Parts()->Work());
Part* displayPart(theSession->Parts()->Display());
Features::AdmMoveFace* nullFeatures_AdmMoveFace(NULL);
Features::AdmMoveFaceBuilder* admMoveFaceBuilder1;
admMoveFaceBuilder1 = workPart->Features()->CreateAdmMoveFaceBuilder(nullFeatures_AdmMoveFace);
admMoveFaceBuilder1->FaceToMove()->SetRelationScope(511);
admMoveFaceBuilder1->Motion()->DistanceAngle()->OrientXpress()->SetAxisOption(GeometricUtilities::OrientXpressBuilder::AxisPassive);
admMoveFaceBuilder1->Motion()->DistanceAngle()->OrientXpress()->SetPlaneOption(GeometricUtilities::OrientXpressBuilder::PlanePassive);
admMoveFaceBuilder1->Motion()->OrientXpress()->SetAxisOption(GeometricUtilities::OrientXpressBuilder::AxisPassive);
admMoveFaceBuilder1->Motion()->OrientXpress()->SetPlaneOption(GeometricUtilities::OrientXpressBuilder::PlanePassive);
admMoveFaceBuilder1->Motion()->SetOption(GeometricUtilities::ModlMotion::OptionsDistanceAngle);
admMoveFaceBuilder1->Motion()->SetDeltaEnum(GeometricUtilities::ModlMotion::DeltaReferenceAcsWorkPart);
std::vector<Face*> faces1(1, dynamic_cast<Face*>(NXObjectManager::Get(FaceTag)));
FaceDumbRule* faceDumbRule1 = workPart->ScRuleFactory()->CreateRuleFaceDumb(faces1);
std::vector<SelectionIntentRule*> rules2(1, faceDumbRule1);
admMoveFaceBuilder1->FaceToMove()->FaceCollector()->ReplaceRules(rules2, false);
Axis* axis1;
Vector3d haha;
haha.X = dir[0];
haha.Y = dir[1];
haha.Z = dir[2];
axis1 = workPart->Axes()->CreateAxis(Point3d(0, 0, 0), haha, SmartObject::UpdateOptionWithinModeling);
admMoveFaceBuilder1->Motion()->DistanceAngle()->SetLinearAxis(axis1);
std::ostringstream oss;
oss << moveValue;
admMoveFaceBuilder1->Motion()->DistanceAngle()->Distance()->SetRightHandSide(oss.str());
NXObject* nXObject1;
NXOpen::Features::Feature* feat = admMoveFaceBuilder1->CommitFeature();
admMoveFaceBuilder1->Destroy();
return feat;
}
UG/NX二次开发,移动面
最新推荐文章于 2025-11-24 16:52:22 发布
364

被折叠的 条评论
为什么被折叠?



