|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。" x; w, J! `3 @$ m* H* z
7 Q7 z3 K F. z紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。
+ f; }! N; M/ L2 e' n
3 T7 d# M A) A, E- X if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())* B1 c: F& U) V; _. |
{+ \9 G/ k- _* s. h U9 d
// we need add more check for the edge selection
" {* c5 p& ~0 V+ |" V5 i6 ^9 N for (int i = 0; i < selectCurveGroup.size();i++)0 E6 R( o, K; J$ f2 y8 B1 a
{
. u: a: j+ X3 h" c. k& y' _' y* F2 T1 _ //////////////////////////////////////////////////////////////
. W' N4 I# t* N' S5 D% S Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
% H7 x6 L$ E4 c6 a M3 i' L if (selectEdge->IsOccurrence() == false)! m9 \# c. W1 X) D
{
( p$ V( _9 B4 `1 u7 x& _4 _" o selectedEdges.push_back(selectEdge);
s* V1 R, W3 z# y, c6 \ }
3 V6 l8 y& `0 d4 U% V' i+ [$ l( ] else0 D/ _; Q' a4 c" A% E
{
: [2 M: ]' Q7 e: Q+ j3 M& E' O if (selectEdge->Prototype()->OwningPart() == workPart)
, B3 P7 X8 h; f+ w& o- a" g; o/ ^ {
. C" u% N$ j( @. T0 J M selectedEdges.push_back(selectEdge);" a* v; N6 n+ q+ [9 N
}+ ~( J2 ]1 X) H1 `
else
9 Q0 F8 T) T2 A9 Y L6 w) t4 J {
" c7 j/ g+ I% T6 \' w3 L selectedEdgesOcc.push_back(selectEdge);* P2 l! H, E% H) |# j
}0 X, e, A- h6 m0 {( J8 \3 Q
}
& m: ~* }9 H7 U! u. u4 X. \1 P+ A }
8 Q. m3 m# [/ w! v8 P
, b' @( \6 a' M; E0 S- W/ z
! g+ f5 w9 }! N# |2 C //2 get composite curves
o& f8 P- g8 K }& E7 u if(!selectedEdgesOcc.empty())
: b9 y& j( P9 |, p1 }3 c( S' x {% G) K3 w$ {# M. P1 F; \
errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
# g6 a. j, e5 ^3 s if (errorCode || compositeWaveCurves == NULL)( |0 A" h! [' D' N3 a9 U; @
{) C6 H; a. ^6 H1 N( u/ J
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!");
. P. G" f( i( z4 ]8 n return 1;* ^- W# R9 G: o) H" o
}2 H! l) k4 _9 `; D I3 j% `; Z
vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
+ u4 c. Q- q( X
u. U; o( M$ P for (int i = 0; i < allCurves.size();i++)
; L2 \& X( g; n5 W) U+ s" i {
5 H6 Y8 n. v' |+ A) B sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));. B" \# n1 B0 A. A
}
. k4 f3 b, w; W. q O }/ X9 t* X# n5 g, |
if (!selectedEdges.empty())3 j, b8 x$ G# O& \: F1 ]
{$ n+ {6 Q8 {# k8 J# M9 M8 E4 I
errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);5 j- ^" H, Z* c5 u1 e
if (errorCode || compositeCurves == NULL)( z3 K* V. h1 Z& S9 s7 G
{+ f& W; J7 i! F# w* ~2 U# T
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");5 I& l3 i; \ U
return 1;" Z6 M$ }' r9 L: B2 V
}
X& ~. {- H$ U }! e9 h vector<NXObject *> allCurves = compositeCurves->GetEntities();
# N8 r8 ~# v/ K for (int i = 0; i < allCurves.size();i++)/ }3 _' t! J! m9 F0 g
{& G8 c7 F0 y" o% G9 G
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
- e* n; b7 T) C, v% P2 w" h } + u' h% ~5 t; s3 G; E) M/ c2 n$ q+ O
}6 q1 M+ K. L! n; h, W" f
6 l$ L6 w1 K* t4 a2 @8 e, M* ~% a* U2 ?
|
|