|
|
秋爱
发表于 2015-8-15 09:15:43
|阅读模式
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 Q8 s3 i2 F0 V2 R5 U- ?3 K5 D, j* v
void selectedge::initialize_cb()/ s& m' W, R# E$ Z2 F$ `
{2 f/ c6 c. ?2 J0 k% ?: }, _# F
try
) C5 l9 G! t. o# \7 I' g {+ l( ^# S2 A; \2 y
group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
/ Q$ ]* l& ]" r, j7 c2 U9 ?& y edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()- >FindBlock("edge_select0")); O6 i. R& _- ^3 h* y2 b
expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()- >FindBlock("expression0"));}& D- q% T! r& S3 h" s0 e
caTCh(exception& ex)% D/ K/ O6 R* i/ C
{
4 z2 `! ^- i' v) P( E4 e' B //---- Enter your exception handling code here -----
8 p J0 @' W# ~/ l: m" U0 Z selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
, T. ~/ X! U( \ }
; V1 N8 ]3 n) L5 g2 p7 {}
+ [+ k, M# i" x2 a; x
: b; S. M2 n& w0 j) p2 |int selectedge::apply_cb()$ V: a" K1 T3 z0 v" k2 i% W
{* x( G9 w- A0 y2 ?( G3 |
int errorCode = 0;8 B& b3 X! b5 z$ X. U1 s+ E7 k
try
$ c B) e9 H* b, a {$ L0 M* {$ L- E- C, ]
//---- Enter your callback code here -----6 q* ]/ K' L/ E$ c: S, Q/ p3 I+ X6 S! x
' D2 x: _6 R" `9 ~
/ `/ A& S- v" H% l2 _- n! H
2 S& Z, I% I( z8 l- A: W Session *theSession = Session::GetSession();0 a6 z" K9 H$ V- N9 H
Part *workPart(theSession->Parts()->Work());, F+ i7 a/ }. p
Part *displayPart(theSession->Parts()->Display());0 l$ c5 ^% k; L) V9 B0 `
- M& ^ Q3 A3 u" p- z& p: |) {
Features::Feature *nullFeatures_Feature(NULL);
8 F- ^6 Y1 I6 X8 |- ^2 a Features::EdgeBlendBuilder *edgeBlendBuilder1;; x! ]" ?9 s" e0 L
edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);
4 w( d0 H# t7 D/ W I& u+ J' h# K6 e
+ O. a( v! w, V5 ?2 s& }
1 V, C3 `$ [( R3 I* w ScCollector *scCollector1;
9 w1 g3 e: z6 c. n3 d" h scCollector1 = workPart->ScCollectors()->CreateCollector();
6 K5 F) K2 L; ~9 ~7 c; D1 F/ S
/ n0 A3 s! v6 J+ {, i# U1 w: m/ V' u M% Z9 q
std::vector<Edge *> seedEdges;
" ]6 D2 X6 J) |# E2 D
7 H! c ?- L5 m [ std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects(); //获取选择的对象6 Y0 M& L' v+ E7 c
for (int i=0;i<selectob.size();i++)
+ h1 X: Z% u% }# |) F {
' X/ h: u) [$ A; P, m# `) f0 _, c seedEdges.push_back(dynamic_cast<Edge*>(selectob));
9 O& w; k! M8 ? }
8 i ~7 p7 Q& ?1 n$ _2 a) \
: m1 O/ W) n! H0 J T double dia = expression0->Value(); //获取表达式的值
3 F( I8 k6 l6 w/ Z stringstream DIA;8 t2 b( M8 o w
DIA << dia;
_, C3 `# H4 a; s: t# p
; J9 @4 I4 W& C# D2 e. D
- l! ^" [; e( X3 n EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;
5 {& @" T* i( I/ {* u2 @ edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);
% c1 R/ K2 U/ b' H Q# Q7 b$ }5 }+ J. \. R5 v! Y" a/ u
~8 w7 `/ J9 [& P4 ~. ?3 ]# y; d std::vector<SelectionIntentRule *> rules1(1);
- N3 P, G0 R+ I5 K5 m! Y rules1[0] = edgeMultipleSeedTangentRule1;
' c7 a2 R+ Q: O3 z scCollector1->ReplaceRules(rules1, false);
2 A- X5 n3 k: X8 O/ l6 x( U, q2 i, `
$ A/ K# o* ~* |- C/ Z) ~! W. K0 ~
edgeBlendBuilder1->SetTolerance(0.001);
0 q3 x2 K7 r' @, _2 ]$ [" g. n# b8 K0 i6 F7 Q( c- H, n* W3 H- r6 }, ]
# l/ s8 m k* l, t/ R1 k9 x
edgeBlendBuilder1->SetAllInstancesOption(false);
6 d% Y' m* M; g' z
. Z3 _6 d: o3 B1 q6 h# O, u3 }0 N# r9 \) ~8 X: H/ `
edgeBlendBuilder1->SetRemoveSelfIntersection(true);
# U" C# l- S. @( u) e% Q5 T
. F; ]% f5 X. T0 K9 L+ c7 Q
4 m; A2 F4 A/ S4 T8 [: R0 m1 H1 a edgeBlendBuilder1->SetPatchComplexGeometryAreas(true); C8 x1 ~% ]! }9 ]9 C+ b( L
1 r5 e X6 J2 J4 y4 W+ g* g) E. N/ T; E+ {2 T- ~! x; O: ~
edgeBlendBuilder1->SetLimitFailingAreas(true);
+ c4 O- B' X# ^9 a9 k
# B- D: x/ X4 q" W2 H
3 G F% o5 G, U$ u7 u edgeBlendBuilder1->SetConvexConcaveY(false);7 ~, w6 t( t* {* w( Y: M
" E$ H. L! C- `/ M
+ F5 c) R, T: P$ Z; |+ a edgeBlendBuilder1->SetRollOverSmoothEdge(true);: j6 o5 j; C7 l- I
8 C/ m1 B4 c* ~0 d* ?
2 {/ B5 @0 b% }" f edgeBlendBuilder1->SetRollOntoEdge(true);
& a F" S- y2 Z' ?9 O- @) i T1 ?9 d: o0 A; R2 Z
& b a, P$ h) [0 b edgeBlendBuilder1->SetMoveSharpEdge(true);' o- R% ~6 H& Y$ G! S
2 |; B# p+ F3 s9 v! v7 q" M F3 f; f9 n4 M- k; z
edgeBlendBuilder1->SetTrimmingOption(false);
h9 U/ f$ o2 y" q4 ?% K. d9 Q# P0 P
8 O" U4 M! z% p0 z edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);, s5 u1 E) J% F9 j
# O5 j4 ^4 r" V
1 t4 [3 O: Q: s% C" Q edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);
: |0 `* E& A& x
! [' R7 r$ v- H. o% L1 ?. W) O( F3 j/ \# l' V# P" T, P q3 p
edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
" ^% a+ T5 A5 P6 Z, [( C
4 [8 d W( N7 [4 M( X' m6 x' Y) D4 v @7 v
int csIndex1;. p9 ]7 |" A) ~9 I% U$ e, p( \
csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());
& d0 F$ C- y6 E6 _. W& F" }
0 V! m) F* E0 K; \( E a# z7 Q" Y- H
Features::Feature *feature1;7 y' r' |5 E4 M" y- q u0 A6 B
feature1 = edgeBlendBuilder1->CommitFeature();
/ ~5 E C0 s3 n6 X7 |9 p1 w# F$ c
; \7 s' ~" y4 e1 @$ T8 b: ^
: z C% J K& e& z edgeBlendBuilder1->Destroy();* d/ j* Y0 G! g4 s
4 E' [" {; S2 a& P6 t' e [1 n
}: L( o7 n, a: a! ^0 s4 ]# o7 o5 y
catch(exception& ex)4 j5 v" Q, C# b! l" s
{5 ?7 j6 Q7 ~6 J1 \; ?1 ]3 \, x
//---- Enter your exception handling code here -----
( e, E# @: A# e' { errorCode = 1;9 v. u4 H6 s6 n/ b( @% p% { x
selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
2 H2 e1 N2 @( r8 N4 p; F! Z5 f }
" J- L* o1 ~! F& ^* t1 u return errorCode;
4 r- t6 e! x- v) r}9 C3 x) k/ v) B1 a' ~
% U, `5 e; \2 {, q: P5 w说明:因为字数有限制,这里只贴出关键代码。3 J) J% e w8 F0 H% T- x; \
5 P) E, M9 B% Q
9 G' p& I$ O' w
* z- g5 q6 h4 z x" ~
|
-
评分
-
查看全部评分
|