PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

2019-7-5 21:20:37 1617 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,两个方法场景不同,这就需要进行分别判断。$ h3 W4 U6 N, @8 S% K! n/ j2 b
1 @$ u& c* H0 V# n% L) K
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。6 ?( ~# x/ |; {. `

  d4 H3 n, j* n1 Q                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
5 P9 \: o5 o' d1 {1 @- _) h, ]                        {' w0 ^% l2 S. r: q+ Z8 V% g
                                // we need add more check for the edge selection7 q; A; `+ v) o+ r! n
                                for (int i = 0; i < selectCurveGroup.size();i++)
$ y( ^, u. G2 M; M& ~/ b                                {
1 w  G- r/ v- K) z                                        //////////////////////////////////////////////////////////////
2 B4 {& x, Q$ l2 J( B/ j                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
1 X5 D1 r: v; d, |% C  h0 E                                        if (selectEdge->IsOccurrence() == false)
" ^/ W6 h" N- I! F! q, F                                        {
1 C: ]9 O3 G2 i; I3 Q" Q                                                selectedEdges.push_back(selectEdge);4 y% O$ v! J5 N% z
                                        }
+ g! n6 g  P5 x/ k3 X                                        else
; v7 N7 q% c* o& ~: h                                        {
1 F% L) [1 A: V2 u: z                                                if (selectEdge->Prototype()->OwningPart() == workPart)
; M  X+ L. |$ P! Q                                                {- O) ]. @& d. Q6 U% B- C
                                                        selectedEdges.push_back(selectEdge);4 b2 S% \! u* |$ B/ j# a
                                                }
  q( q/ |' e: t8 k# o2 t, N$ r7 Z                                                else
$ ^% b- m; j6 u5 o4 i* ?# T, ]0 n4 j                                                {8 @. J" V4 h, T8 a& `+ `% b# s
                                                        selectedEdgesOcc.push_back(selectEdge);
% Q! ^9 P! U9 G$ Z/ D9 T                                                }
# S/ ?, k0 Q  r" ~% o( ?                                        }7 z+ F: t  G+ g$ j: @+ B" x2 N% \
                                }1 p+ d& Y$ w7 |% {7 h0 |9 r

/ ]6 r) Y! ?: }7 x& i9 \1 }                                
: N, ]# y3 p& _5 G  h                                //2 get composite curves
2 Z: f8 @2 g" |* M9 x                                if(!selectedEdgesOcc.empty())/ ?3 S( ]7 u* @& `
                                {
& ]2 }- v: c% E+ r: q6 H                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);+ H& T, o3 j4 P+ e
                                        if (errorCode || compositeWaveCurves == NULL); f; r$ n( h- j) }( d  ]* o, U+ P
                                        {% r; ?1 D. u( s. C- v/ e
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");% H, H" V) n' `9 M, d- B+ S
                                                return 1;
) M* {$ ^  O; ]6 i0 o0 l, c8 n                                        }
9 b( C: I5 c: X4 B- i                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
' o/ c1 r  B. M, F9 E+ [
$ D) m8 }& [% O% m% p0 `/ }                                        for (int i = 0; i < allCurves.size();i++)7 k: {6 ?+ h% `' }
                                        {
- t% }: k  g- ]) o$ v                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));# B9 Z4 b. F, m9 q; a, p* @
                                        }0 Z+ b& _8 e5 ?( N$ m
                                }# p: p. I5 n! f* }/ Q
                                if (!selectedEdges.empty())
7 A1 N0 R5 d5 n4 s. O2 d                                {! C1 d& M! Z, J
                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);) t& F* C0 [. B4 G! }) D
                                        if (errorCode || compositeCurves == NULL)
- u1 O" n* @; T                                        {$ T6 l5 W1 s3 v
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");
6 ?8 d9 J$ {. @5 N                                                return 1;
6 ?& y' ^" o; C5 P5 G5 z                                        }
4 ^5 h! R, O* S, k; C                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();+ E% C( t! L$ v0 S. F
                                        for (int i = 0; i < allCurves.size();i++)
/ _7 n4 _9 v9 k$ f( Q$ }4 G/ Q7 \                                        {
" D/ V7 T2 T' Q                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
" `, ~/ m" q7 ~1 x7 G) b" l                                        }                                       
7 Q) T( k2 S  N0 ]9 m) Y                                }
" s& u# y0 W4 k. ]) u7 p% U; g% H8 n$ O  z5 s3 V: a/ n8 p
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了