购买与咨询 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(); //终止装配约束