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 1623 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,两个方法场景不同,这就需要进行分别判断。8 @2 ?- Z/ M2 |7 z2 S
. a* U. r0 q6 Y& y$ d" n
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。. E* s# Q1 i. m6 H$ p9 {) r

' Z. Z) G; R2 X6 I/ q/ o, J/ l                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())$ E1 `! c: x$ j6 t, h$ ^. a
                        {
" \/ M$ Y* I# l  j                                // we need add more check for the edge selection$ f. V8 K$ |" Z( {. g$ B
                                for (int i = 0; i < selectCurveGroup.size();i++), {' Q, F/ }! a. b
                                {
$ T7 _" v- W5 z                                        //////////////////////////////////////////////////////////////, h9 X$ D5 n, W" s8 V6 f0 k( P
                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));4 z) |$ O! l) s  z" S6 p
                                        if (selectEdge->IsOccurrence() == false)0 o- U3 R; c( d5 b+ n
                                        {) S$ N  x3 i! h- U& g3 ]
                                                selectedEdges.push_back(selectEdge);9 w5 c! {+ K) ~2 Y' S
                                        }
) Z; [* Z2 p: e) d                                        else; E  w3 `3 ]: m
                                        {2 T1 U, a7 I6 t" b4 m
                                                if (selectEdge->Prototype()->OwningPart() == workPart)2 }# U1 L5 `' Q2 a$ c% S
                                                {5 b* b; ]" G2 y0 }# M
                                                        selectedEdges.push_back(selectEdge);; }' D" z3 l4 B0 @
                                                }( O& @8 A  K" _5 l. Z; v
                                                else7 V) v7 f3 ]7 C7 ^" Q, v
                                                {3 G6 N7 j6 ~# v& i- o7 X+ Y
                                                        selectedEdgesOcc.push_back(selectEdge);
9 }4 Z9 f5 o4 A* v                                                }: z: g$ O" }- n& C4 u
                                        }7 a- F/ w" T5 z) b2 V5 \! o9 D
                                }% r) [7 P: }- Y4 O! a- T( H$ B

5 G- d* o5 Z" M+ v, s( J+ {) P                                ) E* ~9 A1 m& l! |: o' C) S
                                //2 get composite curves
1 z1 Z3 j' o4 x1 d, ^- u' w0 `( w. ]                                if(!selectedEdgesOcc.empty())
! Q5 @  W9 E3 b                                {
9 @; E/ [0 q% Y: h                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);8 c: L4 W' R. R8 D5 C9 L8 O
                                        if (errorCode || compositeWaveCurves == NULL)
' e0 c  [5 L1 O/ c                                        {& ]* a% |; N7 C  v' E. k8 F2 H
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");
7 Y+ y- f) Q# n                                                return 1;! N$ B5 z  D# Z6 M
                                        }
* ]/ p1 G9 `7 L7 k- C                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
: S) T$ K" N: I8 y+ N' K. F( F' b+ e1 U$ E& a4 t. @
                                        for (int i = 0; i < allCurves.size();i++)
% r( I1 e" j( O! k/ c6 j0 }; O% P+ `                                        {2 ?; R0 G9 T7 U* p7 m0 C1 h  |2 T
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
0 b) _% W$ u' |# H                                        }
0 ?- r. X. j$ k3 `- i                                }/ j1 I1 b- m6 g# j8 m- p8 t: @
                                if (!selectedEdges.empty())( n* T& M3 U( {! k
                                {
' T' d( I2 M# y- I: _6 ~1 R5 U8 F                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);* N  h- ?% ?$ C
                                        if (errorCode || compositeCurves == NULL)7 \) E( @- i& E) o, C6 M- b8 {
                                        {7 j# z6 T0 i3 @" x
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");) s* _% Z: w7 R# q4 o+ v% S2 J+ @% ~
                                                return 1;
6 b2 `' B7 S% F. K; n  F                                        }3 u; \8 u$ K" l% a
                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();- ]3 U3 X: V: [6 c; j
                                        for (int i = 0; i < allCurves.size();i++)
& o+ ]) ^, W) }) Z0 T                                        {
/ N1 |  b7 s7 w# A0 q, @                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));6 e3 U4 C9 b" ]  F* J, a5 Q
                                        }                                        7 G7 U3 O7 c% N
                                }# \2 B# h6 W4 D: Q
9 d5 n( C- L, e5 H8 O: @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了