|
|
秋爱
发表于 2015-8-15 09:15:43
|阅读模式
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& [4 P" i8 A u- ?' v! D
void selectedge::initialize_cb()
0 P" ]; _6 G1 U0 b: n{
9 T. x0 \* \/ a9 |8 V/ `1 O% V try
0 u* T+ `5 k* f9 L2 i {
% B: ?( k* d) d8 `" L5 z+ D group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
% Q7 ?+ i: v: k/ b! L; ]+ G edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()- >FindBlock("edge_select0"));
& ]/ M! F% `$ ^/ c, j: W7 G expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()- >FindBlock("expression0"));}) L+ u* R5 J6 G; V, p5 y" X* C
caTCh(exception& ex)
' b% G1 Z6 W2 A+ s {" n7 I& x; s. y
//---- Enter your exception handling code here -----
! c; }+ O% T# P( w, Q3 Y selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
( F1 E$ n* H" c* J9 W }
' Z" e! W/ h9 a m( }8 q( ^) n}; j; q/ i1 w3 d9 f; @
! U9 m, ~, ~* P6 t) K6 k* B
int selectedge::apply_cb(). Q* G2 Y9 A1 p5 K3 D( H
{' _: d: D+ S1 n( u8 Y* c
int errorCode = 0;
( u7 M( s% o" v) \ try
9 _1 U/ v7 V9 d { ^9 |( p" I) G6 W, {$ z: a
//---- Enter your callback code here -----
9 W4 V% [) y' m- `( n* J3 d% `7 ?: _0 ]8 _
$ w8 ~0 }$ I3 R: e1 }0 O
' [0 z4 }3 b1 I% ?( B
Session *theSession = Session::GetSession();
. M7 T* z& f W. Y: p Part *workPart(theSession->Parts()->Work());
/ r$ S+ v- M0 R) N Part *displayPart(theSession->Parts()->Display());* l8 P( T9 n3 g% i
9 w- g0 g( Q y2 l/ w
+ r N- Z3 t" Z Features::Feature *nullFeatures_Feature(NULL);' U/ [( Z1 |, h& D: ^" M
Features::EdgeBlendBuilder *edgeBlendBuilder1;
2 l7 u _% U8 g2 ` edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
" F3 S* |( D* Z, d$ H$ {) ^
7 d; [5 `+ R3 K1 _8 ?
$ i/ T/ v. M o1 {+ d ScCollector *scCollector1;
! P: c1 x! @0 Z p scCollector1 = workPart->ScCollectors()->CreateCollector();+ e( V3 r! C6 N/ x. T8 N
' z) ^4 `" P2 p$ U) B+ J6 `$ I
1 I( D+ T0 V0 W% A2 f
std::vector<Edge *> seedEdges;
8 `, I9 a& V% n6 ]% [ # B1 \7 Y5 W' f& Q
std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects(); //获取选择的对象& {- N$ R% }9 M0 O$ w
for (int i=0;i<selectob.size();i++)
$ T: z% l0 R2 w1 e6 n l {% `# s- B+ f0 z; ~
seedEdges.push_back(dynamic_cast<Edge*>(selectob));4 E" @' F! ^- _
}7 Y- t- F* Z: [1 s6 z9 C' o4 q
. h; I& b; T( q# g8 h double dia = expression0->Value(); //获取表达式的值
: c, k; \! ]" i) c0 F9 [: v9 _" {% D6 M stringstream DIA;) b. ` v; {3 h4 `& l8 F( l
DIA << dia;( y: b! u$ R8 B, x* _& |# ~- d) R! V% [
6 a+ w6 \# l: ^1 d# U" P* e- Q
" H$ @2 Y9 [. D4 \% K' `. T EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;; \2 V% ^- N4 j
edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
5 T o" x2 b, y. h& O% E* K; [7 ?% h" B- C% x- A# t7 O8 i' V
% g0 ^' t) B9 y: u
std::vector<SelectionIntentRule *> rules1(1);
; Q+ c8 ?8 l6 R \3 P- Z! p rules1[0] = edgeMultipleSeedTangentRule1;
" ?% I8 _' K8 h a scCollector1->ReplaceRules(rules1, false);; @0 H: V* L$ W$ ~
p- C% m, ?6 p1 E/ ]' q( g7 |
9 p5 u, m# u2 v8 T
edgeBlendBuilder1->SetTolerance(0.001);3 E# E4 m$ A: _( R" y! J
1 E) `6 B6 I9 o5 J
( O! J: r" B9 Y: { edgeBlendBuilder1->SetAllInstancesOption(false);
\0 E" l4 _5 G$ h& Z' n
1 A: @$ t! b& E: [8 r3 t( X6 Z# s. W# x7 l
edgeBlendBuilder1->SetRemoveSelfIntersection(true);
" ] l M* H! o2 o c6 a& a0 q
9 c9 k1 [5 N9 p8 ?9 J% j! ~6 @+ F2 N
2 I$ \& X9 x( e9 c, B- a, b edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
4 q/ Y$ \: X$ _8 b! y" a
5 o3 s9 I* c6 T' c6 G! {) _$ A: }
. t D7 R, }" \7 N# ^2 R edgeBlendBuilder1->SetLimitFailingAreas(true);, F8 n. v3 j* i0 \: M ]
1 s. J5 f$ o; x
! n$ f6 W' u' [6 c. V( a
edgeBlendBuilder1->SetConvexConcaveY(false);
$ q$ N, s" A% G' I( S- N1 r" G, x& E2 c5 J; O) x, O
. [ l# B8 |) }& H# t5 I0 G edgeBlendBuilder1->SetRollOverSmoothEdge(true);* L# C0 N7 r6 M4 i4 o. b' O6 b
- Z! I* F. ~0 ^3 R* i
/ C/ {0 z+ U! P' Y* P
edgeBlendBuilder1->SetRollOntoEdge(true);
7 {+ j0 h- J0 V% ]& v8 U
0 s0 X( B. D8 Y2 u( S, X2 \" l8 v0 o8 I3 L" o. P1 m4 w! S
edgeBlendBuilder1->SetMoveSharpEdge(true);0 P8 l, t. x1 w; A0 P1 n7 ^
4 O1 u9 X# L# D- }3 |1 k0 N9 v E% N6 d* z1 s' h9 D
edgeBlendBuilder1->SetTrimmingOption(false);
' ^9 r! e+ ~3 J! d' J$ l8 P4 O' Z1 s1 |3 S/ @; h" B
) K P2 Z4 B& l: [6 q: d0 M& E/ B
edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);: E0 m/ L5 B* j( y, Y1 ]
9 x/ ^( r) P+ X E E
% v( g3 }) Q0 E( w) @& x4 H edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);# h7 ^2 _/ O* c6 \& Y
; B& \- p; C8 R0 m& I$ g, X- Q- x
) V7 k M6 T( ~4 ]; X edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
( O5 w" ^' C) C5 E
: P$ Y+ o1 F& p# _0 N5 e! p5 f
! n# r8 G, e8 S; K; c+ ? int csIndex1;
) R/ z) V z+ y+ e csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());
4 b- Z+ A9 c i/ h
4 F/ Y* r/ A# d1 u8 K$ O6 X$ d; `
- h3 S7 A/ W8 K Features::Feature *feature1;
a5 u' t M+ F- {$ ?' a. k, A feature1 = edgeBlendBuilder1->CommitFeature();$ n- u2 r/ M; L2 J* t
! B0 y+ f8 L. v! `" ~0 H' G
* E0 R; G/ o5 l/ b$ U$ w$ } edgeBlendBuilder1->Destroy();
( }$ I% k; J4 I$ h h% I
7 a$ p- }- _ X- O2 Y$ s: S }
9 B5 C: `# _ \0 h0 u8 Z catch(exception& ex)
; P Y- ? i: ]1 K8 S2 p- ? {
) T: M+ q) z2 j% M# @! s //---- Enter your exception handling code here -----
0 o& {3 w1 B! ^) W: @5 y- |9 \" y/ p errorCode = 1;4 e1 l2 y! z0 X4 B# \8 A
selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
0 g; U e. W5 @$ F }# F. g6 q5 j( B# I. T% @+ ^
return errorCode;
* h/ `! H6 h4 Q9 y& I5 R}& F9 z! {/ A, b
; ?* N) P/ d: g/ ~, k1 y8 G4 g f. v
说明:因为字数有限制,这里只贴出关键代码。
5 [5 r m0 T. x- _6 q
* a6 K; M* D9 D1 w5 D7 R
3 w0 R& t1 Q1 u/ n2 m% Q S' e, f
9 T- v4 X+ b, e* d9 E |
-
评分
-
查看全部评分
|