|
|
秋爱
发表于 2015-8-15 09:15:43
|阅读模式
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
( l" c0 W0 e4 v- g$ Y
void selectedge::initialize_cb()
; f$ i+ P; [: J3 X/ J. u, h{0 q+ r _6 Z. u7 b
try0 `: K2 s! m" N7 N& H6 D& @
{
" A; [8 s" T% x group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));4 O( Z- r; l4 B" Y$ w. t8 c
edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()- >FindBlock("edge_select0"));
5 M$ V' s3 s# z! h1 B expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()- >FindBlock("expression0"));}8 x" U" r7 A3 n
caTCh(exception& ex)
) y) h5 r) {$ C1 K1 E! b# \ {5 s; `* c4 d, p5 ?" w4 D; m
//---- Enter your exception handling code here -----
$ i$ i5 \1 r8 @+ e) E selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());& t7 m0 H' E/ P) ^. I; f6 ?; `
}
5 h7 V3 c0 o$ J- I: b7 B}
8 z5 S M; a) c- M
6 x. h8 }8 g0 X) ~ r6 |int selectedge::apply_cb()
+ e+ _$ S) X; e z) G{
2 {& i2 G! R. H) L# D% f$ t" @( E int errorCode = 0;
+ M$ V; A% \+ K( Y8 K try
2 Z% Y6 k# H: e9 S) F {4 ?5 M2 }) D( j+ p4 Z
//---- Enter your callback code here -----
' ]2 q) }( p8 Z& O6 O$ y
2 M4 P1 j6 n5 t4 |; t) t5 g, `: D0 f# R2 |% t7 F& A9 R
: o- x7 y$ m# h; a" F2 A5 n7 F; D
Session *theSession = Session::GetSession();9 }2 x6 k2 P# V' a0 v; c
Part *workPart(theSession->Parts()->Work());
" ^- H! _! }, `* \- _! _- D Part *displayPart(theSession->Parts()->Display());
% I$ e' n* X: d0 v6 T6 ^' Q7 t+ n! V& C2 Z
) R. [* w8 l6 t
Features::Feature *nullFeatures_Feature(NULL);" j4 ~# g4 C( l( N- b5 Y
Features::EdgeBlendBuilder *edgeBlendBuilder1;. [8 _' m; D' c, B4 F) ^* }
edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);# b% |8 F; w- ]% B
! C& l. n+ V7 f
0 z! A8 L7 d* x4 `, Z( r& C: q ScCollector *scCollector1;7 M* Y( n [" I2 Y+ q, n- P
scCollector1 = workPart->ScCollectors()->CreateCollector();/ E1 D% O# O* }1 P- |3 H8 I
( U. I# U; S9 ~4 [4 W
3 O7 y o. \' `! z V std::vector<Edge *> seedEdges;; a4 Y/ M: n3 Y8 \
/ n" t9 O; s: S; Y0 o4 J5 h
std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects(); //获取选择的对象
4 o7 ^3 [/ @) Y for (int i=0;i<selectob.size();i++)
( p- E. }7 p5 t {
* \ p' f0 u1 b$ J seedEdges.push_back(dynamic_cast<Edge*>(selectob));
* }7 s" g& E( w0 k, @3 T) d; { }, y" ~, H; _" @& E$ Q4 `
& N( g4 l/ Y' w9 @ double dia = expression0->Value(); //获取表达式的值
* c% Q$ ~, c, U stringstream DIA; z; W8 w. b# f
DIA << dia;7 p" a4 `3 W" X) S* {! g
. x; a1 t5 I' {2 Y& Y3 X
4 `- S) t3 |+ }/ {! g" G EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;; s, b- i( p4 x$ @0 v+ o1 [
edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
8 D3 _8 \ A' T9 y# Y4 ? _" _- g3 \* D3 [3 ^4 r
* H9 d. Q& s0 N' ]( K' D
std::vector<SelectionIntentRule *> rules1(1);
9 v9 T0 B' G9 Z/ h' j1 p) ] rules1[0] = edgeMultipleSeedTangentRule1;
* {/ x7 X/ y2 x5 s7 v scCollector1->ReplaceRules(rules1, false);; t% W4 @. b/ r1 N9 s: V# ~8 o
" Q/ G0 l, D7 }- l3 e4 e% q- i2 F1 P2 p0 v8 z. q
edgeBlendBuilder1->SetTolerance(0.001);
/ A; `; T! r' A% F& { ]# u( R3 A- ?7 K) p4 }
7 X+ I7 M3 E8 d2 X! q7 e edgeBlendBuilder1->SetAllInstancesOption(false);/ ~& Z8 X; r3 K+ s
' ^3 q! \) X0 a, [
! w; ]: U( L' H, a edgeBlendBuilder1->SetRemoveSelfIntersection(true);
9 I" p2 N3 [! I. X! O, {1 j! Z+ S, p" S. i
- c9 q5 x# y. k) B5 E" m edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);) ]: h9 [# y5 d) q* n# ~- l" O
; Z; u& k+ \: ]3 }# v- ?
8 L! a* o* W6 I4 N( p# y" a3 U( S edgeBlendBuilder1->SetLimitFailingAreas(true);% U2 |& q' }$ _& H$ q! v
+ k; `0 S0 Q( _2 n) z
2 B( g( V; _7 J4 M6 y; x1 X0 B( O edgeBlendBuilder1->SetConvexConcaveY(false);- [: ?& m; L% E. D8 ]. o
) S1 m& f! a8 t, S9 i5 x3 j+ F. y
edgeBlendBuilder1->SetRollOverSmoothEdge(true);
- T! m: @0 [9 n/ O# b/ s) d
/ g& U. I% S; I6 [) ]7 z9 O1 v# k: y0 L2 I8 Z o4 s, C1 V
edgeBlendBuilder1->SetRollOntoEdge(true);
8 R6 W" l+ A) R4 N4 j X8 p. j2 S9 e
I$ E3 e- U' ~
edgeBlendBuilder1->SetMoveSharpEdge(true);
& r0 \) e4 P2 C
4 q/ f$ n; t! i/ D* ^4 [: F& W- C! f, _1 r# W0 f
edgeBlendBuilder1->SetTrimmingOption(false);
# h" ]! X5 @2 `# o- F, ^! }9 c; a9 B
' |2 o. K' }; `( D# |8 W* o, _ edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);! S% q9 m/ i8 {. B% D. k* G4 _/ L
j( Y. o; ?- K& q3 Q( o/ W3 V& d
! ^8 _& z8 I+ q$ K" t
edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);2 U7 x: q T- w% g. m
4 c9 P7 t: Z5 m4 p5 K7 h% |( d; U' @, `
5 N4 {: T0 Y8 ^ edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);( z) B8 l7 L6 P+ o
! _# h) q' E9 r J4 \" N8 F9 s7 G8 Z- F1 y& X
int csIndex1;
p6 k# z. s6 F( y% _* x csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());3 o, l$ e: z! I+ W5 X
3 I# X4 H( `/ T; L. m
9 h5 A) z0 c, f9 T0 u l/ Z, O Features::Feature *feature1;+ ~' e" X1 O8 `- P! e4 M
feature1 = edgeBlendBuilder1->CommitFeature();
/ N" H6 ^! m3 u. x
& x8 ]3 x: v& F8 F% ?* ^6 ^$ D( o5 \* ^
edgeBlendBuilder1->Destroy();
; b ~9 b* M1 {6 L" {3 s1 {) U) B8 A- x4 C0 O
}
4 m$ t& k0 q, P! {/ [$ @2 A catch(exception& ex)
* f. b0 O( z% ` {
0 r3 M$ p5 q: h4 N$ Y5 \4 T //---- Enter your exception handling code here -----
6 o2 Y/ I& ~% W% E errorCode = 1;+ y" l" g' C7 U1 c; F
selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());: r" L; g" P# m6 T
}+ H; v( P$ T m C0 V
return errorCode;; Z& _+ ~& u* B8 `* [. I
}
8 g/ [' @9 T5 k# M6 ]
- _( o0 \/ L; W0 @8 \# A说明:因为字数有限制,这里只贴出关键代码。/ t5 y* D6 S; Z; @( \
8 l8 I( @/ w4 T( l" M q( a$ {+ {' _/ K) }4 u
. C2 O! H9 r0 h1 n* W+ D0 g+ B- H( d |
-
评分
-
查看全部评分
|