PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

2020-9-26 21:49:38 2964 1

admin 发表于 2018-6-20 18:50:29 |阅读模式

admin 楼主

2018-6-20 18:50:29

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

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

x
0 G9 ]# r# H1 q( _
NX二次开发源码分享: 创建 镜像 体
2 k% H+ m. C, C4 g2 `. ^) ^: [7 S, F3 c
默认的 JA 有个 bUG,这里看看怎么处理的!!1 i, P$ \* b8 ^% s( h
7 l' i$ V; x% L- `% F, Q

* G3 T: C2 w" i2 W  R$ s+ k$ W; ?int IR9027488::apply_cb()
2 T7 Q5 a$ c% H- D) V6 Y% w) q$ S/ Z{
: o: l: F) N' H; y/ ~% K    int errorCode = 0;, d6 C* h0 O$ A/ J
    try
" B0 j( E5 |9 R$ L6 R4 I    {
# B/ e5 h# p& }        // AIW - Begin: q  k# D2 {1 Y$ H
        tag_t body = selection0->GetSelectedObjects()[0]->Tag();; t- [" x! f; t
        Plane *thePlane = dynamic_cast<Plane*>(plane0->GetSelectedObjects()[0]);  d2 @* q; f8 K; G
/ C& E" H. y# y* K# `
        NXOpen::Features::Feature *nullNXOpen_Features_Feature(NULL);" a, ^3 D5 z7 w' K1 m) Q
        NXOpen::Features::DatumPlaneBuilder *datumPlaneBuilder1;
0 x# a4 N- |0 B3 |$ \" \        datumPlaneBuilder1 = theSession->Parts()->Work()->Features()->CreateDatumPlaneBuilder(nullNXOpen_Features_Feature);9 _+ l& ~0 d- i  w

: B: y# |# z! c5 P6 {3 X        NXOpen::Plane *plane1;
* r2 Y: b& W5 {) i% J+ Q/ R1 |        plane1 = datumPlaneBuilder1->GetPlane();
3 @6 x5 h, f! u/ U* e
+ S1 ?  g0 {& S+ Y& e! s        plane1->SynchronizeToPlane(thePlane);  // this is new in NX11.0.1
: K4 E7 W4 m+ I        plane1->Evaluate();
$ Y# ]0 S) G* a8 D& q  r% q5 s+ ^8 Z
1 R8 U0 @( B: Y8 {7 f        NXOpen::Features::Feature *feature1;
8 B. x. H) z) V, G        feature1 = datumPlaneBuilder1->CommitFeature();
+ c, }) q$ t: u& w" K$ a( E, D5 B6 Y  r, f% M" _  R: c6 D
        NXOpen::Features::DatumPlaneFeature *datumPlaneFeature1(dynamic_cast<NXOpen::Features::DatumPlaneFeature *>(feature1));3 x& y2 ]2 {0 m4 n$ D% k
        NXOpen::DatumPlane *datumPlane1;
2 c: V) E) E; C  I1 j        datumPlane1 = datumPlaneFeature1->DatumPlane();$ z% e/ D  B  Z$ B' o; K
4 E* m0 k- H0 N8 K3 g% _. l  m
        tag_t mirror_feat;
- D8 f  i4 F) q% r7 f/ S7 b/ F) a        errorCode = UF_initialize();
1 b. m! h$ R2 l( q5 f/ ?+ }8 J        if (errorCode != 0) throw NXOpen::NXException::Create(errorCode);
  \( m5 G2 P# k/ ]$ e# e
5 l1 N1 I3 ?# _$ K! e1 \/ _/ T3 A$ o        errorCode = UF_MODL_create_mirror_body(body, datumPlane1->Tag(), &mirror_feat);1 k2 R% f% M/ V: D! L
        if (errorCode != 0) throw NXOpen::NXException::Create(errorCode);6 K- Z1 b6 l+ B
        // AIW - End
6 K+ z  W3 s; u  N% ^: {    }" u# K# v' x7 Y
    caTCh(exception& ex)) f& X$ }3 y% ~1 r. e& y0 u8 s% v
    {' l: u/ a* Z3 o$ {, l
        //---- Enter your exception handling code here -----
; R: D  I' \: Q; g; H9 r        errorCode = 1;
* j: ^. M: E6 P; k; D# A        IR9027488::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
6 C# r% x8 }2 w& Z7 L    }
# I- ?% ?2 S7 Z7 B6 q    return errorCode;4 p8 M; b' g# f8 {
}
8 C, ~0 q. ~% [3 w7 {; ]8 D+ z, n; Z  D9 g- k8 k* f! L! n- L
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

licxsw 发表于 2020-9-26 21:49:38

licxsw 沙发

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.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了