|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。
& K# e* n! f+ Y, B
- [4 M4 _: y2 G- z紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。
# O2 c# B' s2 r3 g! a
( ~& r5 U H) \ if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty()); m# S8 A( Y' e" C
{
" s/ ~8 d/ `' ]# F0 C( _& u // we need add more check for the edge selection
8 r) F( @8 s. f Q for (int i = 0; i < selectCurveGroup.size();i++)
; {# c3 J3 r, O9 d6 C7 V! V {
, G S/ O0 O. i4 O% s //////////////////////////////////////////////////////////////# c9 e# S: \& @( U' x
Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));/ f9 ] X+ }- s4 _3 ]3 T
if (selectEdge->IsOccurrence() == false) @. t+ Q9 G: q/ i8 z
{
$ P. m2 H% f; R7 ?2 ?% h selectedEdges.push_back(selectEdge);
$ J" o* `7 y Y7 s! C) } }0 \# O3 j0 e- I6 @& b
else
. J+ |: x9 P8 w" U3 r6 N% d {: A' R+ x2 a2 f4 {0 @
if (selectEdge->Prototype()->OwningPart() == workPart). E. T. G$ |$ _1 x
{& A+ n& |, a6 ~/ r1 w1 |
selectedEdges.push_back(selectEdge);2 }+ w7 m0 [% |; T
}3 K3 I8 S, T6 p8 ]* j& \' N9 q0 g
else3 l6 l4 X4 y' ?; a3 D( e
{
9 l7 o$ j7 W T' @1 w0 R selectedEdgesOcc.push_back(selectEdge);5 c8 c5 _- Z5 v! k
}% X3 v( F5 I* b" T2 `; A9 m' h
}6 _7 p& }. K s
}
6 r5 m% l9 P$ w' c
& p4 l! \. w5 @. L5 y1 p# _
7 S7 ~& x& q" i+ h/ P9 S. e% p //2 get composite curves ; d4 p' p" s- ]9 Q/ y
if(!selectedEdgesOcc.empty())
3 I% [/ k& N4 V" Q9 h+ U2 K9 Y) V {
+ B/ Y- G: B. s8 H errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);% h& V3 r! N3 R2 A$ K
if (errorCode || compositeWaveCurves == NULL)
! P3 S$ R9 r0 P( _! \ {
) Q9 y( u/ X& M CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!");
9 G1 B, ^. Y/ L/ \8 n; B T+ j return 1;
6 D" E4 |# e6 B3 b }
8 q4 j% C8 b- e! ]7 v) G+ h9 Q. { vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();0 e5 a @! U& k
' R+ K, L/ l! c0 o9 L7 b! G& P$ L for (int i = 0; i < allCurves.size();i++)4 z) q- r2 F. }; C8 f: R4 C
{. z, {( n" G6 H1 ?3 ^% x& [ i
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));) {; }+ C: J. `. V% Z+ t' h
}" u) Q0 _7 g7 v% v0 L$ ?- {
}
- f: `. z2 P8 e5 r I& m if (!selectedEdges.empty())' ?3 d5 u# r' a- E0 i! E2 V
{8 e; n: Q6 [) z- \: b
errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
! @# {: V6 Z9 M" q, s if (errorCode || compositeCurves == NULL)
) q' |: p s( p+ j9 Q o# q {4 H( e, m( R7 Q- ?, P
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");
1 Q4 z# b7 Q9 P0 L% S) s9 U. u return 1;. [ u$ H M1 F; {2 |
} v' ~5 P; H+ l0 j& U
vector<NXObject *> allCurves = compositeCurves->GetEntities();+ i; v& S& U% m
for (int i = 0; i < allCurves.size();i++)
* H5 P a7 e( J$ f {
) K1 P5 }6 |! n: ]! M7 K sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));6 N! Y. B# _! J$ r$ e5 }2 F
} 5 V- C3 M4 g) C1 R6 W9 c
}: M- s ?/ M6 E0 S& Z
9 h4 G, u1 K- h* ?% P+ s# K- q. q4 L( } |
|