PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
' g( T  @# a0 m) Z' \4 P1 l! s2 j
. }8 A, X8 r* c% j9 [* @/ [static void do_it(void)
( P! E3 R3 ]; ]/ M% D8 N0 V1 o" F: ^: z{9 l& }) `. ^5 W3 v" k; X
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
7 s( J& Z( U9 _: |9 Z! z% l* q    char msg[MAX_LINE_SIZE+1];
( k8 C3 g$ ?6 k2 l/ f/ b9 |5 U  Z* C. [. o& H! h% O* P
    int object_count,% G$ v4 ?2 o- L0 j) r( D( K. `
        type,
7 _$ R4 m. R  C6 Q2 ]        subtype;+ @' i& V) g, f$ u, N8 Y
   
: G0 w2 I( K0 Z) f    tag_t
. T/ C" V# _2 D        setupTag,
  w) [% _; p) E$ X+ U        *objects,4 V; u- k, |* W: i1 A; ]
        prog_root_tag,
8 i. g0 X/ j! K$ ^: S5 @2 o& Z        prog_tag;2 a" C, F  Z+ h

( d' Y* ?  C2 W! E, o2 Y2 Z" k    logical  is_initialized;
1 r# v/ d1 Q7 ^; [$ Q4 j9 d% I+ w    logical answer;
  u9 }, w7 n. Z/ p- F, t" K/ ~
5 G- q5 Z# X" R7 I. U! p, ]% h) I1 w1 f* S8 ~
    UF_CAM_is_session_initialized(&is_initialized);7 c; B, h9 S( Q% @% ]1 E
' ~5 ^0 \0 ]+ s9 C& A; C: v, \9 W

/ `) Y! h5 |. U- l" o" u  m9 Z0 |5 F    if( is_initialized == TRUE )
8 k) A- r3 _. m/ j    {   7 f9 M- O, c( ]
        UF_CALL(UF_SETUP_ask_setup( &setupTag )); # }5 O6 P3 [) B) R: I/ ?' A
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
* X$ j8 W; D% |* k- `& I8 t1 @' J
7 V( }8 s. {. y% ?2 [+ A' a9 L  // Find the pre-existing geom PROGRAM and get tag; w2 Q0 R1 o$ ]! \* g
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));# _  t/ Z+ ^! p. w$ M
! s, U8 J  U! V- X
     /* Get the highlighted/selected operation from Navigation Tool. */
( E( X. P# s0 Q. e9 p& }) m        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects )); . o9 I2 L5 N  c4 D- v  @; x
( d/ y2 A) b( D1 G  F) Y
        if (object_count == 1): b; S, K$ U2 k: W) ?' C
        {+ x% @( }* B- [
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));4 a& \. N. W+ Y) E7 X/ T  V9 x

+ x1 }1 e5 ^$ z            if (type == UF_machining_operation_type )/ v) E/ V3 V" B, L; }
            {3 M& ]7 F4 i1 m6 P4 y; e$ `
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));2 f6 S, H/ e: h; [
                if( answer == TRUE )
) l& R0 Q& o/ @: C3 g9 @8 U                {8 M, h. w5 ^- ~$ j% n7 H
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );
: j+ N' L' h. r" g                } 5 D# U3 z( y: {, ~+ L
                else
+ p9 a6 o- g" x4 z9 j                {6 I9 q9 G5 J3 `+ t
                    sprintf(msg,"program group can not accept operation");3 O( O; A* F! K6 S, ]. H
                    UF_CALL(UF_UI_write_listing_window(msg));% v3 _( Z# J% C" B
                }9 N2 m! ?# c6 ?5 B
            }
% K- O+ K( U( v7 n0 Z            else. T2 D' _! L; W8 c+ o& C
            {. y' z/ x' N+ [7 {. w; z; l4 m
                sprintf(msg,"object type is not UF_machining_operation_type");
' M7 p) [1 f/ v; i, N6 a* B                UF_CALL(UF_UI_write_listing_window(msg));1 V4 g& Y$ j/ q9 Z2 k4 N
            }
/ s+ f% s2 Z. [1 ?3 Z( z        }
& T' e& V1 ~/ m        else& C1 ?. a" O  N+ c9 A
        {
! m3 Q& [( G4 S5 U            sprintf(msg,"Nothing highlighted");- h" E/ Y2 [: ]
            UF_CALL(UF_UI_write_listing_window(msg));. N0 f, z2 M' K. s! Z. O# Q" K' O5 i
        }
, C/ G  V' Z, B. _& R4 E  H
6 Q# A  Y# {9 X2 N$ F  r9 |: c    } // end of if init+ d; ~' b; ]5 Q) }6 s
}
) E9 K1 ]: J- S5 x& G, t4 k/ D1 U" e  G' _/ D' z) J! V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了