|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 g1 o- g1 o& _4 }3 D5 Q
5 c+ f- g5 U7 T6 V; H# kUG NX二次开发旋转特征代码分享
! x$ h( j4 _& `7 k+ k- W8 C D8 W9 j: Q: C
如何使用NX二次开发进行旋转
n5 @: d# j! E& M. x- u+ L6 j3 M- y* Q1 N2 a& e$ f
- void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
4 b5 t* j6 k. }1 b - {/ a# Z& K5 \1 H4 `' {1 @2 \
- Features::Feature *nullFeatures_Feature(NULL);9 n. p: \. t8 t( X
- % R) E8 c/ V- `. v4 X, V/ s
- Features::RevolveBuilder *revolveBuilder1;, R& ~( a2 B% g1 [
- revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
8 X* U F I% y9 e% H" i - revolveBuilder1->SetTolerance(0.001);
) S8 e- r4 ^ O - Section *section1;
- S$ N0 Q$ H) E- X - section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);7 P6 y% h% }: z$ s, k; }
- revolveBuilder1->SetSection(section1);
& ?5 p, j- K+ @: Y; b# P* H - std::vector<Features::Feature *> features1(1);3 f u! C" O7 X" l6 S
- features1[0] = sketch->Feature();4 o" U7 X9 f+ s0 F
- CurveFeatureRule *curveFeatureRule1;9 r- X! L9 ` H6 \# Q% \
- curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);0 g8 B; G, v, i1 J( ~) o2 W! l' v
- std::vector<SelectionIntentRule *> rules1(1);
' b6 R- ^! r/ Y( C! d% @ - rules1[0] = curveFeatureRule1;: P6 H0 i k5 c# m% G4 j
- NXObject *nullNXObject(NULL);
# m2 k7 D1 x: j# o1 e! J ` - Point3d helpPoint1(0, 0, 0);2 S D0 }+ _: [
- section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);$ r7 G& z1 @/ c$ Y2 p0 ?
- revolveBuilder1->SetSection(section1);
! ~; R+ m) ^, g! T - // get UI value& l/ C7 ^9 v9 H+ ^0 S# w9 s& Z8 u
- vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
! C- k6 @1 o( h2 k: P - Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);6 t7 l1 Z; p/ `' k
- revolveBuilder1->SetAxis(axis1); D- B9 A7 `; S% Q! _6 g
- double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");; |8 k1 k, Q1 o7 A' v5 x! K2 C
- double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
8 C0 {/ l- {3 |# u, n. ~1 @0 \# Z - stringstream s_startValue,s_endValue;+ \" c, N* Z. G3 E0 W: C# A
- s_startValue <<startValue;
6 n% U, _# ~( P! o- ? - s_endValue <<endValue;
" [# v' `* Y8 n - revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
1 \5 X& K1 I- Y8 ~; h - revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());" Z3 g H) i7 ^0 A
- Features::Feature *feature1;9 N& D ^/ o6 ?% {, B8 i2 O2 E: n V
- feature1 = revolveBuilder1->CommitFeature();$ [8 p+ @5 ?" G) s/ T
- revolveBuilder1->Destroy();
' t' W$ H& [: C3 ~6 I# [ - section1->Destroy();7 }% _" T7 f2 x$ D3 j$ ?- |3 a0 l
- }
复制代码 4 n% Y" f" L+ q
- P3 k5 y; c' C5 v0 S3 ~
r0 [8 I& c2 B |
|