|
|
秋爱
发表于 2015-8-15 09:15:43
|阅读模式
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
# ~: g% U" m+ _; _void selectedge::initialize_cb()
! U* ~- |- @* P u; W: l/ @. Q{7 w2 B, I4 b# Y- _( A+ d
try
4 y) M; T6 J& U" i. I {
# i5 w0 S4 Y9 J/ E4 V c O# L5 O5 w group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
+ B: w9 F& p* i, R3 m( v) P. M8 R+ G edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()- >FindBlock("edge_select0"));
- k: `- q" t' t expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()- >FindBlock("expression0"));}
" A' F9 U1 K8 E caTCh(exception& ex)0 A1 A& Y3 R; C, l. \/ E
{9 m" I' C8 q: T) u: Q
//---- Enter your exception handling code here -----: g3 q0 W& N7 t5 @1 h
selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
6 H1 I* E; K& E3 U1 } }
i' X8 m, T% `& B( h+ d}; Z+ c/ I6 x$ g
1 d5 |2 p, j9 v' N& h6 g
int selectedge::apply_cb()0 L& d5 |3 b% A# O; \' a
{* x7 ?1 i, N4 m
int errorCode = 0;
, K: f( q. ?# ~; }7 k try
3 @. ~! m! ?& z6 P: ` {' j3 e3 B. p w+ Y" l [) F" s
//---- Enter your callback code here -----( @% T$ [; b% X2 v
# q! w1 @) @2 }; W
$ R/ `$ x' |) g$ Y, G% [" j" h4 P4 N
, }2 a5 h8 E( H Session *theSession = Session::GetSession();
) C+ j1 Z9 n/ [" A' W Part *workPart(theSession->Parts()->Work());
1 z+ |" b- ?# d w/ l, D+ y Part *displayPart(theSession->Parts()->Display());
q7 R M' r1 g' d: w! d0 q3 g9 ]8 | i- V
+ U" G: J2 f k7 f) F9 Y$ c& l Features::Feature *nullFeatures_Feature(NULL);# U6 [' u! `& h1 N, k
Features::EdgeBlendBuilder *edgeBlendBuilder1;6 X* ^3 ?9 Z5 A N3 z
edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
2 r+ M5 U4 M# Y* M; n1 }' X. a9 \# r# W: _
: x5 `6 O8 X! F6 }( a1 a
ScCollector *scCollector1;
1 X8 u% D& T3 a9 R. } scCollector1 = workPart->ScCollectors()->CreateCollector();; R/ c& p7 I5 p# P+ c
4 m W3 ^5 g. B
& P I6 @9 t% R4 ^1 C std::vector<Edge *> seedEdges;) m Y3 S2 ~' O$ x/ {7 [9 _
0 H; S6 R. s! Q" `
std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects(); //获取选择的对象/ \) W- ~) Q, X4 Z
for (int i=0;i<selectob.size();i++)
* i. T8 a5 S4 _2 s: i0 B' } {
2 a( F% n0 S0 {: e seedEdges.push_back(dynamic_cast<Edge*>(selectob));
9 {: a: p1 [. o+ J( G, A/ p }
8 n* R, W3 K, _6 P1 c4 X/ o% S$ ]4 ~
! E3 y, h9 G# ^, l; G double dia = expression0->Value(); //获取表达式的值' W( E2 _+ U) ]# W
stringstream DIA;
, g* f9 V j5 H DIA << dia;' C( s( _6 ^+ d$ Y6 r% W
+ N" m* `6 R' @4 }/ B% ?0 G, A1 H; {5 a; v
EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;4 \& o+ g% n3 Z$ B7 z
edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);; C/ h, n1 L& G1 r3 c
5 K+ f3 E4 R b& ]. _2 L
: y, m' J1 j d* |7 F, A7 M std::vector<SelectionIntentRule *> rules1(1);; H( i+ w) H& c. g; P' ]# j$ S
rules1[0] = edgeMultipleSeedTangentRule1;6 f R2 \3 w8 m# O( ~+ S P
scCollector1->ReplaceRules(rules1, false);
$ T; x4 {5 S, k$ @- I% m9 s% i' q% Z G! Q4 i
; G8 F/ d/ ` u! Y edgeBlendBuilder1->SetTolerance(0.001);2 @9 g% Z$ R* l+ W$ d P
# o0 r& x: Z. R+ Y! V3 g
- V$ g* o5 V3 @ edgeBlendBuilder1->SetAllInstancesOption(false);" S k1 q# M/ a5 S2 t
/ c# |6 W" K% n4 f# K2 i* g/ M) X2 u, H8 i3 N5 u7 m2 r. u1 ?
edgeBlendBuilder1->SetRemoveSelfIntersection(true);
* X# d5 V6 d6 P1 U: s% w
* j& k: _& ?6 M. p. I8 O- F! T- ?
8 m' c8 y, k' C3 I B Z. k# B8 J edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);4 a4 I+ D- l$ n* m6 ^; @, k, l
- E/ I7 C: E+ s# {% ?
* @7 U* h7 E/ O) `0 O) J9 A edgeBlendBuilder1->SetLimitFailingAreas(true);
: }, a" \! }9 Z( p- m. y. _% R, g! D9 y& b+ _) h5 o
4 U, \6 v& u' e# T
edgeBlendBuilder1->SetConvexConcaveY(false);
3 _' x: R8 P: ^8 Y( I4 k* h/ t/ v# F7 ]+ a; V4 s* n/ M
: T$ ~, `; l4 f& _ edgeBlendBuilder1->SetRollOverSmoothEdge(true);# C/ `9 h, W O: c1 F9 o
' d) D: C" m- I1 }; M" u
7 M, i7 J7 S* b. m2 X edgeBlendBuilder1->SetRollOntoEdge(true);7 q+ k" j' D. U
# X" V0 J% S/ A" y5 O( n' E- N, a4 I4 N* o& u* {
edgeBlendBuilder1->SetMoveSharpEdge(true);
6 ?# [# P5 T4 b
- J# {! k8 `% }5 i1 d
! p3 _1 g* L, S" F+ x- m edgeBlendBuilder1->SetTrimmingOption(false);, K: B) J' }, M1 L+ X `
; b( C# I" ^7 s
7 C! S: u# f T$ L; i- s edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
9 }+ m% Y' C. |8 p9 }5 O- \2 V _' ?
. d$ h. V+ I; N1 H$ ?5 A! P edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);
S1 ~- s( w1 Q; w8 | \: n) V. C# h4 j0 @$ l J$ ?
) u- a5 W+ E- s( T
edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
' x0 j5 l: D7 k! l w& s% s
1 s3 Y+ i1 O( F3 V! `: p7 m# x' _/ c
int csIndex1;' P9 v7 r- \5 J& b9 M
csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());
& ~! W% W7 f- l# r" \5 A
& {0 m: B: z; g- G
! e3 t v" m, c/ R" ]) a Features::Feature *feature1;3 g. W4 c5 C" E9 A
feature1 = edgeBlendBuilder1->CommitFeature();! G+ m8 f) o, \1 j0 {
" F) u- U# d4 [2 z
; ]4 Z( J* n! l2 C$ k' X! \+ D edgeBlendBuilder1->Destroy();
) r8 U# ~' c. k1 j$ `' d! G) ~/ U6 d8 N( u+ |4 l G
}9 Y* q" H1 z8 i: @3 L N; M3 U# Q
catch(exception& ex)
( x; i% K0 W5 W& N+ F) S2 J2 Z$ \$ O {3 i5 t, k& A$ g
//---- Enter your exception handling code here -----
+ `+ {6 K; q; Z. j Y/ l" m errorCode = 1;
! S7 e5 G* `) J/ t selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
* p3 \" u/ w% i4 m4 F* e }
! x- ^2 d) r" g J T) i* F return errorCode;
9 g, n1 |: L- t}
* A5 C- K! ?& i4 Q4 p+ u* F1 l. X! v3 i7 ?" l
说明:因为字数有限制,这里只贴出关键代码。7 { l8 l$ ^2 ~' \* m9 }# v1 L1 C
3 R8 h. t+ a5 O! K s* Q
4 n: L- U. ]8 B/ U
) F- v3 D$ b I( y8 D8 y& B) y- j |
-
评分
-
查看全部评分
|