|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/ g% \! X' k+ J+ C$ `8 r% a
& I, N- g2 A, U0 j! W8 YUG NX二次开发旋转特征代码分享
' i+ }+ j- G: c7 Z& H" B/ e j; n' ^8 w' D, Y$ b9 ~- ?$ P! W8 w
如何使用NX二次开发进行旋转
2 ?0 e$ k% h q- M5 ~ J1 @" r( P
- void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
8 O8 X/ ^5 l9 z0 o' O! J - {
6 r! h, q/ ?' ?5 b* Q! W7 Z - Features::Feature *nullFeatures_Feature(NULL);& s+ o" R4 V6 t# M! [% @
- , D6 o& X' p. `3 H `
- Features::RevolveBuilder *revolveBuilder1;
3 K* _7 P; R& Q* U# \- U5 l# v1 U) ~ - revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
- @/ K) C( ^: k0 X: g7 a - revolveBuilder1->SetTolerance(0.001);
' H, q; ~! ~+ y- p - Section *section1;
2 ^) b' w4 c* _4 m; A3 q% q - section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
& z$ A" n t* E3 ~ - revolveBuilder1->SetSection(section1);
, p0 n* J& s( y( e$ @5 ? - std::vector<Features::Feature *> features1(1);) U! i# J( w0 a7 a6 d/ l' C
- features1[0] = sketch->Feature();
) ^! K: H- }7 H6 i - CurveFeatureRule *curveFeatureRule1;: h5 c% P/ g6 p) O! s+ W* T; z
- curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);9 N+ V- Z3 B! M |- ?
- std::vector<SelectionIntentRule *> rules1(1);
% w( c( d6 J$ Z3 j! [ - rules1[0] = curveFeatureRule1;
9 Y6 }! u6 }% o( E- \ - NXObject *nullNXObject(NULL);4 u3 S3 o) i, q
- Point3d helpPoint1(0, 0, 0);
3 f, {; {: q! [- J - section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
# N6 |" _* P6 A, s - revolveBuilder1->SetSection(section1); Q1 { c. P$ B
- // get UI value
) m0 p* o' p7 L. w+ R. B - vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");4 g+ |! E Y. Q
- Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
+ G; ~+ f; \5 d3 a - revolveBuilder1->SetAxis(axis1);$ M7 K- y; T7 @ Z9 t* J
- double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
$ ^% @) C- N9 Z4 Z$ w - double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");( H& a, f' H, m
- stringstream s_startValue,s_endValue;
! n% b+ _" R( d9 ]% Y- D( ] - s_startValue <<startValue;( x% s# J& s( L2 K' h
- s_endValue <<endValue;4 t1 o8 x0 s+ E0 W9 p5 J
- revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
/ H. ?& A8 W4 x ? - revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());
! `" V+ h$ p" ] L( s+ A3 ? - Features::Feature *feature1;* B& W" _4 O+ w' K, u
- feature1 = revolveBuilder1->CommitFeature();3 m& Z% I6 \/ `0 s9 k
- revolveBuilder1->Destroy();
% \+ h: k# |$ ?, Q4 A7 I7 D, h# b - section1->Destroy();
1 d# r) q) M( K' r - }
复制代码 * s/ c' D; z& j8 z; F3 S$ }
, M8 J1 l0 F. T
/ M% v/ C2 t) t# E |
|