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 1459 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,两个方法场景不同,这就需要进行分别判断。7 \8 D8 y/ f" P. N# @; P- e5 ]

- o) u+ o. a& _7 y紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。- i* ?* O7 M$ V# H- w! B2 o

( j7 d! k9 r7 S- X! p2 W8 }3 @5 K$ T                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
7 Y6 m# M+ w6 i# ]4 @1 ]7 @; ~9 ~. V                        {3 J( r/ ^1 ~, @1 B
                                // we need add more check for the edge selection
0 M8 ]1 t/ O7 l  F* ?" Q( Y0 h                                for (int i = 0; i < selectCurveGroup.size();i++)3 {3 M2 G) `% I+ k1 x
                                {
8 m) }& y% a  y. K& z3 ^& |                                        //////////////////////////////////////////////////////////////
% t- j2 L! I, A/ w1 G, Z9 \7 T- m                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));' w; U2 |9 I1 K7 z' ?5 K
                                        if (selectEdge->IsOccurrence() == false)
* x% N, q( @. x* u, ?& P- Y9 {0 ^                                        {/ v- U3 q, q  @) |9 P7 g/ _
                                                selectedEdges.push_back(selectEdge);
2 c  A7 B+ \, K7 i; n                                        }
; D* Q: ~) {; F. A% ^                                        else
7 J" e; b8 i: i) T7 e% N- u: f7 c                                        {
6 _3 [# K) z8 k+ E                                                if (selectEdge->Prototype()->OwningPart() == workPart)5 |% b0 [4 o, i5 N! }3 O# z
                                                {6 D$ p: n- O  b4 {- j
                                                        selectedEdges.push_back(selectEdge);. p. Y5 i. J9 A: R
                                                }
: o0 R' w1 I: V* L* v                                                else* J  d5 k2 B6 c( _+ U- \
                                                {
4 z4 g. O7 H" P0 M' t: [9 I                                                        selectedEdgesOcc.push_back(selectEdge);
2 j0 @5 G" V0 b+ A: m7 p                                                }1 V# T1 \% w" o# @
                                        }
2 ~, j* |- F: b1 F- m                                }; I5 b. C3 p; Z) a( {
( N' W: s7 d% a( n: o( {' x: g
                                / r- C5 S: I5 c5 A5 _+ X
                                //2 get composite curves 3 I; _2 P3 h* r( f9 b
                                if(!selectedEdgesOcc.empty())# V7 z% \$ \: o2 Z: a* {" J
                                {
; j" c5 A% }% h6 T% j7 _6 l                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);, z0 r# Q! A% N* V+ Q
                                        if (errorCode || compositeWaveCurves == NULL)
# g( |( X$ T# f9 r                                        {6 L3 I3 d) G8 R# t+ V
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");
; H; L. f1 V6 C                                                return 1;$ C6 ~. `! E* v: n3 ~; v. s6 a
                                        }- G9 y% d8 b4 ?" `
                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();% f. r3 t: K% ]* ?7 K
( z* k6 n2 j1 e3 F; }
                                        for (int i = 0; i < allCurves.size();i++)
/ u) h# n3 W8 `- _0 H5 r3 u' Q9 J                                        {
1 {2 D( [8 {. E4 b( Q( _0 r                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));) {4 n$ I9 F: V, v" v2 J1 ^2 [
                                        }
2 V0 ^  Z, u0 W                                }+ _3 w7 A$ ]! _& b
                                if (!selectedEdges.empty())
/ K" [+ Y0 H; [! T8 [                                {, a$ K/ k# L1 ^$ {
                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
1 Z0 I/ z  K' f                                        if (errorCode || compositeCurves == NULL)' u: ~9 k* S& |! }, J7 M' k
                                        {
9 D* v! G; `. H                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");; H# Y4 V; y7 `8 F- H
                                                return 1;
8 e$ R3 [/ |! q# {* d% a8 V                                        }, j0 m: A  m! w: F* T0 h
                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();
% A: D2 q# y* v! O) H                                        for (int i = 0; i < allCurves.size();i++)
; n  X* p  `8 D$ a                                        {8 h: V( U5 {) S. [$ S5 s7 U
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));! |- o0 ~" F* O
                                        }                                       
6 q% {, f; Z) v5 W# x                                }
$ ?! ?. B2 M# |; K6 f: X) A1 U9 ]3 ~  z  D" 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二次开发专题模块培训报名开始啦

    我知道了