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 1565 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,两个方法场景不同,这就需要进行分别判断。
- M0 [* H3 }$ G
, K6 w' P0 _! X紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。
( ]( h4 B' b+ f' N0 ?: R* _. u3 ]
6 n! ?' V* j( e( @8 u                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
4 `. F/ y+ s: M( F, e                        {
) B" r7 F1 K6 J+ F                                // we need add more check for the edge selection- x1 B7 W7 x5 |; a0 R
                                for (int i = 0; i < selectCurveGroup.size();i++)( g) \* A  N* f) L' W
                                {
9 m) W, V( V, |$ q- o% w8 {, Z3 |                                        //////////////////////////////////////////////////////////////
. ~- ?8 Q7 P. T! C" f5 y                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
3 z9 Y; O! r! r. c  `, m0 c8 Z                                        if (selectEdge->IsOccurrence() == false)  V' l- o3 G9 Y! @9 _0 o
                                        {8 A; F2 Z* D5 a, y
                                                selectedEdges.push_back(selectEdge);9 y$ Z+ B9 P& D9 z) n* Y
                                        }* R! H3 [# G* _) i
                                        else
& \' V. h/ @+ e" e+ V% t/ L                                        {
/ J$ |7 k* q% `                                                if (selectEdge->Prototype()->OwningPart() == workPart)8 R2 z+ c- e0 R
                                                {
0 o; X4 B# s! c0 C% |                                                        selectedEdges.push_back(selectEdge);
+ K" M0 W0 ]& K1 v  q                                                }# W+ D- {) n' M9 F! x3 D
                                                else, |3 [+ r9 I* ?! q! h
                                                {  h; e7 j' u' n, P& H/ f1 \+ \8 P
                                                        selectedEdgesOcc.push_back(selectEdge);
+ p' a3 }: M- {2 J; I  }                                                }* d+ m( p, Q% h, q& N
                                        }
# S5 z, a5 L/ E& r) G                                }
- B; `% L- O+ ~8 _* b- B
6 d' P# A! Z  c; e+ }; s                                * N4 ?& q" M) c5 ?: ?' T  W6 ?+ o% u$ k
                                //2 get composite curves   F" j% n% K% R
                                if(!selectedEdgesOcc.empty())( {/ x# S: Z1 ]. a6 s
                                {" r$ R& \- k8 G! R
                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
) B+ `6 N- u5 E* `1 S5 b) L                                        if (errorCode || compositeWaveCurves == NULL)7 `# Q. z8 i! a$ b+ V5 }9 g
                                        {3 V1 ^6 [* `+ q% ~# l# Z" X- e  [
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");* N. z, ?3 Y% J8 X3 y
                                                return 1;+ V0 q: H  L3 `* `
                                        }+ j# x5 \. u& W+ Y* j
                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
8 X! Q# F' v, z
* i  n5 Z1 S5 \- _                                        for (int i = 0; i < allCurves.size();i++)
( K. D$ |1 R5 z1 k. v3 ^                                        {
; w5 `* h/ o& K# t  t3 D9 _+ E' [                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));# S3 l( i! H/ d* t- a4 w2 U
                                        }7 Q; p' o. i; s1 ]
                                }
( q, x+ @; Y% L0 M- U+ M! {                                if (!selectedEdges.empty())# _" |$ b7 @' m$ w& b9 R: _+ X3 o
                                {& k/ A* K8 s+ f2 \# M" P; Z
                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
, d2 i, K0 W" ]! N5 @& f4 K+ W* @                                        if (errorCode || compositeCurves == NULL)) w# v$ i) q" o) Q; A
                                        {
% S) e2 o/ x1 R3 _9 R+ S9 Z5 r                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");
6 l/ e, b; h4 w# I$ G" |- G. t                                                return 1;
* S& u2 [( n( q8 X                                        }! e; K: C6 V) E5 a
                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();
7 p- F8 \' E: U/ _& O                                        for (int i = 0; i < allCurves.size();i++)1 ]' y4 l3 Q" `
                                        {2 d2 Q) h- E3 K+ z" m  [
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));5 q, ~$ O: a0 |: C
                                        }                                        9 ]8 \6 U  l) G2 y& I; H
                                }
( D1 Z* {. T4 N: H5 N! [" W- k5 c5 d, M- Q5 k7 p* Q# d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了