|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。2 C( F1 w t" k) N
* a7 z4 w3 M; Z% l9 _
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。6 x* K$ P. Z8 g5 c- o$ ]
% t, I) Z1 u$ E5 V, E6 ~0 d- K8 V9 k if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
9 R( S# w' ?2 e; {( Z) J {) {2 h( Z: z4 V; p) @
// we need add more check for the edge selection$ c. q$ o7 Y* ?. ^* n
for (int i = 0; i < selectCurveGroup.size();i++)
0 z$ n4 [! J1 j- T {7 @& \( `. F K6 K e+ U# E( [
//////////////////////////////////////////////////////////////, d" r* W- T. F% B" ]' ^* Q
Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
! s) x& C) X! Z! e ?( ~$ V if (selectEdge->IsOccurrence() == false)
0 w2 G/ ~; R5 I- ~- _ {: J% O9 ?" f9 G Z: d/ k1 }
selectedEdges.push_back(selectEdge);& W- W5 U- ]/ W4 G! x9 L
}
) [7 x+ }1 n# \4 ?* J else5 u `; x0 {$ s; }' D$ K
{) \9 I7 k8 _ Q. Z
if (selectEdge->Prototype()->OwningPart() == workPart)
) Y" A+ ~. |. I A% D8 j {
* _" Q) T: Z3 o2 D& q selectedEdges.push_back(selectEdge);
- R& h0 X, z& c+ w9 ^+ G3 z3 _( p9 w5 n }
, C1 Y0 A4 o' o else( u$ ~0 {# X4 v8 z" k3 ^: Z
{
( Q" V8 c8 r' Z selectedEdgesOcc.push_back(selectEdge);# @% a5 @+ \: B, ~- T
}
5 B2 C2 ?7 w' J: z% K$ G }
: i- ~; _+ E4 i2 S- a$ K( f }$ _! s$ B/ _$ }0 V
' N; U0 j( z9 ~7 W( ^
) F. h. O: G; W5 a/ F- v: c: F
//2 get composite curves 7 @( c( t8 \3 e9 B9 M
if(!selectedEdgesOcc.empty())
4 J1 O2 C/ u2 g4 R1 i0 [ {
& |2 ]" r7 G- i8 q: B errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);; X% }: g/ q1 e0 e6 i5 ^1 W
if (errorCode || compositeWaveCurves == NULL)
/ Q6 f+ V. D) e7 h( L {
% X) k7 e5 L: B. h6 |; E1 Q2 n CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!");
( j a# q& B5 G: E$ d' Q; C! q return 1;8 v# E Z9 g) y/ f9 F% Y, k
}
0 ^3 _, _6 K6 ~. U1 Z) {8 j vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();* T( i6 O c% c, H
0 {' d( L, j7 t4 Z# Q) F6 [ for (int i = 0; i < allCurves.size();i++)
& I% ?; J1 [3 i) ?/ h {
& @& P; }* {" e* w4 `+ Y6 b sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
, Q7 l4 b p) v& y! s8 Z }# V! L1 H, N" F2 P6 U/ L
}& _# W& D1 ]' ?2 w* t
if (!selectedEdges.empty())) h; ]0 W( @1 m* {+ s4 Q# ?, X4 z8 P/ J# ?
{$ P8 ?' {0 y$ B* N( i
errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);! I( A: ^# p s5 t3 d/ k* N
if (errorCode || compositeCurves == NULL)1 v- q/ K: a; J$ o9 \! L; J) ~
{
) _: g+ d/ G9 x6 h5 O9 S; P" h( A CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");
9 ]2 G( b% s1 T/ f" M# E* f2 X0 i return 1;
7 S) f# ?2 b- h: G }
, Z9 i; ?- D! q- M vector<NXObject *> allCurves = compositeCurves->GetEntities();6 t6 V$ o$ H" n+ d/ [8 \5 @
for (int i = 0; i < allCurves.size();i++)0 I" p0 `& S7 Q+ L# a5 \
{
! w$ F+ L; m$ p/ a! E m sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));) O6 N* w: G6 s4 b+ Y. s; H S. W
} * \+ [4 M+ J& o5 i1 x( L" K
}$ [5 D! b5 i$ Z
3 k: [+ l- v! E2 ?8 i |
|