NX二次开发,创建基准平面
目录
NX二次开发,创建基准平面
通过点与方向创建基准平面
//通过点与方向创建基准平面
NXObject* CreateDatumOlane(Point3d iPoint, Vector3d iVec, NXObject* iDatumPlane)
{
Session* theSession = Session::GetSession();
Part* workPart = theSession->Parts()->Work();
Features::DatumPlaneFeature* datumPlaneFeature1 = NULL;
if(iDatumPlane != NULL)
datumPlaneFeature1 = dynamic_cast<Features::DatumPlaneFeature*>(iDatumPlane );
Features::DatumPlaneBuilder* datumPlaneBuilder1 = workPart->Features()->CreateDatumPlaneBuilder(datumPlaneFeature1 );
Point* point1 = workPart->Points()->CreatePoint(iPoint);
Direction* direction1 = workPart->Directions()->CreateDirection(iPoint, iVec, SmartObject::UpdateOption::UpdateOptionWithinModeling);
datumPlaneBuilder1->SetPointAndDirection(point1, direction1);
NXObject* vObject = datumPlaneBuilder1->CommitFeature();
datumPlaneBuilder1->Destroy();
return vObject;
}
//通过面与偏置距离创建基准平面
NXObject* CreateDatumOlane(Face* iFace, double iDis, NXObject* iDatumPlane)
{
Session* theSession = Session::GetSession();
Part* workPart = theSession->Parts()->Work();
Features::DatumPlaneFeature* datumPlaneFeature1 = NULL;
if(iDatumPlane != NULL)
datumPlaneFeature1 = dynamic_cast<Features::DatumPlaneFeature*>(iDatumPlane );
Features::DatumPlaneBuilder* datumPlaneBuilder1 = workPart->Features()->CreateDatumPlaneBuilder(datumPlaneFeature1 );
Plane* plane1 = datumPlaneBuilder1->GetPlane();
plane1->SetUpdateOption(SmartObject::UpdateOptionWithinModeling);
plane1->SetMethod(PlaneTypes::MethodTypeDistance);//创建平面模式
//目标面
vector<NXObject*> geom1(1);
geom1[0] = iFace;
plane1->SetGeometry(geom1);
plane1->SetFlip(true);//方向反转
plane1->SetReverseSide(true);//平面反向
plane1->SetAlternate(PlaneTypes::AlternateTypeOne);
plane1->SetExpression("25");
plane1->Evaluate();
NXObject* vObject = datumPlaneBuilder1->CommitFeature();
datumPlaneBuilder1->Destroy();
return vObject;
}