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;
}