PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。" c# Z& d4 }! I7 a( B
4 i1 O/ [! N6 c; x
static void do_it(void)# c* Z! }3 V3 ^
{
/ S' h9 g7 V/ A5 Q( p8 P& Y' N& x    char reason[UF_NCGROUP_MAX_REASON_LEN+1];7 r! x2 g! {3 W* z$ c! |, |
    char msg[MAX_LINE_SIZE+1];: b' i! X& O' X/ j8 w8 ]
; O! O" c5 s7 M- Y" l# E% V6 K
    int object_count,
: A- X8 `; ^% M# ]% G& E( L8 N        type,
7 W4 ^, P5 k. E& c2 m6 ]1 ^        subtype;" ~5 e7 B. f- p- R
    + |- M0 O5 X1 q6 s/ ]+ q6 b
    tag_t
% }/ x5 \) |, V; O# h4 M7 W        setupTag,
; E% j, S; M6 l! E        *objects,
7 G8 b' g' v( L; J. d  V        prog_root_tag,) D4 F! W3 G# `# }. r
        prog_tag;
# [3 B" ?. m4 [4 ]) O6 {) I/ v8 N
0 ]4 I9 c# ?% v2 w    logical  is_initialized;
9 _; m' f+ H. M; T* c    logical answer;
4 {4 Q# }% V, f- u* r% y+ l" g: g' H+ V" c! D  D7 }3 j

9 h3 |/ ]# J0 B0 U9 E    UF_CAM_is_session_initialized(&is_initialized);
! X6 j2 T9 R0 \, A8 P; d/ w
9 H- M. k$ ~5 G6 g- I2 l" N* e; S6 I1 U
    if( is_initialized == TRUE )' ~& c7 Z5 ?" O6 S
    {   
$ O% Z# D6 M; Y" R% j' `9 i        UF_CALL(UF_SETUP_ask_setup( &setupTag )); 0 x. Q5 w! B  K; B
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));* {9 B8 _# ]9 {1 w9 ~
- L" }) L! C( h: Z4 Q* V
  // Find the pre-existing geom PROGRAM and get tag
( m; v8 V+ H6 o: d) ^- X/ Z        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
% d, B# |# J9 j% I- J7 P) A$ t% z% a/ c
     /* Get the highlighted/selected operation from Navigation Tool. */4 ?$ k1 F8 S$ `; z+ G
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
5 _& p( x; t$ ]' t/ s5 x7 H: B3 R
        if (object_count == 1)
/ P' z0 V6 q3 r" Q  j* e3 ~        {2 l) o/ {# v( m- Z7 Z7 h
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));
* R  `& |' t, {- p! f
5 W+ K0 S' q7 D! t: p            if (type == UF_machining_operation_type )) d) j) W- s, A; {/ ~. c& `
            {
) q$ s& ~0 E5 @# ~2 k# R; t                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));9 _; M  V3 w/ r" Y' K& e
                if( answer == TRUE )$ F" j; X* P) n* r
                {1 i: ^4 D  ~2 K$ r8 }& M
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );/ q4 E2 _, U/ T% t7 I
                } & T/ q, G  v9 d: R& j
                else - ^  ?2 K+ K2 N
                {! V* r( p; X' S2 ]& X. J/ I& h, n
                    sprintf(msg,"program group can not accept operation");# ^" q. ?, O$ l" x  w
                    UF_CALL(UF_UI_write_listing_window(msg));
. I: J+ j* r1 V5 P                }) L% f  [$ `8 c5 g; I/ S
            }
$ R/ X$ A7 Y$ b( J' K. E            else
/ @: ?) w& I2 Y/ B! t. y            {" O  X; C+ f" r: a, C, R) m
                sprintf(msg,"object type is not UF_machining_operation_type");
& {2 c4 j6 m: I- e                UF_CALL(UF_UI_write_listing_window(msg));; h9 u3 j* Y& G1 P+ a+ f! Y
            }
; {- l" n! P5 Y& M8 t        }9 _$ [2 k" r* d1 {3 T& F2 a2 J
        else
7 U8 Z; k/ w% e2 I1 |5 S        {: j4 p! B$ |- I/ T9 M* p! I
            sprintf(msg,"Nothing highlighted");
; x( Q: u9 e/ r& p            UF_CALL(UF_UI_write_listing_window(msg));; I4 Q" m% a7 c$ ]
        }$ _% o+ M5 N$ ^# T* y
$ k9 N# K! y+ f6 Y0 ~% }; l
    } // end of if init
1 f% l+ p$ [& c4 `" U. ?9 [}
( N6 t, G( x' ?; `$ x3 k8 n9 h' @$ u* y! L: g5 ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了