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 1460 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,两个方法场景不同,这就需要进行分别判断。" x; w, J! `3 @$ m* H* z

7 Q7 z3 K  F. z紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。
+ f; }! N; M/ L2 e' n
3 T7 d# M  A) A, E- X                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())* B1 c: F& U) V; _. |
                        {+ \9 G/ k- _* s. h  U9 d
                                // we need add more check for the edge selection
" {* c5 p& ~0 V+ |" V5 i6 ^9 N                                for (int i = 0; i < selectCurveGroup.size();i++)0 E6 R( o, K; J$ f2 y8 B1 a
                                {
. u: a: j+ X3 h" c. k& y' _' y* F2 T1 _                                        //////////////////////////////////////////////////////////////
. W' N4 I# t* N' S5 D% S                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
% H7 x6 L$ E4 c6 a  M3 i' L                                        if (selectEdge->IsOccurrence() == false)! m9 \# c. W1 X) D
                                        {
( p$ V( _9 B4 `1 u7 x& _4 _" o                                                selectedEdges.push_back(selectEdge);
  s* V1 R, W3 z# y, c6 \                                        }
3 V6 l8 y& `0 d4 U% V' i+ [$ l( ]                                        else0 D/ _; Q' a4 c" A% E
                                        {
: [2 M: ]' Q7 e: Q+ j3 M& E' O                                                if (selectEdge->Prototype()->OwningPart() == workPart)
, B3 P7 X8 h; f+ w& o- a" g; o/ ^                                                {
. C" u% N$ j( @. T0 J  M                                                        selectedEdges.push_back(selectEdge);" a* v; N6 n+ q+ [9 N
                                                }+ ~( J2 ]1 X) H1 `
                                                else
9 Q0 F8 T) T2 A9 Y  L6 w) t4 J                                                {
" c7 j/ g+ I% T6 \' w3 L                                                        selectedEdgesOcc.push_back(selectEdge);* P2 l! H, E% H) |# j
                                                }0 X, e, A- h6 m0 {( J8 \3 Q
                                        }
& m: ~* }9 H7 U! u. u4 X. \1 P+ A                                }
8 Q. m3 m# [/ w! v8 P
, b' @( \6 a' M; E0 S- W/ z                                
! g+ f5 w9 }! N# |2 C                                //2 get composite curves
  o& f8 P- g8 K  }& E7 u                                if(!selectedEdgesOcc.empty())
: b9 y& j( P9 |, p1 }3 c( S' x                                {% G) K3 w$ {# M. P1 F; \
                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
# g6 a. j, e5 ^3 s                                        if (errorCode || compositeWaveCurves == NULL)( |0 A" h! [' D' N3 a9 U; @
                                        {) C6 H; a. ^6 H1 N( u/ J
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");
. P. G" f( i( z4 ]8 n                                                return 1;* ^- W# R9 G: o) H" o
                                        }2 H! l) k4 _9 `; D  I3 j% `; Z
                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
+ u4 c. Q- q( X
  u. U; o( M$ P                                        for (int i = 0; i < allCurves.size();i++)
; L2 \& X( g; n5 W) U+ s" i                                        {
5 H6 Y8 n. v' |+ A) B                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));. B" \# n1 B0 A. A
                                        }
. k4 f3 b, w; W. q  O                                }/ X9 t* X# n5 g, |
                                if (!selectedEdges.empty())3 j, b8 x$ G# O& \: F1 ]
                                {$ n+ {6 Q8 {# k8 J# M9 M8 E4 I
                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);5 j- ^" H, Z* c5 u1 e
                                        if (errorCode || compositeCurves == NULL)( z3 K* V. h1 Z& S9 s7 G
                                        {+ f& W; J7 i! F# w* ~2 U# T
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");5 I& l3 i; \  U
                                                return 1;" Z6 M$ }' r9 L: B2 V
                                        }
  X& ~. {- H$ U  }! e9 h                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();
# N8 r8 ~# v/ K                                        for (int i = 0; i < allCurves.size();i++)/ }3 _' t! J! m9 F0 g
                                        {& G8 c7 F0 y" o% G9 G
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
- e* n; b7 T) C, v% P2 w" h                                        }                                        + u' h% ~5 t; s3 G; E) M/ c2 n$ q+ O
                                }6 q1 M+ K. L! n; h, W" f
6 l$ L6 w1 K* t4 a2 @8 e, M* ~% a* U2 ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了