|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- d4 X- j% l4 d8 X+ C& Y. C: l$ k% r) \! C2 S/ u5 `% v
UG NX二次开发旋转特征代码分享
5 S6 [2 b9 }4 C1 k4 O, j) H* G/ _* q0 g7 _
如何使用NX二次开发进行旋转. Z# ]) s6 ?3 `5 ]6 Q
' z! Q: E5 Y8 w" O/ J1 v- void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
. B, c) X4 l6 z& I( ~ - {
/ F$ Y. ^- m) |4 U- r2 q - Features::Feature *nullFeatures_Feature(NULL);/ \+ o# K5 J) ^+ ^9 h0 k6 b
- + Q/ K* [- G- }" d5 G E# q
- Features::RevolveBuilder *revolveBuilder1;
5 P# m8 H/ ~% e4 o7 Q3 h% ~ - revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
1 g2 S9 i* G% ?# R - revolveBuilder1->SetTolerance(0.001);) s* i4 H a, t6 @
- Section *section1;
7 d: e' ^! ]" A$ Z3 X - section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);" I, z- H) t; M# Y* h! c0 Q! K
- revolveBuilder1->SetSection(section1);
z8 u% D/ o+ K, t0 A - std::vector<Features::Feature *> features1(1);) @/ n2 q* H* K P- r
- features1[0] = sketch->Feature();
7 X$ N$ G# j3 z# e9 _3 F - CurveFeatureRule *curveFeatureRule1;
3 @* Y8 a& w4 `# C6 k - curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);$ ?3 Z2 G2 T" ~
- std::vector<SelectionIntentRule *> rules1(1);8 X3 z3 B8 y: U1 T# g
- rules1[0] = curveFeatureRule1;
: X" S6 M& M8 F7 V# U - NXObject *nullNXObject(NULL);5 K2 D0 B2 c' ?- K/ F) [
- Point3d helpPoint1(0, 0, 0);% I/ O# I5 z2 l) a
- section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);7 I" }# F! K! Q
- revolveBuilder1->SetSection(section1);
" q+ g9 |8 Z4 Q7 F2 ^' d - // get UI value
0 C" C7 Y- Z$ r9 E. H - vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
: W @2 h0 z7 `/ ] - Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);: ?" E- I) ^, B& L0 P5 U
- revolveBuilder1->SetAxis(axis1);
, N$ u5 X/ l, }; y8 [ - double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");# c9 ^1 v; D: x" C3 T* M
- double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");0 ?. w, c, x0 t# H( \+ f
- stringstream s_startValue,s_endValue;" L, l& ~, T8 y' ]7 ?- Y. J1 ~
- s_startValue <<startValue;
* `( X' o5 N1 C, E - s_endValue <<endValue;7 s# }* Z3 u) A+ @2 m8 ~
- revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());* e; D& [8 L# k2 k
- revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());+ l3 i; @( a1 Y& K. @' n$ V3 S W4 {
- Features::Feature *feature1;$ R( x: `2 P* h5 w& m7 B
- feature1 = revolveBuilder1->CommitFeature();
; [8 @/ g; h! c& { - revolveBuilder1->Destroy();
8 D# O; }$ q7 f5 s( e2 a0 }& a - section1->Destroy();
# c# z0 q8 C9 w4 }" p# [ p: r/ o - }
复制代码
i, v9 N2 \; _) _% v
1 h/ F. @* B1 F" G' {4 ]' R) G: V* n& M
|
|