|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, n0 q% p+ ^, w2 q" G
' P& c9 D% U4 {8 g* o: G
UG NX二次开发旋转特征代码分享4 p1 ]7 c; C6 q) k
7 }2 ^( {9 l! A8 V" S1 Y
如何使用NX二次开发进行旋转
5 c+ r* F( ?4 O; {$ P/ u6 ~) k
% ?, d6 t: @" {- W- void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
+ J+ T. x: v0 y I" c - { O3 P3 K, ~- a! x( o2 F* l& b
- Features::Feature *nullFeatures_Feature(NULL);
( Y, \; l6 V) w$ x, S) v9 x
! j/ C: {# X- x4 T/ J' `, J- Features::RevolveBuilder *revolveBuilder1;
. v# ]) A6 d8 Z5 E - revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);$ h6 t. A8 x8 E4 d- G- ^
- revolveBuilder1->SetTolerance(0.001);
* u: M, h, Z1 s - Section *section1;
) b0 f9 h) x' D: J - section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);2 d+ O: V% n! Q2 m: x+ l& ^7 d) ^
- revolveBuilder1->SetSection(section1);
4 ]0 o2 F# n5 N1 h - std::vector<Features::Feature *> features1(1);8 ^; Z' F+ N! y4 ~0 r7 ^4 X
- features1[0] = sketch->Feature();
! r6 L6 V |; m4 }! \ - CurveFeatureRule *curveFeatureRule1;' i: N% r) f' r; l/ A8 P
- curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);+ O. C! H5 ~* G% `2 C$ k9 o" b
- std::vector<SelectionIntentRule *> rules1(1);" O6 @+ f( G9 o
- rules1[0] = curveFeatureRule1;
! r, i* t: H) g ?% c - NXObject *nullNXObject(NULL);6 I- R, \! o& n- r8 e. y+ P
- Point3d helpPoint1(0, 0, 0);
' U' i' Y, m/ p1 y! |5 F i - section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
' K$ O1 x1 T; B: ?# e* s - revolveBuilder1->SetSection(section1);+ g A% s0 T7 E% B. _
- // get UI value4 F. D$ Q2 J6 |, N& R/ D$ Z' l
- vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");7 v j1 D* X2 r( g
- Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);& ?7 z9 U1 N6 v4 y
- revolveBuilder1->SetAxis(axis1);
- E- ~$ {% I& ? - double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
G$ [2 }* H- s: H - double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
: a* S3 G5 K% F% y: S7 v! Y - stringstream s_startValue,s_endValue;
+ M' I }' |" b+ x* J* C: X - s_startValue <<startValue;1 R( k; O, g6 c/ J9 N5 ~
- s_endValue <<endValue;& s- q, X6 ]! x( J7 Z; d h
- revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
" T! _' C& C' h3 a% d - revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str()); _/ s/ f) Z# P+ C* Y& ?8 m B
- Features::Feature *feature1;1 A& B) ?4 T# |( o: [/ a9 C. k/ |7 V
- feature1 = revolveBuilder1->CommitFeature();( c: s$ ?8 }0 w+ Y! \
- revolveBuilder1->Destroy();3 |: @4 y. n6 D7 W$ X& s7 l
- section1->Destroy();: z# w& r4 B- Y$ @7 [' X& B
- }
复制代码 6 D- p8 R# f1 P
1 j" q# w- |' E* ` A
. ^; o. h3 ^# J8 n |
|