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

[二次开发源码] NX加工开发源码分享:移动选择的程式到其他组

[复制链接]

2015-1-4 20:20:10 2942 0

admin 发表于 2015-1-4 20:20:10 |阅读模式

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
) n6 I0 V/ d4 b$ ^: X) A- F( Z
* p3 I* D/ z, \static void do_it(void)* e4 [, b3 T7 p
{- N& H/ h! O7 B& q+ r9 f
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];! ^5 \4 l$ q8 |2 `, j" o3 V
    char msg[MAX_LINE_SIZE+1];
' ^& M) ^# K! k) a
" p% z/ L- I6 O  S; Q4 E    int object_count,
2 c+ A% h9 Q7 H" V1 C5 b5 T# n; [        type,2 [1 c2 U+ I4 \5 _8 [
        subtype;
' _7 j1 N; G# `" h; o& X   
8 e8 P. t1 H' b2 w0 m+ S/ I    tag_t
9 h# d1 S6 A! t/ t- \0 p        setupTag,4 I7 b7 c5 m1 }$ j( `/ k
        *objects,
: @8 z, d0 x* h* u9 M7 _        prog_root_tag,
  h9 C$ b2 f. `1 c& @: |        prog_tag;8 ~3 k0 ]: Y* y; V# @/ @3 A

' C2 N7 v6 v6 a5 F. M7 H    logical  is_initialized;' `6 d, M) N( ]; n
    logical answer;
* W( e8 f8 ]# s4 M0 [- ^5 ?. J8 i' o2 c+ j
, @& B, V6 M& q! Q
    UF_CAM_is_session_initialized(&is_initialized);
' O, u1 p- I  r5 [/ S2 M/ k4 f$ x$ x  [* K- I% u
) ^+ l& R' G: K3 \7 U+ R: {
    if( is_initialized == TRUE ): P0 |- B; r  y9 r9 q% `7 W/ Z
    {   
$ ]7 z( [( k9 x3 l) R        UF_CALL(UF_SETUP_ask_setup( &setupTag )); 1 @. H! Z0 Q" p! ~8 x+ `4 h
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
4 d' F$ q( P( C6 K+ ]
- m8 f$ L, ^& S4 N  // Find the pre-existing geom PROGRAM and get tag2 p; P+ o& E1 o  p4 b3 @' _
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
) W/ W/ }3 ?4 e2 W7 E, h  Z$ w. k5 m% V( t
     /* Get the highlighted/selected operation from Navigation Tool. */
- G& |- J9 e0 D/ M- K% O. p: O        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects )); 1 M; r0 k/ S3 K  k6 o& J# p5 u% G
( d) z; B, B4 b+ u9 b
        if (object_count == 1)6 b! W7 \0 M- v+ E
        {% T: g/ ~+ A. Y3 G
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));
: }; }# [( T( G1 p4 q' A  l1 P$ g3 u& b# r5 n
            if (type == UF_machining_operation_type ), j. g7 B8 G9 S0 M
            {
5 Z3 L! s* b4 K% I# g& I* n: K, T                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));
0 Y4 M' Z+ E+ o' k" }7 U9 w7 u                if( answer == TRUE )
( e& t' S5 S+ V7 u- _                {8 |( z. h  f# t3 G* Q/ A0 c
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );; w; x+ ~' w! o
                }
& e! H) Y7 ]) t3 N& i: t) y+ ^                else
; r0 |$ R; \9 K                {* f# d9 B2 ^: [9 v
                    sprintf(msg,"program group can not accept operation");) k7 s+ W& m% i6 Y3 I& B
                    UF_CALL(UF_UI_write_listing_window(msg));
0 P3 a% F6 y6 V, o4 k, q. _% z1 z                }# a) o. `) W; M) N, X* Y  }$ d
            }& m& V/ Z* b9 U9 `
            else+ W' y4 b1 D  n
            {( X0 _8 y/ u2 {( d3 B1 d
                sprintf(msg,"object type is not UF_machining_operation_type");
  u; l+ ~& [6 K! r* ?                UF_CALL(UF_UI_write_listing_window(msg));: V- K/ f+ d# R+ G  h
            }
: `2 E& s$ |7 G        }
0 B+ Y- t, x2 Q1 I+ h" a+ Z9 N        else
, u! u: L4 c) R        {
% X! M! e( V" q) t3 C# }9 _            sprintf(msg,"Nothing highlighted");
8 ]0 C+ [. Q% A0 I5 K            UF_CALL(UF_UI_write_listing_window(msg));
' X( R! A1 T" x        }' E2 t- \& v; e* d
  ^0 w8 q9 r5 \' Q
    } // end of if init
4 ^/ H# F; W' W0 T: o$ n6 L* y}
& O# e8 W1 }3 u# y/ r
% G- D) ?7 Y3 q) J7 K# q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了