|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
" A# z# R9 r; ?+ W- T% t% h5 s1 R3 ?
7 Q( t: b5 i1 `0 g0 N+ N. _8 K& u: dUG NX二次开发旋转特征代码分享
4 w c) @6 ^4 I# X3 F3 J. z) ?9 a* ?& X) Z% l' A
如何使用NX二次开发进行旋转
6 a, l( y) b7 ~( y( m
z1 N' e( k9 V- w4 X& a& K2 ^- void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
8 p; K# d- P5 V - { m* [3 {& ~ r7 B% ]: Y
- Features::Feature *nullFeatures_Feature(NULL);
+ w3 b- ?& ?: U6 K, I - 5 z% C a5 ^0 e" G
- Features::RevolveBuilder *revolveBuilder1;7 a4 X+ D" I& N0 L0 R
- revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
: x+ v2 H% D7 u- V2 l _) u/ {& Q% x - revolveBuilder1->SetTolerance(0.001);
& C C- x1 r. B/ e2 |- J - Section *section1;' ^6 @0 x/ `' Y' n+ L3 Y
- section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);+ S3 ]$ x2 ~7 T' F" e2 P: p
- revolveBuilder1->SetSection(section1);( q0 y, _ J* ~, D9 d/ X
- std::vector<Features::Feature *> features1(1);
, h" H. ~9 U, x2 y% Z" [ - features1[0] = sketch->Feature();
+ N4 t! |4 ]3 _; H - CurveFeatureRule *curveFeatureRule1;1 e" n8 C7 [6 P# A) t/ ]& C/ B" K
- curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);
& z. x0 U+ Z9 ?) K. j8 f - std::vector<SelectionIntentRule *> rules1(1);
% r) _# \% X- F1 U0 J - rules1[0] = curveFeatureRule1;# L$ q6 n% K$ a/ g" z
- NXObject *nullNXObject(NULL);" k& b( f% ]/ K [7 p e5 k
- Point3d helpPoint1(0, 0, 0);
! X2 T$ \7 U* d. D! A! j b5 ^ - section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);0 h& r& j" v& Q8 J" t8 W9 b" O
- revolveBuilder1->SetSection(section1);7 a9 i# X; j! f8 K) Q+ O2 t) V
- // get UI value
) K2 L+ r( C- ]' ~ - vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
8 a! H- {% U" x$ u: p- q - Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);# L ~; h# H! B/ a
- revolveBuilder1->SetAxis(axis1);+ ~4 c; _* J& \. Z" N1 r! }
- double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");9 E' r1 l( J2 C* s$ v1 z/ p
- double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
; T$ G8 B" H8 m+ q6 y2 l - stringstream s_startValue,s_endValue;6 V* \- a& r# E# o
- s_startValue <<startValue;, i* N, e' g* ]) P$ o6 w+ R) }
- s_endValue <<endValue;( p& u4 W0 l, e y
- revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
" p4 \6 X2 b+ @- i9 X( @ - revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str()); W0 c# p) f: Z# t# R
- Features::Feature *feature1;
7 [4 {+ R9 H3 w% R" o! h2 Y/ y - feature1 = revolveBuilder1->CommitFeature();
% H4 L. _8 N5 N - revolveBuilder1->Destroy(); x" D+ F; d/ i! P* U8 W& L
- section1->Destroy();
) E: r4 U' o9 I3 U - }
复制代码
4 N; o0 a7 i( k/ D& r
" E7 i4 X \8 W* v6 x. w0 R- a* n- h; V. y0 }$ U; p" G3 E
|
|