|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。
7 o V& [- [7 x& I/ Y" f w. K4 s
% g4 }/ ?- M1 R! ?; T紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。, _# ^( A7 Y- s
5 ~' A" l# d8 b& o/ b8 j# }! A
if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())9 c7 t: D/ ]9 N ]) [1 @
{
2 c% {+ _+ ^( F3 i" L // we need add more check for the edge selection
6 \4 r% E( T) r/ n for (int i = 0; i < selectCurveGroup.size();i++)
! C' S4 U" c) [2 ~: d {
) D' U" k# L. n1 l* I, R //////////////////////////////////////////////////////////////, ]) E1 i3 o! q4 t, c& \
Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));* x+ i" p% \) P) ^
if (selectEdge->IsOccurrence() == false)* K, L9 |/ H2 t% Q3 c4 J
{; O i5 g; [- l1 a: p
selectedEdges.push_back(selectEdge);. X! q$ \: {" H$ U; Y
}9 |( V+ R, N6 B* i2 w
else
( H4 r4 n# Q& o. m: i6 P, C {
3 r; q$ c$ g) V) f5 b* z if (selectEdge->Prototype()->OwningPart() == workPart)& u9 [/ |" G3 @: D. F# A
{9 y* R$ R" `) }$ V
selectedEdges.push_back(selectEdge);
$ |' @5 e8 o" T }3 I# L. D) o( h y' \
else
6 A" M8 I: U: x) {! m! L {
. @5 B* n( K \8 V8 M selectedEdgesOcc.push_back(selectEdge);
' T7 O2 x+ Z. q0 ? }4 L! e( y1 V$ r& c4 ]
}
& A. m. ]2 m% Z0 D& a @( I }& r4 v3 _' Z; N& u* a4 H4 S
4 N, t' F' \0 T% J# o3 b
4 @* k T! Z: T n+ ^
//2 get composite curves / J7 l& b5 ?7 g9 R7 R$ l
if(!selectedEdgesOcc.empty()): f+ w! L/ o" f
{- P, p. u9 i4 i1 _
errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
; g) k0 V% @2 ~4 P) i; w if (errorCode || compositeWaveCurves == NULL)! V. G5 M3 `* T2 f0 }
{
+ X" G* C( d0 \ CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!");; [$ n; V1 W6 M4 B
return 1;
) K( z+ X, r2 X }; V0 K; C; t+ f
vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
1 K) J7 D- i9 ~/ b
) L% _7 _* d4 m% Q for (int i = 0; i < allCurves.size();i++)
; T- S, }! N3 ^5 K {( Z4 j; [. }& j$ s8 N+ J& n. `4 R
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
, \" V. N9 i! @8 O2 D* v4 P }1 P: M# p+ _" T; o# W5 E
}
& S1 m. H% b3 E W0 W) l if (!selectedEdges.empty())& ~- \ R# `* |/ I- v7 {
{
6 @% B0 }& }" r* p, e3 r' f; I errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
* m, e- M* K- K8 `2 U if (errorCode || compositeCurves == NULL)
$ I8 e! U7 K% j& X% O& M2 N {
4 c, z, ?; ` Q$ u CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");; y6 K1 |9 H, ~- L7 ~. T5 C) [- L
return 1;
1 n( z9 a- y; V1 u) {6 Y }
" C2 w) L0 l9 s y vector<NXObject *> allCurves = compositeCurves->GetEntities();( _( N0 a8 w0 H) m: E
for (int i = 0; i < allCurves.size();i++)' U u% H6 o& `# g) @/ V- J4 J0 `2 S
{% ~) j! r2 j( w2 ]5 }, P5 c/ r+ c- N' N
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));7 p. @- p' F8 u' O* h0 ^; o& n
}
5 w$ O) W J( Z4 J+ R% q* X# f* d }4 K/ G+ a" h- l* ~' Q5 u. H
0 v y0 O7 l1 w6 Q
|
|