PLM之家PLMHome-国产软件践行者

[资料] 装配和单个零件混合模式下Composite Curve曲线抽取实现方式

[复制链接]

2019-7-5 21:20:37 1782 0

admin 发表于 2019-7-5 21:20:37 |阅读模式

admin 楼主

2019-7-5 21:20:37

请使用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
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了