|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。1 Z3 t8 K6 W5 [0 O6 U
2 K" I4 {) u( F+ t% E+ {7 @/ C( _& p- J
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。. ]7 h* w) r4 B) k
9 i7 L2 ]+ l2 ` if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
) m$ ^& N8 _4 u3 J {
) I4 f, m/ g1 x+ d' P( j // we need add more check for the edge selection
3 c2 _8 Z* F. g, `) s( p for (int i = 0; i < selectCurveGroup.size();i++)5 I: @7 H0 j. W. z/ _
{: I/ Y9 C5 k# R1 ~1 N' X/ u
//////////////////////////////////////////////////////////////* J$ A# q7 H# T9 F
Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));( Z8 N. l1 O) |! _& v7 I# a
if (selectEdge->IsOccurrence() == false)
Y* _- D7 p: y, R, d% g$ ~ {# E) m7 m; n2 W& T! f) B) ~
selectedEdges.push_back(selectEdge);- j8 V+ G( p Z
}
+ E. ?0 R3 X% Y8 _( O else+ n5 S3 s' f& ?) p9 l3 N
{3 m3 |3 U B5 C8 A
if (selectEdge->Prototype()->OwningPart() == workPart)3 F7 V3 G) L R4 U
{$ h8 u6 b& y3 [0 S7 T: O
selectedEdges.push_back(selectEdge);$ x- ^( }2 B2 P3 S$ z# j/ u
}
2 t( Z; W: s* U1 { else# f- y% p2 M/ y2 R6 V/ G0 R
{
0 \0 c7 O9 T4 r4 ?2 y selectedEdgesOcc.push_back(selectEdge);
{4 n: i3 H* w* c }5 K/ m, |" P0 B T+ h+ D4 E9 E
}7 Z, k# c+ J3 o4 j& R
}4 h$ b# W+ e5 S2 i1 y
; S+ y# z- n* n1 M
% O# }# i# Z* N' u* x/ K8 h
//2 get composite curves
4 T7 Y2 l X# m; O6 [ if(!selectedEdgesOcc.empty())
$ v$ E, ]0 \( x9 P {* }" @! g- O& ~
errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
( z$ T. Q- a+ a if (errorCode || compositeWaveCurves == NULL)1 k+ n$ F+ C3 R& {
{' n1 _, S6 \* t( s
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!");3 k( j' E/ Q* }9 C* F* \
return 1;
* ] g: h. |* U Z0 Z. K! ` }2 P8 X5 [6 _; D) s" S @8 b
vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
8 o4 T+ s, i2 |( s# D; Z, J/ s
for (int i = 0; i < allCurves.size();i++)* u% P# T! z+ M; r- |3 ~
{2 Z% n- j3 W+ N2 D
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
2 m% Q F. @# x1 H% r0 d }( p( B. N5 T9 C5 M0 |$ A4 a
}
* O% V5 n, U8 @8 J) V! M2 u if (!selectedEdges.empty())9 v0 f, f3 `* ^. q; u& l
{8 n' }# F( G3 @9 u( ] O
errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
0 n4 C5 U8 a' }( X' E, o0 n if (errorCode || compositeCurves == NULL)
2 r& T& m. k3 k3 t4 S1 Z5 y {! {6 s/ U6 @( E2 ^& d% d* R# E8 B
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");
9 _7 p% P4 e M return 1;
! I* E/ }+ ?$ {2 E }& @' @/ M+ G+ H+ o6 w% D
vector<NXObject *> allCurves = compositeCurves->GetEntities();9 ~9 n$ J( |4 x: g
for (int i = 0; i < allCurves.size();i++)
' T3 X; A9 h0 |9 {5 y# K {% U( {. Y5 ], c" K8 }( s, H
sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));2 Z2 l5 c5 Q6 @2 A+ `
} ! I; _+ l3 N f0 {# O( ~
}
7 m1 Z. z0 \2 Q" x
# M3 U5 N" r. Y+ c- W# G+ W4 Q |
|