查看: 3080|回复: 0

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

[复制链接]

4

主题

3

回帖

40

积分

管理员

积分
40
发表于 2015-1-4 20:20:10 | 显示全部楼层 |阅读模式

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

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

×
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
  F3 a7 Y' h5 b# ~+ C& n7 ~3 Z3 _0 e6 C2 e
static void do_it(void)
# E4 S5 ]* T" H' ~& b( ^{7 Z: m, s1 h0 G/ y6 i& [7 U
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
3 K) C7 f% H" N: Y9 d8 ?, v+ M    char msg[MAX_LINE_SIZE+1];
8 n' a4 h3 y6 C5 g3 {
3 x  C( Y/ B: z; ?  E5 _7 L    int object_count,
( @) q0 p% h. R4 _8 q        type,2 L' ~) D  U" n9 M9 ~! [
        subtype;
' g0 f% a3 ]1 k% I* J% @   
( \" b1 {1 V) l0 E  l) {2 j    tag_t/ b2 f4 c) m3 _4 ?* y- T8 T4 p
        setupTag,( ^3 {$ n1 B9 ]1 \" l  Z8 y
        *objects,5 c) \6 h4 ?2 W
        prog_root_tag,) K: ]7 _7 V) ~% y
        prog_tag;
4 a9 p; R3 ?; O9 G# C  F/ y, R) f6 D0 x- j5 E0 ~/ s* E2 p) S7 O4 i
    logical  is_initialized;+ H5 [6 f7 k! F1 w
    logical answer;& G( ^2 G4 Q; P
: ~% m3 |4 Y# E8 s. `
& j9 i: P1 e  g% w' g0 V
    UF_CAM_is_session_initialized(&is_initialized);
: J7 m& x! ?1 t/ T( c. {
1 t3 R, y) k/ R
9 b! Z8 c6 y& ]    if( is_initialized == TRUE )$ h8 \1 B# V) p
    {   ' P  n. g  P4 v2 I
        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
2 a- S& j+ o% v# Y) g7 ]4 E% W( A        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
1 B/ U1 Y$ X& t& W3 ]+ L/ e5 \/ j1 q" c+ K
  // Find the pre-existing geom PROGRAM and get tag; L. K& E3 D9 D! n
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));2 R# N3 u1 Y9 A8 d* Z6 o1 ~2 K
7 l3 D1 X  }5 K' @. P
     /* Get the highlighted/selected operation from Navigation Tool. */! {+ M2 Z$ s% i' \3 k
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
" f' A( `, H8 J: `" X+ h* [5 u( ?0 R" @
        if (object_count == 1)
% ^3 [& r0 N- E* r4 b        {7 {3 |! A% I9 ^; @- A. n
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));
$ u3 j+ s! i; u. j- h( H) y0 }! {1 {9 {
            if (type == UF_machining_operation_type )
0 ^8 \# V% R' h0 D, S            {7 w5 j) w! e* ^! z$ _" \
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));
! ]! S" h( L: ?* U8 S; C                if( answer == TRUE )( D  R; O! T( F; b# ]* f  |
                {
; ^" i3 T6 J- S2 l$ A                    UF_NCGROUP_accept_member( prog_tag, objects[0] );
. E& F) J' B! |4 {9 g                }
7 N) N  o( ?, r. _                else
( j6 o" L" R# b% K$ S9 {& d                {
8 V4 H: u  g( v0 |/ G                    sprintf(msg,"program group can not accept operation");5 N4 Q# [  K6 F! `
                    UF_CALL(UF_UI_write_listing_window(msg));: q. Y# o1 b9 O$ s5 B
                }
( D( @* `6 M9 h+ J9 G' U- c0 e            }5 m- [, ~( x" \) ^- J2 c# Q, P
            else
1 O# {0 U3 x5 C/ {* w% p            {7 \$ K7 ]0 J4 J. A" k' [, E8 y/ Y* t
                sprintf(msg,"object type is not UF_machining_operation_type");
$ w- D" V# U9 G  V( R" m                UF_CALL(UF_UI_write_listing_window(msg));& ], D# D' T, G1 M! z% b5 Z. ~
            }
7 q2 S5 }" j1 u7 P/ d8 H        }  p( S* ?6 e; v! n6 @% f
        else
6 @: W1 _" S) ?- w- [" L+ M        {
1 E; G' f, o# D# K; r            sprintf(msg,"Nothing highlighted");' x( H. N+ y, S4 ~% z, ]
            UF_CALL(UF_UI_write_listing_window(msg));
' U: y# `+ }7 {        }/ F) @8 ?2 f" P  n* ?8 B3 H. Q

. B. U  C$ [0 \5 D+ u0 c# Y9 s# Y    } // end of if init/ }' I8 q8 I# W
}
# e( ~3 B! @" a6 ^* F0 v# D7 H' z
5 U$ w- N* f8 r. F% B" P
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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