查看: 3115|回复: 0

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

[复制链接]

4

主题

3

回帖

44

积分

管理员

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

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

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

×
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。, z5 ?2 f) c. G2 o7 c
2 o! v# N, F( f2 E1 d
static void do_it(void)
5 g- h$ @4 y3 Q, J- k5 B" j$ ^3 l{5 Z  s/ k, Y: B: I- G
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
8 ~% u( m! `3 g* B+ ~6 r2 l- A: z) w    char msg[MAX_LINE_SIZE+1];
3 i6 z% c/ W/ l0 |( {  \) U% C: y
1 s! |' [5 v3 l% }    int object_count,
# [- V! M" S  Q8 p% h/ C7 X/ n" A        type,0 Z8 [2 ~5 ^5 J  s- D  l  p5 Q% h
        subtype;: ?' S9 |8 l0 q- z* _; d! Q) m+ c
    : A8 H1 ?; N5 E4 N/ c
    tag_t
" o* Z: m) B1 G        setupTag,+ L( q9 k4 e1 z
        *objects,
+ N7 Q& q9 Q( Y5 F$ j: w        prog_root_tag,, C& o2 D% m4 {5 e) n
        prog_tag;
* e, {, k9 n6 q: y( l, q6 ^* l- g2 d0 q+ v5 P( @5 l3 y$ f
    logical  is_initialized;
* r7 v. g( U* U- f/ g2 j% S    logical answer;
! ?  L8 n8 e% G' X$ l
$ R. D: B3 b& E* J" B3 M* A
2 Y" W1 M6 ?" v    UF_CAM_is_session_initialized(&is_initialized);. H2 q1 B8 H# L* o& Z9 T3 n" u/ \
% G% B, }' A) D  `/ M/ y8 I

; E- w; m! \; A, ~$ }& ]    if( is_initialized == TRUE )# `8 i2 j8 `3 a) T
    {   , I: b6 y- R, c5 f$ l$ F% }) U# V
        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
8 U- I4 E0 B) P* ^) q        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
/ o2 S2 k" @" F3 g- o6 q5 P$ E7 `+ e3 z% I* Y
  // Find the pre-existing geom PROGRAM and get tag  A/ B; X5 m# {2 v" [& `0 F
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
" o6 {5 n# D* X. ]# k/ e9 m6 p, }, K
     /* Get the highlighted/selected operation from Navigation Tool. */5 C  K" Z6 |( i4 @% p
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
9 {: N1 T; l! f5 r! F. ~+ {, U9 m) }5 n3 `
        if (object_count == 1)) c3 K/ b# W# z8 F3 a: {
        {9 a; |- y; W0 L5 _' [5 @: |, l
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));- R2 f4 \* a, Y' b2 k6 @
$ U, d6 ?) E+ a2 z6 i3 F
            if (type == UF_machining_operation_type )* H- w1 u) L0 R0 x  H
            {
/ e: X* J. l$ O* P% i3 f: k                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));7 |  o* X' J& n4 e" U: t# H
                if( answer == TRUE )
) e% D- {6 j( r& O/ Q% e                {
  m, v9 R1 J9 k4 g6 i# L" S# J                    UF_NCGROUP_accept_member( prog_tag, objects[0] );9 o  h  D! A. J; B9 t* M
                }
  ?! K5 J) X( p                else 8 g! G  x! E1 Y
                {
- T: C+ m; V! O4 K, l: _5 X                    sprintf(msg,"program group can not accept operation");% e8 [% x1 \: D" |& `
                    UF_CALL(UF_UI_write_listing_window(msg));
$ [  ~/ Z0 u( j, \5 J: h                }- p2 Q+ N% X* }# Y! b
            }
  ~( y# H4 F, u. j            else
: n) k0 ^2 r( W9 V5 K            {
- X7 l: \2 R9 p0 h/ n3 r" L                sprintf(msg,"object type is not UF_machining_operation_type");1 C8 V3 s+ c$ d
                UF_CALL(UF_UI_write_listing_window(msg));
# R, V. |' h& p" J% _            }8 O. u6 z; W3 k/ O
        }2 ]- \1 d6 C5 F" r: A5 h6 O0 D
        else
) I! g& h! V, o5 k* T& z        {. b9 K+ X2 |1 N3 }
            sprintf(msg,"Nothing highlighted");
% p8 g' i# c* x* ^            UF_CALL(UF_UI_write_listing_window(msg));- d: g4 u7 f% b) i) r( l
        }& r( g) d  S! C5 q

: {/ H; A  K1 {% ~3 Y. N, B    } // end of if init7 \9 C3 ^3 ?  `/ {( E  A; K
}" _9 Y6 l# a, c4 t0 b
% w# ?/ A: f, e# f/ l" |& L$ m
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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