查看: 3187|回复: 1

[二次开发源码] NX二次开发源码分享: 创建 镜像 体

[复制链接]

6

主题

4

回帖

60

积分

管理员

积分
60
发表于 2018-6-20 18:50:29 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×
& ], @; {, W' d7 I8 h8 g
NX二次开发源码分享: 创建 镜像 体 ' v5 Z: v1 g0 B$ F! k

: z4 P4 k6 A0 ^0 e' W默认的 JA 有个 bUG,这里看看怎么处理的!!/ h, g. G* x( `, v
2 v; G+ q( u# l5 A
- l8 N) i: C, T5 d3 z7 T
int IR9027488::apply_cb()1 d- E' m, P5 \4 a! l& W
{
/ t  ~# L6 @; p0 X; x1 r    int errorCode = 0;
, c! i. U' H% D    try5 F0 ~4 S2 G" x8 j0 w
    {
, \8 X5 N: h& @# ]        // AIW - Begin/ }1 R6 E& o4 i" Z$ {3 D$ `9 q% X
        tag_t body = selection0->GetSelectedObjects()[0]->Tag();/ H3 `5 }) _, ]8 I8 _
        Plane *thePlane = dynamic_cast<Plane*>(plane0->GetSelectedObjects()[0]);* Z4 _! M4 }( M1 g; L4 u# o7 P
# u' \1 @0 y/ F' ?
        NXOpen::Features::Feature *nullNXOpen_Features_Feature(NULL);
1 ~+ q" p! |! T' Y        NXOpen::Features::DatumPlaneBuilder *datumPlaneBuilder1;
7 a$ O* i; X% x+ g. P( x        datumPlaneBuilder1 = theSession->Parts()->Work()->Features()->CreateDatumPlaneBuilder(nullNXOpen_Features_Feature);- M/ K0 `9 J$ K+ |3 f, g+ t) y
* U9 x1 [. i* K$ Y& D& C- r
        NXOpen::Plane *plane1;
. Q* U! l: _3 `$ a5 K        plane1 = datumPlaneBuilder1->GetPlane();
5 u* X- y; l$ ]' O9 }/ N& q* G( R0 [5 z# D
        plane1->SynchronizeToPlane(thePlane);  // this is new in NX11.0.18 }! R$ c" _9 G7 W$ u3 P7 ^
        plane1->Evaluate();3 v, p5 A" B3 b" P& v( Q& O
2 }  O) O: Y9 |. D- _
        NXOpen::Features::Feature *feature1;/ V0 s+ d9 T. o
        feature1 = datumPlaneBuilder1->CommitFeature();9 \) m2 a0 M" B. H; F/ }5 l2 O

+ U, I. [% M9 n% a+ g' e7 R        NXOpen::Features::DatumPlaneFeature *datumPlaneFeature1(dynamic_cast<NXOpen::Features::DatumPlaneFeature *>(feature1));
' ^( d$ r* f: I- B7 j3 `        NXOpen::DatumPlane *datumPlane1;
9 ?0 c% g, j4 L) l" {5 ?        datumPlane1 = datumPlaneFeature1->DatumPlane();
/ R) Q  X2 T/ ]4 A& v
+ r7 @: V2 [7 t0 I  ?& u6 A: n0 t        tag_t mirror_feat;
7 @. J7 C7 T( O4 F4 |6 G        errorCode = UF_initialize();+ a. U0 i% j+ e2 c
        if (errorCode != 0) throw NXOpen::NXException::Create(errorCode);
# d; \5 X& k6 _5 \
$ u! O* |5 I3 h1 U) O        errorCode = UF_MODL_create_mirror_body(body, datumPlane1->Tag(), &mirror_feat);
( z- I3 Q3 W6 F; e7 e8 ]  s$ R: t        if (errorCode != 0) throw NXOpen::NXException::Create(errorCode);
! _/ R* Z/ K2 I8 W9 w7 V) a        // AIW - End1 G+ o, @2 Z2 t; p2 v
    }
  G6 q+ V) l, T! A& O9 B    caTCh(exception& ex)
. {& S$ U$ ^" O% F    {" p* U% u# f, n1 c
        //---- Enter your exception handling code here -----
& F7 Y* z; ^+ k: G' R0 Y/ k        errorCode = 1;
/ B$ P5 h2 G9 i# `1 o2 A        IR9027488::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());1 Q% q7 P) k  _
    }; V0 X: Q3 c% V. G' g; b
    return errorCode;7 M8 ]. P& b) L4 w: ]: g; F
}; A' `* E$ n( R) U- S1 W+ d
2 N( G  ~: _; v9 \: m
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

1

主题

45

回帖

203

积分

培训VIP会员

积分
203
发表于 2020-9-26 21:49:38 | 显示全部楼层
为什么不能用OPEN 直接做镜像 需要赚UF呢?代码中OPen的作用是用来获取基准面吗?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部