|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
代码分享下,其实场景是这样的,我们要需要抽取一个边的线条,通过composite curve去处理,但是在非装配下,基本上是通过composite curve进行抽取,在装配下,需要通过 wave link composite curve,两个方法场景不同,这就需要进行分别判断。2 Q' j5 |1 t7 J
# j0 ^4 A, H+ H* t# X紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。# t: D; `+ ]$ N9 T
- d8 m( g3 L; S+ S0 c if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())6 D8 y+ }# n1 i, z
{
x8 l% j! v( i" X // we need add more check for the edge selection
8 Q' z g4 j$ J# c& h0 w for (int i = 0; i < selectCurveGroup.size();i++)
+ \4 j/ [* P% p% W {. W4 v2 F6 n6 v8 r
//////////////////////////////////////////////////////////////
, K. A: @# z# k% D- I) F- c Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));# M( B# o3 y# j4 L: r6 J
if (selectEdge->IsOccurrence() == false)
$ e8 _8 F5 B+ q B {
1 D1 J b- t& v1 b' ? selectedEdges.push_back(selectEdge);
! j+ m' L, X4 ?- i }
3 v' s- Q9 }. y, ]0 X1 g: l else
! B2 \7 [( h& K# }1 s: i- u1 A {
2 N8 X- `- ?+ Z( _9 D- d! q if (selectEdge->Prototype()->OwningPart() == workPart)
1 F- f8 q5 X1 ~7 B# p {
7 v1 Z) E- x6 T7 i O% f5 n selectedEdges.push_back(selectEdge);1 f0 l9 P3 k. r, I
}6 @- I n0 e9 n: c
else8 g: P8 A8 n6 I9 i
{
/ a' y0 {1 c( H# r selectedEdgesOcc.push_back(selectEdge);
: h3 e* U F9 V, r! W5 K }
3 O0 F8 z! W; h& @' Z T1 m; r }
- x" J. v- ~1 N: b$ R }
9 ^& J+ \4 p# M+ ~ K( Z4 X6 @% g" Q
; Y6 W* H1 G1 b0 _: i" g //2 get composite curves - K6 Q1 I' i/ w5 a- W
if(!selectedEdgesOcc.empty())
% D) P/ t4 {; M# H {
1 e# h% y# Y7 Q9 K0 }( O errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
" v) y U9 E T if (errorCode || compositeWaveCurves == NULL)$ u- @8 x c! d& z( m
{8 N7 @, B. [3 Q. X# K. p% Q( M' z
CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves failed!");
, h6 X! r1 q; e1 B return 1;
5 ~( A3 m0 ]$ [ d- C }9 B. G& O! B) @, Z: p
vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
+ }, x& k' n1 {
+ o" l0 s* a7 T" g2 p6 a. ~ for (int i = 0; i < allCurves.size();i++)( H" D' A0 z6 u, f
{
) O `& ]- ]8 \9 K8 y8 @0 o3 B) n sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
7 S/ O( c6 M7 ]# N" y1 N' [% S }
2 q) \& O. c% _5 k6 t. Y V; z/ ? }/ c( L( o+ V" F' ~2 Z) C$ d; L
if (!selectedEdges.empty())
+ \9 C& J; w l+ \ {( _6 T+ I, ?5 n
errorCode =createCurvesFromEdges(selectedEdges,compositeCurves); ~( V2 u5 ^+ T( v
if (errorCode || compositeCurves == NULL)' ^/ }9 {% o" S
{
7 g) f; @( v2 c' o& w1 X8 l4 J, p CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves failed!");
3 {' N# `$ }+ e return 1;
8 v4 s; g% }# u }
6 G1 _- M! t+ m# L. O3 L* ? vector<NXObject *> allCurves = compositeCurves->GetEntities();
6 V4 p" |# n9 M$ {" I9 ? g for (int i = 0; i < allCurves.size();i++)
m* _* A6 E3 q1 x. U% Y {
# [7 o% x2 V0 q* O) t" ~6 j) _ sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
9 g) G) n6 n( X; m4 g0 F$ v1 I } 5 X' a, e2 X6 g' E v
}( F5 Z4 u2 ~ e0 P( j& Y3 o
1 @4 ?- C; ]$ `( x+ x
|
|