PLM之家PLMHome

[资料] 装配和单个零件混合模式下Composite Curve曲线抽取实现方式

2019-7-5 21:20:37 64 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,两个方法场景不同,这就需要进行分别判断。
2 H4 n! i. q! _! }/ G; Y$ `5 B
1 p8 |7 s, C# ]2 S. \紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。% E( v( |- S  Y- v5 \

1 D, ]% c* l- d% n                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())9 {" H) b9 w6 t7 _, v4 E. C
                        {
( j% y: R- I/ C7 f& `% P                                // we need add more check for the edge selection
" a- s8 v6 ^# Z+ ~$ X( k! ^' [                                for (int i = 0; i < selectCurveGroup.size();i++)
, q9 A6 w' ]+ \5 c! t0 n                                {5 u5 D8 x! ~) M/ m
                                        //////////////////////////////////////////////////////////////
6 u7 v* L/ ?1 X6 |                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));* ?+ ^- W2 _; U" t0 H
                                        if (selectEdge->IsOccurrence() == false)
! {# E8 C% i7 H- S) C6 f+ A# s) Y                                        {
+ V7 p7 y" o: K- `( a5 x                                                selectedEdges.push_back(selectEdge);
+ g9 G- k, z3 v                                        }0 G& z7 z  a' L' g4 {' _
                                        else& {& }" m! ^- \+ |% M( N
                                        {
+ O1 Z; L8 \( Y, L- z# N7 U4 V                                                if (selectEdge->Prototype()->OwningPart() == workPart)
5 }6 o: q  h5 U' z8 h                                                {- A3 l: j. k# H/ f  a
                                                        selectedEdges.push_back(selectEdge);! ]) o* T( e% W8 q# @
                                                }
: ]5 E+ b% Z) Z                                                else
7 n5 h+ p6 R! @                                                {
0 V- {* h2 x* E5 p* ]                                                        selectedEdgesOcc.push_back(selectEdge);
3 P3 D( h# z: F- r  ^" o; j9 `                                                }
' ]! G( X0 D( C/ ^                                        }
. x% H: L0 v9 {" O. }                                }
+ F  ?6 V- i: m1 c
( w0 L; q, u/ d5 y2 J( A+ g( N                                , x: \7 S5 d. o2 u7 |5 i
                                //2 get composite curves % U" H* I# A7 L3 A8 t+ a
                                if(!selectedEdgesOcc.empty())
. C. E1 B3 k( \2 v                                {
  W  x0 z1 P. E, ], a: W                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);8 e: F/ i6 m* B5 v6 n
                                        if (errorCode || compositeWaveCurves == NULL)
- I, y# E  `8 Q3 j6 Z% t4 [5 l  D                                        {
5 `: ]% Z+ S; a                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");
% c5 a4 v; B+ f- R" A6 l7 f% A                                                return 1;4 `/ j, M6 M1 I4 K- Z
                                        }
$ w+ z8 Y: U0 c0 l3 [3 g                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();
: a0 I- l  m. |1 c' v
  s, K5 s: J/ g: H( K, }1 h: _                                        for (int i = 0; i < allCurves.size();i++)
9 `# |; X8 ^5 [- L% W( X" T                                        {
- T8 |, {$ X7 \7 ^5 Y                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));, J9 X: p/ l( y" P% w) {
                                        }
6 I- S0 ^- ?- K5 y3 S  d5 K                                }
0 m; c1 b, U8 k- z8 F8 H                                if (!selectedEdges.empty())
1 ~$ Y: E/ g0 {                                {
$ V8 A% Z( O6 J/ x& W# v+ V; k                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);, Q2 j1 j( `, _/ S, j; L+ ^
                                        if (errorCode || compositeCurves == NULL)
. k$ g. E. j& e                                        {2 d% M% D2 }2 Q, D- U
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");9 E5 A6 b# i2 ~4 q& g
                                                return 1;1 g9 L) B# u3 @; h/ D+ P# Q
                                        }5 M# A- K7 x! _8 p- p9 c
                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();
- z+ s$ {8 `4 M: j0 U                                        for (int i = 0; i < allCurves.size();i++)
$ A& y  f/ }- f2 ^* I" |# e1 P  y- ]                                        {( @: z* Q& s3 q
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));3 b& |. F' g6 _
                                        }                                        3 C8 X' D8 L$ h' g9 M! r) q& d
                                }9 b( S2 i$ k  `9 @4 c2 M% [; A
2 t9 G1 U) y3 S; q5 m3 u3 R/ a
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

用户组 : 管理员
邮   箱 :xduniverse@qq.com
手   机 :VIP用户可查看[申请]
Q   Q : 点击这里给我发消息
性别 : 就不告诉你
主页 :http://www.plmhome.com
个人介绍 :原西门子NX高级教务员,10多年NX培训,开发咨询,Teamcenter培训实施等

主题2199

帖子3429

积分65198

  • teamcenter12启动问题

    各位坛友好,请教大家一个问题,teamcenter启动时

  • PLM之家NX插件V8.0.0.

    PLM之家NX插件 ============================

  • Teamcenter12.0 汽车

    Teamcenter12.0 汽车解决方案TcAE 入门教程 *

  • Aras Innovator 12.0

    Aras Innovator 12.0 安装后界面实在不敢恭维啊

  • Tecnomatix 二次开发

    Tecnomatix 二次开发 软件版本匹配表 不同平台,V

  • 关闭

    站长推荐上一条 /1 下一条

  • 发布新帖
  • 在线客服1
  • 在线客服2
  • 微信
  • 客户端
  • 返回顶部
  • NX讨论
    Catia
    TC讨论
    Tecno
    云课堂
    业务合作