|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 @8 E- P) p" i+ T1 Y# V# z7 f; W- \2 p! G; j+ i. G! Q
UG NX二次开发旋转特征代码分享
7 `% x4 P9 W8 ?8 f! u) }+ I: J6 r9 G8 O
如何使用NX二次开发进行旋转% _0 ?$ y$ H, F `, {
; b. h- N" q+ L5 p) X( e
- void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
! L) y; i9 f: y9 Y: [- W+ B - {
6 Q8 O2 m) A. b& u6 R3 E - Features::Feature *nullFeatures_Feature(NULL);
, G5 H+ Z* l! f) E8 c - ; W0 I) d0 o2 Q
- Features::RevolveBuilder *revolveBuilder1;$ h1 n: M6 @0 v; G3 i& @
- revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
# k* L* ]9 V7 j9 a - revolveBuilder1->SetTolerance(0.001);+ k; m. f2 n4 {/ u0 [; i
- Section *section1;
4 O6 T' m, @$ V9 ^/ E) e" c& l0 B - section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
, U! ~( n, \' A" W9 Z0 d - revolveBuilder1->SetSection(section1);/ r" m5 q: J1 w( `
- std::vector<Features::Feature *> features1(1);
) [, x. c [7 y8 H7 s* ]/ } - features1[0] = sketch->Feature();3 j& U- F0 v. _4 P( Z1 l! I
- CurveFeatureRule *curveFeatureRule1;8 Y1 `6 X# R% r8 V
- curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);/ }# R# r$ F( p' w& p1 d, T
- std::vector<SelectionIntentRule *> rules1(1);
- v3 ^( N6 u o7 B& L6 k - rules1[0] = curveFeatureRule1;
7 e' M: H' O6 A - NXObject *nullNXObject(NULL);3 }7 t3 e* Q" w0 b, n! t( f
- Point3d helpPoint1(0, 0, 0);
9 y) c6 D: V7 n6 k - section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
4 c/ W# p4 D" ^) B' a3 o$ s; M) n4 ~ - revolveBuilder1->SetSection(section1);
3 y7 I& _6 \1 {" M1 | - // get UI value
6 W$ \+ W' I0 W3 K - vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
- s8 S' L. A& u6 @3 m8 R8 N - Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
3 s2 n1 z+ _6 U: f - revolveBuilder1->SetAxis(axis1);
) Y, R7 h! j2 ~8 i6 h; D' ^1 A& T - double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
. @5 z, i3 v3 W& | - double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");" v" Y) ]9 w; v- W+ B7 o
- stringstream s_startValue,s_endValue;$ e e+ ]2 O, Y+ M
- s_startValue <<startValue;( b5 u$ a {+ A" [+ H) R
- s_endValue <<endValue;
5 f) f' j9 I8 X% T' ` - revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
: @5 a" x2 ^ ]0 `2 L - revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());& N2 i3 w: \' r* X; t% o
- Features::Feature *feature1;
1 f" q" v3 u- c, n, o - feature1 = revolveBuilder1->CommitFeature();
/ d* C6 [: h7 Y8 l* j! `* B7 f - revolveBuilder1->Destroy();7 q; W* z4 k! |
- section1->Destroy();
! z# U- H4 K7 K- I6 s - }
复制代码
% }* T0 S2 W- Y1 f0 v1 R7 l; R: z: W: s- `3 S
/ O! w4 F- W b9 O. V+ e) z4 I
|
|