点击查看详细介绍

NXOpen C++ 创建约束功能代码 精华帖

nxopen 7年前 2288 0

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


Part *workPart(theSession->Parts()->Work());
 Part *displayPart(theSession->Parts()->Display());
 //获得当前活的Arrangement
 Assemblies::Arrangement *arrangement1 = workPart->ComponentAssembly()->ActiveArrangement (); 
Positioning::ComponentPositioner * componentPositioner1 = workPart->ComponentAssembly()->Positioner();
 componentPositioner1->ClearNetwork();
 componentPositioner1->SetPrimaryArrangement(arrangement1); //设置主安排
 componentPositioner1->BeginAssemblyConstraints(); //开始装配约束
//bool allowInterpartPositioning1 = theSession->Preferences()->Assemblies()->InterpartPositioning();  //获取是否允许跨零件定位
Positioning::Network *network1 = componentPositioner1->EstablishNetwork();
 Positioning::ComponentNetwork *componentNetwork1(dynamic_cast<Positioning::ComponentNetwork *>(network1));
 Assemblies::Component *nullAssemblies_Component(NULL);
 componentNetwork1->SetDisplayComponent(nullAssemblies_Component);
 componentNetwork1->SetNetworkArrangementsMode(Positioning::ComponentNetwork::ArrangementsModeExisting); //设置安排模式 安排现有模式
 componentNetwork1->SetMoveObjectsState(true); //设置移动对象状态,在约束创建或编辑设置时,对象的显示位置立即更新

●●●请先 登陆注册 后查看●●●

Positioning::ConstraintReference
 * constraintReference1 = 
componentConstraint1->CreateConstraintReference(component1, 
geometryObject1, false, false, false);
 //Point3d helpPoint1(0.0, 0.0, 0.0);
 //constraintReference1->SetHelpPoint(helpPoint1); //设置帮助点
Positioning::ConstraintReference
 * constraintReference2 = 
componentConstraint1->CreateConstraintReference(component2, 
geometryObject2, false, false, false);
 //Point3d helpPoint2(0.0, 0.0, 0.0);
 //constraintReference2->SetHelpPoint(helpPoint2);
constraintReference2->SetFixHint(true);
componentNetwork1->Solve();
 componentPositioner1->ClearNetwork();
 componentPositioner1->DeleteNonPersistentConstraints();
Assemblies::Arrangement *nullAssemblies_Arrangement(NULL);
 componentPositioner1->SetPrimaryArrangement(nullAssemblies_Arrangement);
 componentPositioner1->EndAssemblyConstraints(); //终止装配约束


0

最新回复 (0)
请登录后发表新帖