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 1624 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,两个方法场景不同,这就需要进行分别判断。, h% q! ]+ x" c  h2 I; [# E
" |3 `# D* g+ W, U% H% c3 j
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。
4 g! I/ Q& {- }9 B/ E8 w, s  z! l! {/ b2 b' n. M
                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
4 w( W+ u, p/ P* T$ i* g$ z                        {
3 d, }+ @5 O& |- [5 }# P* [                                // we need add more check for the edge selection
$ T1 m6 P6 `( G" n4 e; ~4 z                                for (int i = 0; i < selectCurveGroup.size();i++)- C5 ~3 o. P, S, S* T
                                {% X1 A1 @- V2 C0 B4 V
                                        //////////////////////////////////////////////////////////////+ n0 q2 j0 f+ h, ]) F
                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
5 x4 O# V7 a" R2 ]' R  l6 Z( @* X                                        if (selectEdge->IsOccurrence() == false), J4 q$ `7 z, m, D1 |! l5 D
                                        {
0 d' o1 k8 d/ f/ o. b                                                selectedEdges.push_back(selectEdge);8 f* }& Q! T* ]% c; Y; [
                                        }  |9 i2 Y; C& z! J2 k9 v, I
                                        else( F% T1 l4 M) r" b1 |+ f4 \8 U& Y
                                        {" D& _' g% B! t+ R" b8 q# ?
                                                if (selectEdge->Prototype()->OwningPart() == workPart); F0 p3 Q+ s4 q0 D  p
                                                {
( J- W  c, O- c" y' f2 P4 }; G                                                        selectedEdges.push_back(selectEdge);
: m8 |% @8 x4 G% [$ E4 A& L                                                }
: k: W+ T2 [6 S; A3 I- f; L# h                                                else
3 r3 ], l  a6 t) Y5 k                                                {
6 A# r7 A& W/ T) q- K                                                        selectedEdgesOcc.push_back(selectEdge);3 p$ j' i- m/ g% e+ Z: |; i4 E
                                                }2 @2 q: w- D- d. ^1 \; k" }
                                        }
$ C0 u" E. K7 z6 r2 t                                }
- |0 `2 ~% J. o
7 C1 _* w" J9 D$ C: ]8 k                                
" W% r. \; U. v2 R6 k! G& {                                //2 get composite curves
, }8 |0 x8 n* d8 w8 z* G                                if(!selectedEdgesOcc.empty())" z7 M8 k. m! `# m9 r7 _" @
                                {
: a8 I( D* ?1 r$ t3 W! h                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);6 k$ ^& u7 B* M
                                        if (errorCode || compositeWaveCurves == NULL)& N2 q( |, ^7 ]/ D  Y
                                        {" h5 [5 G8 {% f# F
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");
* E$ v. I& \$ d0 t/ ]* D                                                return 1;9 ^* w# Y$ d! S) `, D3 D' Z1 D
                                        }
/ N: K; j" u4 f& ?! [) Z2 x                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
% H! O" s6 b3 K# @- O0 K% B1 q0 T7 k7 f! v6 l  e9 h
                                        for (int i = 0; i < allCurves.size();i++)) k9 Z; Y7 l+ h! Y% X5 A
                                        {
" a, @5 D0 @0 e$ J. |6 ]                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));; k$ E4 v$ b" e# x
                                        }
' _2 m: I8 v$ T1 L7 U, }( I8 E                                }
4 {  Y7 L& T' f6 O+ j, ~                                if (!selectedEdges.empty())
) d6 h* o' v9 {" {" n: B                                {
! i7 `# _( `6 ]                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
8 v2 k2 g, F! `/ i, V, s" M% A                                        if (errorCode || compositeCurves == NULL). k( _/ D; k) T- G, k
                                        {
) T# B' X* G( T8 s. V: s  A                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");0 z- u0 C5 ^1 Q: ~" @
                                                return 1;
* ~& p) J$ S+ D% Y6 E* m                                        }) V7 K+ l& O8 ~1 r0 `' s
                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();
8 m6 l( e6 H1 l8 T/ ?4 U                                        for (int i = 0; i < allCurves.size();i++)% G8 t) j! N6 q0 \; A! t
                                        {
5 ~3 K8 r7 H0 O$ @  H7 v9 B                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));: s* Y) L- @) L& _; A
                                        }                                       
. m% \. f+ u. E! E: l( O                                }
: T6 {+ V$ @& z
1 M( q# ?2 z0 v3 l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了