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 1632 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,两个方法场景不同,这就需要进行分别判断。
1 T: j) |3 t) ^
$ L, ?& z. S2 B0 B紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。9 O* a3 l( V4 ~- v% T2 ^8 ^. ~& k
& W' n  B- f0 e/ x) J! i
                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())4 T5 r7 d3 e: i' e
                        {+ t. `6 I2 D# \/ q, F
                                // we need add more check for the edge selection! N+ ^7 `6 T( w. C2 a
                                for (int i = 0; i < selectCurveGroup.size();i++)* I) ~! m( T- c- A+ Z
                                {2 P; |0 J0 P3 ^* N+ |+ ]
                                        //////////////////////////////////////////////////////////////( E% {  z; c9 h6 ?0 J+ d
                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
; O1 [4 ]1 r9 E' s5 F7 G1 x                                        if (selectEdge->IsOccurrence() == false)* `. x) z+ e+ a* V
                                        {
, x/ V5 u9 M2 @                                                selectedEdges.push_back(selectEdge);5 h' m) l; c/ U/ o) C5 L
                                        }$ e( \3 _4 ^% b8 G) V( _1 L
                                        else
: m2 m) {1 H; r                                        {* H8 G9 `6 h7 |6 M
                                                if (selectEdge->Prototype()->OwningPart() == workPart)$ ~7 g6 y: q) X0 `# E( Y( |" {3 O
                                                {, R! P; M0 C% y  c1 T
                                                        selectedEdges.push_back(selectEdge);0 m' d6 t' B* }# G1 N* c" |' t
                                                }! T) G3 ~& ^' P$ _
                                                else
( G' Z8 M/ z: q0 n4 Z# {                                                {
4 ]# }' Y+ d& B/ T                                                        selectedEdgesOcc.push_back(selectEdge);% E  g6 |1 ^' D
                                                }
5 _7 B7 I& }/ I% t! S/ F                                        }3 f' w$ i9 j- i; v" Y
                                }
( z' A! ]' K+ Q+ o3 ~' J
) u6 m5 C  [: A                                
" M+ A4 c0 s$ A1 f' U4 l1 z; C                                //2 get composite curves
3 |4 Q6 }2 V5 s* F2 R                                if(!selectedEdgesOcc.empty())8 o( Y1 e2 n& e- l$ [4 N8 d
                                {
- p; U3 t1 Q" Q5 Y                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);! Y$ E1 S4 y6 N; W% \$ k5 s
                                        if (errorCode || compositeWaveCurves == NULL)$ A# J+ l( {$ R9 d
                                        {
. ]( X3 n4 u; s9 n1 t' w                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");7 I6 C; S- r% T4 R0 [
                                                return 1;
  Q* o# g' ^8 \2 \                                        }7 M' ~" s' h" t/ Q& s0 k  v$ U/ {# p; x
                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
$ j4 O9 r+ |$ q/ s4 T3 a3 w
% n* l/ B. o$ a! n: q/ z                                        for (int i = 0; i < allCurves.size();i++)4 K& I/ b* }9 Z2 v
                                        {
; b6 o9 o& K; {# a% a                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
- U# `0 e7 F+ k9 Q3 V) F' ?! S                                        }- r3 H: @! `2 o
                                }7 P3 X7 J9 b8 X3 g1 u9 J0 }
                                if (!selectedEdges.empty())( ]% Z; T$ }3 P5 F
                                {
8 h$ l" w0 u% a. l; f: k6 u" N9 B& C                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);9 ~8 R: m- R; J- t" o+ x' T
                                        if (errorCode || compositeCurves == NULL): E" F5 N2 s9 q
                                        {
* D/ _. k  D& l, N6 }. s8 e; @                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");
0 G- N& T3 ^1 X3 C" `                                                return 1;2 m: K& M9 P) `# h2 r6 w# V
                                        }$ P) B. V2 C4 Q
                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();* ^& l) v" f" W, `7 r
                                        for (int i = 0; i < allCurves.size();i++)$ w) f" E# l7 @! e3 C4 u# v& h
                                        {
9 R2 n1 c& q9 V$ f% U                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));: r0 n* c: A. n9 L! m) b
                                        }                                        " F7 q( K; ~- R2 \% Z; q
                                }. [$ L0 C1 O9 e3 q

( S( Z6 X' X+ c% b1 t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了