|
|
秋爱
发表于 2015-8-15 09:15:43
|阅读模式
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% b* I/ J( E: b3 A) M7 G2 f! L
void selectedge::initialize_cb()/ s' }5 n4 V- {& Z$ g+ ?
{
" i! [' Z' ?9 h$ G. ^ try
& r$ |2 c( Q. |+ ]9 p; {! _ F% W {
5 H, V- `2 m- k group1 = dynamic_cast<NXOpen::BlockStyler::Group*>(theDialog->TopBlock()->FindBlock("group1"));
3 x% ]/ Z8 b- P' ~& y3 G edge_select0 = dynamic_cast<NXOpen::BlockStyler::CurveCollector*>(theDialog->TopBlock()- >FindBlock("edge_select0"));
3 C- F2 Z. n: T& ^. N5 L2 e) R$ [ expression0 = dynamic_cast<NXOpen::BlockStyler::ExpressionBlock*>(theDialog->TopBlock()- >FindBlock("expression0"));}
- E! t6 N+ o5 \# v& a caTCh(exception& ex)
: [; a, h' l3 s1 o7 E {
7 B6 g7 N6 D5 I //---- Enter your exception handling code here -----4 g$ b+ H+ ~- `! H9 t9 a! b
selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:dialogTypeError, ex.what());
( Q. ~8 X8 X- K }# s1 t+ [/ n6 `2 a" S" @( I+ E
}; ]1 U' J9 w% Q( {8 e7 D
; C9 F9 _6 {, k0 E! O1 [3 X- j/ d
int selectedge::apply_cb(); [8 v) c+ S7 Z$ T. A7 n% ^
{* F% r$ ]5 ?1 g
int errorCode = 0;% C, h1 z" W/ s; e3 i$ T
try
. n% `; i1 F) Z4 | n [ {( X- ~6 u1 t R
//---- Enter your callback code here -----
, a, V Z4 o7 }2 E+ W$ t3 ~( [" B
; I2 q N1 @6 F1 {) z# n3 [/ \5 F5 N5 l
: W& X `* i2 d9 l
Session *theSession = Session::GetSession();5 V2 `1 k2 d, R) K3 S4 X9 x' j
Part *workPart(theSession->Parts()->Work());
7 p2 I: ^& L! H# s Part *displayPart(theSession->Parts()->Display());) }% Z* x& \3 c2 P& Q! C9 c
) z' T) X% r/ ^& [! W; v8 |% v
9 w( r2 v' S( p+ E4 P3 n Features::Feature *nullFeatures_Feature(NULL);+ g) ^) i4 e1 e$ T( O" E
Features::EdgeBlendBuilder *edgeBlendBuilder1;4 | K; B+ D6 U$ z! k ~
edgeBlendBuilder1 = workPart->Features()->CreateEdgeBlendBuilder(nullFeatures_Feature);8 F" o! `0 }2 [ C9 \
B9 s' C5 n3 Q/ {+ a/ \) O9 ~( n% C$ H2 S- O
ScCollector *scCollector1;
2 Q3 N' |6 Q' T& h scCollector1 = workPart->ScCollectors()->CreateCollector();0 [) v$ A$ D5 F
+ o6 E4 l) G4 w8 v5 x) k/ N/ r' v
9 d- u; H5 x$ g- g6 |' U# U% Z std::vector<Edge *> seedEdges;+ y3 O# x" j) H- W
' x/ v4 R* U4 |8 A std::vector<TaggedObject*>selectob = edge_select0->GetSelectedObjects(); //获取选择的对象. K" Q: ~3 m% ?+ F3 p
for (int i=0;i<selectob.size();i++)/ s; D# i' w4 V7 }% i# e
{ b1 ?% {6 _1 a3 j# P
seedEdges.push_back(dynamic_cast<Edge*>(selectob));
; D7 n& x- q9 K0 s3 C }
0 ^8 [* F( i5 J$ k
( f* \$ B7 v; y/ }# B5 K double dia = expression0->Value(); //获取表达式的值
# w+ T- I5 i) b3 ] l5 D stringstream DIA;& r( r: Y# j* p
DIA << dia;1 \7 a; t% M' E5 K7 o! u
" s- ~5 _( \: V6 `7 n
q4 k6 S; k% U/ _ V. Z8 O
EdgeMultipleSeedTangentRule *edgeMultipleSeedTangentRule1;8 d; g" ]9 D# ~) F; f
edgeMultipleSeedTangentRule1 = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdges, 0.05, true);9 n4 I- M$ j5 o% w
# }+ Y: Y6 O% g0 _4 G3 P
8 B- M9 p4 ~1 x+ s+ G std::vector<SelectionIntentRule *> rules1(1);
# x( s2 V" ?( s2 {! k1 m rules1[0] = edgeMultipleSeedTangentRule1;6 s/ m% W3 G: c3 q) g2 L9 A7 z7 u, c
scCollector1->ReplaceRules(rules1, false);! q3 R: l( O6 m( f) j, ^4 T
* N/ F2 w& T% Z3 j7 u$ F5 l. c
9 A* o9 K& ?9 X6 V1 v; q
edgeBlendBuilder1->SetTolerance(0.001);
{# P$ Y+ O& K( R/ M* ~) z4 I) v- r+ M3 Q
6 f: K. U5 A2 r/ o5 o edgeBlendBuilder1->SetAllInstancesOption(false);
1 s, l E n/ [0 S; }+ z) ^) _
! O$ [; G+ _; L" S) b% _1 N+ i: o7 u
edgeBlendBuilder1->SetRemoveSelfIntersection(true);2 r1 x# ~1 J! S1 b% f4 ~7 t
- m3 ^- `' ^" d4 Q
4 K' a. Q% k, g8 I edgeBlendBuilder1->SetPatchComplexGeometryAreas(true);
. `4 g F$ O1 ^& v, i$ W& n& {5 Y" y v K0 t( v2 v& w5 O7 @
* X: H5 k2 l! L5 `7 J) G/ A edgeBlendBuilder1->SetLimitFailingAreas(true);
8 R% v3 J/ E U: {- z8 s( Y
( j' {, H/ i6 e7 Y D3 ]- A/ ]1 A6 }6 f. F0 K$ J
edgeBlendBuilder1->SetConvexConcaveY(false);
1 K; M6 y. x* u9 _5 Q. G$ |2 H$ t4 d- m3 I0 b- u: Q8 s
# r) ]4 D% c4 B5 U+ v0 D$ |7 }2 d
edgeBlendBuilder1->SetRollOverSmoothEdge(true);
) U3 C4 J. ?! X5 A6 e% e' s6 C1 T& L. V& a y9 g
1 v+ Z8 K( e! r; Z; y" _8 \1 [
edgeBlendBuilder1->SetRollOntoEdge(true);; u0 X0 N, x0 f( l0 Z% d
! x% n7 A+ n. T7 r+ n! t5 A6 \" z/ i
$ q d. Q" q- L* G edgeBlendBuilder1->SetMoveSharpEdge(true);% o4 o7 T# h, o: n, E
3 C2 y9 Q, Z8 a8 I) U" t$ n' T! W$ G2 s3 ^4 I; c0 a8 K
edgeBlendBuilder1->SetTrimmingOption(false); F \" C# b6 n( ~
5 V1 K. N/ F, T7 I
3 x8 c0 j0 z7 b edgeBlendBuilder1->SetOverlapOption(Features::EdgeBlendBuilder::OverlapAnyConvexityRollOver);
. `$ E8 y; q* d' S- q& Y% M
; x7 M: g' ^- a, E3 x% F8 `9 `- N2 s" k$ ]' R0 Y ?
edgeBlendBuilder1->SetBlendOrder(Features::EdgeBlendBuilder::OrderOfBlendingConvexFirst);6 J7 f0 A5 R: F* M6 l' R
) {/ |2 X8 o! G
3 C/ |0 x* k6 a' w6 u' m! ]5 ?2 L' R- f edgeBlendBuilder1->SetSetbackOption(Features::EdgeBlendBuilder::SetbackSeparateFromCorner);
1 V; d h' s4 A8 d
! P( Z- z" [* k6 `3 t: R/ c. c. N3 B }& s
int csIndex1;; O5 Y }2 A# s- W9 r) H7 ~
csIndex1 = edgeBlendBuilder1->AddChainset(scCollector1, DIA.str());
9 I1 O3 u: L2 f; W W, q
6 s6 |' g7 Z* G9 W. [& h4 T" j3 ~ ^6 Z! |
Features::Feature *feature1;* {# ]# w0 M$ y" B
feature1 = edgeBlendBuilder1->CommitFeature();
( ^. Q0 i. E# i0 I# y( X2 a( j7 `+ `- |: y, t7 n0 U7 J. x
1 d* Z$ k; h1 z+ Y- u edgeBlendBuilder1->Destroy();8 w/ N! k Q$ T( k G: T
% Y' R4 T& u0 d4 ^- g+ y# I
}, \ G) E$ W& B% O3 c( L' e" q
catch(exception& ex), y/ S$ L& T$ c& U$ k% ]* c
{
) h+ }7 P5 l7 { //---- Enter your exception handling code here -----, i" f1 O5 I; h% \# I- Y7 h
errorCode = 1;) y; v, B5 a6 o: P3 T! E
selectedge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
8 ?+ Z: y/ W3 i1 q( E }9 ]/ ^& s' @0 I1 ^% n/ J
return errorCode;
7 r. s2 ~. L4 A5 p( }}+ E3 m' I$ B* E: J4 r+ x$ M
% f& n# U4 C9 I% e* s. d, I2 W
说明:因为字数有限制,这里只贴出关键代码。
6 p7 p K4 {* S( v7 U" l4 C1 K' V' A5 m
5 g& M4 Q T6 f
% ?& ~) @, i0 Y. y2 d7 t. p u/ H
|
-
评分
-
查看全部评分
|