|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。4 N J1 {* `$ B w
: i8 [. a2 T+ a) m0 E0 y
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。1 \6 D) |: F' B4 F" h. L
9 N- a, s0 f) b) f d; }1 D3 P8 }1 s
if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
" W+ `0 T9 R5 {) J' `7 R6 o* T {
+ f/ i0 S: b/ K // we need add more check for the edge selection
# j+ m3 M7 A1 J+ X for (int i = 0; i < selectCurveGroup.size();i++). Y& Q2 ^- t$ R- l# n, L Z
{) q. z. ~6 ^' H K. x5 i
//////////////////////////////////////////////////////////////# x# a9 a7 R @( A; Q% D
Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));' d) R5 ^7 \ S) ^/ U9 [' r, s7 G
if (selectEdge->IsOccurrence() == false)
1 T5 |8 e6 i! n+ j {" d+ N8 A7 R; N2 c8 _
selectedEdges.push_back(selectEdge);% _7 \/ G) v7 } o4 ~' N
}; E( k+ ~& H- T; ]* E
else& j- S& u0 F$ O2 q' p
{4 d: F5 r9 {6 x) d. X
if (selectEdge->Prototype()->OwningPart() == workPart)
S7 Y% U! a- g9 S+ g {! y8 C' c, E) P) J9 t; ?7 H
selectedEdges.push_back(selectEdge);% S, o; s2 s. x
}
- t- f, W1 S+ W9 d$ c else. O2 h( `% G1 s2 g4 c5 H# G
{
& T+ f. W/ p; p4 K3 \& o3 c selectedEdgesOcc.push_back(selectEdge);
, Z" @2 ]9 z/ k! H }# C% z: C. ?: K0 J8 j8 O# ^
}
( O1 b7 S6 N6 _* D* W) R }; [" y0 [7 S4 f. N3 }/ J7 }
. c: @# _* A! _6 j+ f
0 S. y& Q2 R! C% P. I7 h) j //2 get composite curves 0 E* z( F# d, ?3 x2 J4 K, Z1 L. _( }
if(!selectedEdgesOcc.empty())# f \7 o7 a* V1 E9 X# X" a7 K
{
: D7 X! ^. W& {* O5 L, |6 @/ K- w errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
& ~: {; c7 @$ X5 m if (errorCode || compositeWaveCurves == NULL)5 B# R+ n: x+ O9 h& u
{
% R+ t, N) g* g8 @' c2 Y3 d! J CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!");/ n$ |8 p# g. {# g+ O4 {) O8 G
return 1;
0 U9 t! i. n' f+ E, R }0 K0 j/ \ L+ ]' A+ q
vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
/ ^2 F8 `# _" y4 |. ]
; l$ V/ _4 F' g% m# @7 J% T( o for (int i = 0; i < allCurves.size();i++)' r7 |) d& @. Y
{
8 t6 Z* @5 N8 X4 u) i sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));, b' Y3 ?& r$ I' G: g
}, L9 c" h& `( T/ E- i7 U
}
s7 d2 \ k+ a# K1 B; E if (!selectedEdges.empty())! n: {4 m: ]& T7 e
{, z. I( v9 \! j) j1 q) Q @
errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
! P% C& f% E: k; [ if (errorCode || compositeCurves == NULL)
: b3 h$ S+ G; N6 \ {, T7 R* ?9 I' w5 T+ ~3 _
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");
; ]& ~$ n0 d5 b5 W4 j return 1;
& K D9 w: d( O/ N' f. h3 S8 o }
" }- ]- ?+ P( L6 q6 G vector<NXObject *> allCurves = compositeCurves->GetEntities();4 T- g2 H3 h, c; B4 P# n
for (int i = 0; i < allCurves.size();i++)5 y! ^7 F* o" K! j8 y
{- A2 A) T- f5 b% \3 _5 ]
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));; W. E( O- P+ i$ c' \1 }' j% F
} 0 X' x% e- K0 N7 F J& J8 H
}
- [- u* |" S1 C0 |2 \: m* m7 E0 D
* j% k- @4 o4 c+ r: K3 A |
|