PLM之家PLMHome

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

2019-7-5 21:20:37 219 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,两个方法场景不同,这就需要进行分别判断。
; H, a# V1 i' M3 d- B6 a, R% [0 D0 r6 S. _* t9 K9 h4 W- J4 ?
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。* ^  B: I$ f! J: y+ x, b
+ s/ c; q6 h( f/ M5 O: n
                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
# I* g" h2 |9 j* ^# S                        {- v* B7 y. `) ?
                                // we need add more check for the edge selection: {1 \& c/ |/ a/ a9 n$ C: D
                                for (int i = 0; i < selectCurveGroup.size();i++)6 L% c, D. n, T& C! c( x
                                {( |. E* v. j0 h+ t* w- a
                                        //////////////////////////////////////////////////////////////
2 ^/ a. m) j# V( z: S5 N- w9 n. `8 V  Y                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));+ a# ]9 O. O3 a* {( V
                                        if (selectEdge->IsOccurrence() == false)9 [: B5 b  h5 _  T
                                        {
) l; a7 ]8 z& A- _" R6 u                                                selectedEdges.push_back(selectEdge);6 D+ Y/ {- H* e: h9 m
                                        }
8 C9 G9 f' d: @9 M# f, }                                        else2 A- S3 n/ Z8 o8 @# }
                                        {8 L5 h5 ]) z+ p
                                                if (selectEdge->Prototype()->OwningPart() == workPart)8 z7 l  s# l/ o8 g$ F
                                                {! d. ?" M' e+ b2 I& x4 q
                                                        selectedEdges.push_back(selectEdge);, M; a2 _9 K% _9 b; @3 d
                                                }
* Q2 r( |( I. y$ E                                                else
$ B5 [' ^7 @* m                                                {
; G* F# f' {3 I0 s7 n8 ^                                                        selectedEdgesOcc.push_back(selectEdge);9 o* |7 S0 k  O" {& j4 U2 W5 ^
                                                }* e0 T, m: B# K% t2 v
                                        }
+ K- k1 C; O! Q2 b" u                                }: C1 r6 i- N) j: \( N. W( A

$ |/ S7 H2 l/ z. {9 G                                ( F* e6 V% X: U# k
                                //2 get composite curves , s* x5 ?6 [5 s# M% b
                                if(!selectedEdgesOcc.empty())1 r- `  g1 I# p( k; ^1 w$ k8 e! D
                                {
3 W2 V! Q* c+ S& Y- M8 a7 \; g                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
' E' S  w$ }/ J. _( y% Y                                        if (errorCode || compositeWaveCurves == NULL)4 p9 m& `1 _5 ~- u5 |- N. x
                                        {
" F) C7 m( X% \$ g                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");, `3 Q+ ^& L+ V
                                                return 1;5 _+ a0 m$ g8 K4 L
                                        }1 z3 [* Z, g9 R, L4 ?- t  n1 |3 D9 z
                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();) k2 N# X* [' k5 E6 V+ B
- Y! B3 u; t; _; Z0 \; f! S
                                        for (int i = 0; i < allCurves.size();i++)
7 b* o- [  S+ w9 G                                        {* Q% Q. v8 H9 C/ x4 `# x$ y3 }) O
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));1 `: p3 u% {( |+ D
                                        }
$ p; `- o. _$ F/ w                                }) O- \- z7 I; g5 y( j1 e
                                if (!selectedEdges.empty())
" u& T( R3 v$ I6 _2 P                                {
3 ?0 ^: g0 A8 A2 E6 }                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);* F0 j+ j9 C# V* O( Z" f; m
                                        if (errorCode || compositeCurves == NULL)
- G% i. L$ q0 {: R2 x5 i3 V+ K                                        {$ N! U, E2 u; u7 \- ~% S2 ], D/ C
                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");* y+ h/ R$ w9 v9 t) V. ~
                                                return 1;
. a5 E$ ?1 P  D4 l- S$ _1 Z                                        }% n4 i1 r/ k2 O& X9 B( a8 _1 r
                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();
4 q3 i9 W, ~( X/ Q0 U. _2 J' r9 p                                        for (int i = 0; i < allCurves.size();i++)# I. N% F& T6 I7 p6 P# D4 W
                                        {
# J* K+ k- w& F8 _$ H( o                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));
" h/ g7 b; _; B1 S7 K# l( u                                        }                                       
! Z* M8 i' q, f: V. [# Z' l                                }- R5 Q( Z7 i( I- K# R/ Y" D2 J2 A
- I  ~6 U- V5 h+ i1 G- i' H) 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培训实施等

主题2257

帖子3492

积分66379

  • 一个简单的登录和注册

    一个简单的登录和注册HTML CSS开发页面 登录代

  • Tecnomatix 二次开发

    Tecnomatix 二次开发入门教程 3 第一个hello plm

  • PLM之家NX插件V8.0.0.

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

  • Tecnomatix 二次开发

    Tecnomatix 二次开发入门教程 6 实现打开PLM之家

  • 官方文档,NX12 使用

    官方文档,NX12 使用 Python进行二次开发相关配

  • 关闭

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

  • 发布新帖
  • 在线客服1
  • 在线客服2
  • 微信
  • 客户端
  • 返回顶部