点击查看详细介绍

NXOpen创建中心约束(2对2)函数,可直接传入参数创建约束

nxopen 7年前 2173 1

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


//创建中心约束(2对2)
int ConstraintCreate_UGAPI_COM::ConstraintCreateAPI::Create_center22_contraint(tag_t objectTags[4], bool fixHits[4], Point3d helpPoint[4], tag_p_t constraintTag)
{
tag_t compTag = NULL_TAG;
logical isOcc = NULL_TAG;

*constraintTag = NULL_TAG;

Session *theSession = Session::GetSession();
Part *workPart(theSession->Parts()->Work());
Part *displayPart(theSession->Parts()->Display());

Positioning::ComponentPositioner *componentPositioner1;
componentPositioner1 = workPart->ComponentAssembly()->Positioner();

componentPositioner1->ClearNetwork();
componentPositioner1->BeginAssemblyConstraints();

bool allowInterpartPositioning1;
allowInterpartPositioning1 = theSession->Preferences()->Assemblies()->InterpartPositioning();

Positioning::Network *network1;
network1 = componentPositioner1->EstablishNetwork();

Positioning::ComponentNetwork *componentNetwork1(dynamic_cast<Positioning::ComponentNetwork *>(network1));
componentNetwork1->SetMoveObjectsState(true);

Assemblies::Component *nullAssemblies_Component(NULL);
componentNetwork1->SetDisplayComponent(nullAssemblies_Component);

componentNetwork1->SetNetworkArrangementsMode(Positioning::ComponentNetwork::ArrangementsModeExisting);

Positioning::Constraint *constraint1;
constraint1 = componentPositioner1->CreateConstraint();

Positioning::ComponentConstraint *componentConstraint1(dynamic_cast<Positioning::ComponentConstraint *>(constraint1));
componentConstraint1->SetConstraintType(Positioning::Constraint::TypeCenter22);

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

componentConstraint1->ReverseDirection();

componentNetwork1->Solve();
componentNetwork1->ResetDisplay();
componentNetwork1->ApplyToModel();
theSession->UpdateManager()->AddToDeleteList(componentNetwork1);
componentPositioner1->ClearNetwork();
componentPositioner1->DeleteNonPersistentConstraints();
Assemblies::Arrangement *nullAssemblies_Arrangement(NULL);
componentPositioner1->SetPrimaryArrangement(nullAssemblies_Arrangement);
componentPositioner1->EndAssemblyConstraints();

//获取约束标识符
*constraintTag = componentConstraint1->GetTag();
return (0);


}

0

最新回复 (1)
  • qq14945133 5年前
    1

    6666666666666666

请登录后发表新帖