|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。2 x y7 R/ |6 l% |1 G
- \/ M- S# ?* i' T紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。
5 K6 j& i# U# V1 Z
; ]4 n3 j, L# f2 R. M if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())8 w1 @4 I8 | R4 G8 h, v; k
{( q& h( @. G/ e3 ^$ [ W. B3 Q* [1 W
// we need add more check for the edge selection
4 R1 o K: R2 F9 q5 U: o+ g3 r for (int i = 0; i < selectCurveGroup.size();i++)
; R, n6 W# L1 j0 z( p {
( T3 b# y7 m5 p% Y6 {% e- h //////////////////////////////////////////////////////////////0 X7 @$ |- z- m: c0 S9 P
Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
1 U( l# N. f3 ` if (selectEdge->IsOccurrence() == false)
* x7 P3 O U5 i3 E0 m. o8 t; ]+ K {
@; D1 [1 v% R0 i3 i9 M! U) d selectedEdges.push_back(selectEdge);
1 t/ [; Q, I$ a/ H6 }0 \# v0 K }
* [- I' b3 I) I" \, }" s else# n' T% E) C {* w, w* _
{
# k; ~8 H/ Z& P; b' a if (selectEdge->Prototype()->OwningPart() == workPart): @, f; E" P5 S9 \5 c( ^- G
{
; \0 g1 A8 {7 C. n- O: ]( h- ^* x selectedEdges.push_back(selectEdge);4 e) y! Y& ~. ^; N, z9 |
}9 q+ g& z& x" T& Z4 M$ v: `
else
4 \, E% q7 G1 _, R; r, N ^8 e9 N {
) t+ D7 a5 h0 w) e0 A selectedEdgesOcc.push_back(selectEdge);
1 U$ U; p1 t, }- x# s$ T }
8 u$ @: s* z5 q }
& K: `6 Q. t3 n2 r# ^+ y }5 k7 c. A# L/ f- @$ @) {
0 w X/ ?# m6 i# d, m) Q; I
: Y% j. X& P5 w: z _/ x3 ]) s
//2 get composite curves 9 W+ ?: v# `% v' G- A
if(!selectedEdgesOcc.empty())# F- y: H. @2 {/ c. `9 Z
{
, @( _! {5 [) \" I, O( @ errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);; Y0 z @+ E7 ~8 W! d& g. G( g
if (errorCode || compositeWaveCurves == NULL)- c- B$ `% ` C9 [( H: y. R
{7 n8 d) F; s) m0 q% `; W) r" x
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!"); S$ ]$ ]* ^* @% T7 O
return 1;
: T. |& j& O% S% v. C) `3 P0 X5 A }' x! Q% s! b. o2 J( ~+ p
vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
* H ^- p6 ]# Z) [
" H- ^- n( s" K for (int i = 0; i < allCurves.size();i++)) Q8 N( M' R' o" g/ ~
{ {; c& r z5 W: G
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
. b T- I" J" W }
+ Y3 d# l, N. H3 M; E }
: T5 R, R3 `* N+ ?; a' @ if (!selectedEdges.empty())
5 s F* u( S0 y {
/ A% ^' r+ s, W, q3 ? errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
( u2 v6 a+ Y6 n if (errorCode || compositeCurves == NULL)
# E' o: ]$ A% V. z2 {- @$ {, A {) {4 w4 {% J1 r3 B- v# K, I# V0 i
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");8 p. x2 L+ L+ D+ y8 s5 `
return 1;* P/ H" S7 h) z* f3 z
}5 K& w2 `, r% I K3 y0 [
vector<NXObject *> allCurves = compositeCurves->GetEntities();1 r$ ]/ Y# m: i8 R* i/ X
for (int i = 0; i < allCurves.size();i++)
/ Q+ G% i1 R1 j ]5 G7 y. N {
' V6 m0 w1 C: | \9 w9 d$ J sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));, W- u1 i6 b3 ^' j% }
}
5 c Z8 x6 o& h& ^ }
8 c& g& e) |$ @$ g& J! ~" e k ], m `# O* B' W
|
|