PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

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

[复制链接]

2019-7-5 21:20:37 1651 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,两个方法场景不同,这就需要进行分别判断。+ N* G" }( o  ^1 A6 \4 F
3 x5 u% @; C2 _* ~2 H5 A
紧紧判断是不是一个occurence还不够,因为在选择边如果零件是工作部件的话,这种情况wave link是无法使用。
# l; u! S1 A0 J7 h
% q) n8 M; V. C% V# w                        if (!selectFaceGroup1.empty()&& !selectFaceGroup2.empty()&& !selecTCurveGroup.empty())
& O) s+ x0 ^- O0 I                        {9 e. l0 ?/ b) }
                                // we need add more check for the edge selection7 a! W0 Q5 X1 C6 r& m- v- ^
                                for (int i = 0; i < selectCurveGroup.size();i++)
8 A+ g1 k1 Y9 e. i: U( |1 Q' f: f                                {: g4 }5 t' n/ L( J# j" |0 f
                                        //////////////////////////////////////////////////////////////
: Z1 b, t0 z) G* s5 \" X                                        Edge * selectEdge = dynamic_cast<Edge*>(selectCurveGroup.at(i));
' x; ], f9 q5 w  k                                        if (selectEdge->IsOccurrence() == false)  E6 F* z8 ~9 D" G. s9 q9 E- U- s
                                        {, j/ z: |% P' S  `- j0 M
                                                selectedEdges.push_back(selectEdge);- q% `' S! K; ?6 F' ?+ Q, w
                                        }- S' r0 K* ^$ w' ?' w+ L6 P7 J7 F0 t
                                        else: O( p+ ~$ Y+ Q
                                        {
0 a( j2 S1 u: o; `- ?  z                                                if (selectEdge->Prototype()->OwningPart() == workPart)# Y, w( y1 Z: ]) @1 e5 m
                                                {$ @4 f% u; i. e
                                                        selectedEdges.push_back(selectEdge);# U+ r! L" u' R* v$ I8 U6 x
                                                }' o3 R! K0 F4 _+ u2 W* ?3 o0 O  a1 m
                                                else
* j/ D, {3 @  @/ f& d. U2 X" Y                                                {
0 A/ J0 U# q* k& ~" s                                                        selectedEdgesOcc.push_back(selectEdge);7 c0 g5 c0 D& z2 N; ?
                                                }
' `- b8 f+ n' Y, [5 k                                        }
* B7 D8 M( {$ e  A: }) ^                                }* |( `5 |' H6 a

' C2 x/ v3 n# A                                ' N/ ^4 I. l/ ?3 l4 B  C
                                //2 get composite curves * U" h/ _, _( H! |
                                if(!selectedEdgesOcc.empty())
4 E, T4 @; \: U2 ?1 `: w                                {
; U& H9 g3 v/ d0 t! Y( J                                        errorCode =createWaveEdges(selectedEdgesOcc,compositeWaveCurves);
: a1 ]  ^- h* P+ A% H                                        if (errorCode || compositeWaveCurves == NULL)
3 W0 U. k. y/ {$ s9 _! a                                        {
( k  i$ s% ?; L1 m2 Y                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Wave Composite Curves  failed!");2 U1 O% A* m, @2 |6 E
                                                return 1;( J, }* E9 Y1 w8 F/ s
                                        }
4 d; S3 U) X0 j- G* y" ~                                        vector<NXObject *> allCurves = compositeWaveCurves->GetEntities();& s, w6 F- n$ K0 f! m

, B! x0 O% Y; x) r                                        for (int i = 0; i < allCurves.size();i++)
# ~! L2 T" P  }/ |: N                                        {: a" x6 Y! V6 {
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));& P/ Y/ p( B! o% U" d) m  ?
                                        }
: \# C% _1 ^$ Q. Y0 ^: Z! V                                }  G, H3 f9 F( j. q* z& \
                                if (!selectedEdges.empty())
* v) \7 ^2 f( j% l7 M                                {8 c) Z: ?# q. E( K, X
                                        errorCode =createCurvesFromEdges(selectedEdges,compositeCurves);
. T9 C0 Z6 Z( a7 U, C' J9 j                                        if (errorCode || compositeCurves == NULL)* Z5 k# Y$ T* N
                                        {
" j& ]7 {7 w3 U8 G6 E) Q- h8 ~2 [                                                CheckDTS::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeWarning,"Create Composite Curves  failed!");
) O( L$ C; Y- v  T  o: W                                                return 1;' T0 I" J0 h$ w; U: o/ c
                                        }
4 U  |* N6 P; ~. r                                        vector<NXObject *> allCurves = compositeCurves->GetEntities();
8 K. ^7 k6 }' u: }& Y/ B7 |  K                                        for (int i = 0; i < allCurves.size();i++)2 t" B- i" q' c+ I7 ]7 f
                                        {# y- E$ M( T' ]( H, i
                                                sectionCurves.push_back(dynamic_cast<TaggedObject*>(allCurves.at(i)));1 M; j3 s7 ?& d6 y
                                        }                                       
! c" D' v1 N3 |' D                                }6 ~6 N# V+ U% p( a0 R8 D
( l/ Z* G" h- e: {* T4 J  y4 W2 G- w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了