查看: 3212|回复: 0

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

[复制链接]

4

主题

4

回帖

52

积分

管理员

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

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

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

×
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
/ a+ |( l5 S8 Y9 E# ^4 Z, n
( R& d3 V) m* [5 k# Zstatic void do_it(void)1 O- v$ w6 u/ `9 @* ^
{
+ M5 d; s' v  t& H5 }# u4 b8 h    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
4 v5 U" x6 J/ a7 _$ O    char msg[MAX_LINE_SIZE+1];. V: U5 l/ i- C! x
+ k1 K+ V& r6 b  x' f
    int object_count,4 N5 ]/ c$ y+ X* g/ [( k5 E
        type,
$ A, N" L, V& X0 A) G$ W$ G  q) E        subtype;
, `# q! n, E* p! w    - F/ w' z6 F+ K$ u8 c' l
    tag_t7 E4 X6 C7 t8 |1 f, e( j9 h7 t
        setupTag,# e' O- V+ U! l5 o4 Y: H7 x. ~) H1 f
        *objects,
- X) R$ _0 K. n" C        prog_root_tag,7 e; I( Z. l7 p' B) [" }2 T
        prog_tag;
0 m6 w  L4 H% [+ f& ?. G/ K/ p* u, G; ?0 ?: Z. N  K3 h0 a& ]
    logical  is_initialized;8 B  U% a- S0 v! T
    logical answer;5 _" D" R- u' k- _, q0 O3 |# n9 s
$ S" |( o0 R; |3 g) p. O
8 N, ^) q/ F3 ]& g4 w! p6 Y
    UF_CAM_is_session_initialized(&is_initialized);
- i) T6 T- j* u: \8 t9 s' I5 C
  i* r# a1 m1 B: M. k
! T' ?* H7 I9 H# a6 g    if( is_initialized == TRUE )5 Y) J& I0 R# _3 s4 T5 t
    {   
1 g, l0 |+ W: B7 r        UF_CALL(UF_SETUP_ask_setup( &setupTag )); 6 o$ f8 X+ U- r* k
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));8 B, M: F) c6 G3 W, f3 k" F7 H

% V# p0 A- G- W8 N  // Find the pre-existing geom PROGRAM and get tag
0 Q% `0 m! g& P8 W3 p        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));8 J- y+ @, ]9 o) W2 U2 c
5 c( ~4 t. r: z% m7 [# c! ^% }
     /* Get the highlighted/selected operation from Navigation Tool. */2 W1 ]: W3 o* t  d
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
! H; ?( v, n' p0 j  H
. V" w. ~' l) q+ u  B8 `4 n        if (object_count == 1)
% y+ v0 I7 \# p9 n; p$ Z        {9 l0 O  a7 Z& O
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));- C) `3 N" Z7 N6 V* x- u

: X1 d7 D' n8 ]# T/ K; Y: Q- Y; H            if (type == UF_machining_operation_type )) J4 ]9 U2 M# j# o4 y
            {
" Q' B0 }; ?3 H7 Y5 W                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));$ {! Y# }7 {4 O$ ~
                if( answer == TRUE )1 S! c- i1 b7 L
                {- g& p/ N- i6 x# n0 R. L+ |
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );
9 }6 u- F5 o( a: {) Q  K" u4 M. p                } 3 \! b- y6 M! `
                else , p  B' `* L0 Z5 z9 g0 `4 Z$ H
                {
$ @& _& k, O" J0 p- k                    sprintf(msg,"program group can not accept operation");$ f3 r) A7 B2 I9 }7 t: F2 g: {
                    UF_CALL(UF_UI_write_listing_window(msg));
' ?# J7 T5 ]" ?' T. ]  c9 ^. }                }( Z1 M' _$ W% L+ l1 r3 g
            }
. @) r- p& z: `& \            else
; P- X- M, j) ]! x- I, k            {2 e6 m5 ]. e) _# T  W9 d
                sprintf(msg,"object type is not UF_machining_operation_type");6 Y3 w9 {( J& F3 k) v
                UF_CALL(UF_UI_write_listing_window(msg));
2 h# E0 G/ q) a, W            }6 U5 l$ E9 k$ G
        }/ a4 T+ `& Q1 M/ p# v8 [
        else
/ F; u  P  B" T: ]        {
- c' v. t2 L- v0 y            sprintf(msg,"Nothing highlighted");
9 Z6 V  e0 Q9 n6 m            UF_CALL(UF_UI_write_listing_window(msg));
5 O+ G# p8 c/ o% I        }$ I% a1 K! S0 N/ j% L, h: e" B& F

# ^; O3 S. S5 z- P/ L& M    } // end of if init
8 ^) w3 u8 g% W' Y5 W7 r/ o}  q; J$ \  x- e; Y/ a3 v7 L
$ b3 \5 x8 g& ?2 H
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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