查看: 3274|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

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

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

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

×
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
. H4 j1 Q+ _! z: D
" o! k- Y  Y" f' L' c$ wstatic void do_it(void)
2 C8 I( I5 N: v& n{
. s$ O: A1 ]5 o5 A! O    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
! v8 E; ^% |0 P8 e& o' e% l    char msg[MAX_LINE_SIZE+1];: U  e$ K+ a# t9 |+ ~

/ [9 y) w1 [8 ~# A0 ]' j5 A! V    int object_count,
4 B8 A) a8 G5 T, x9 R5 x        type,
. D2 q/ M9 \* i3 h( c        subtype;; k# C" Y! n) y
      O4 z8 @6 _. F' y) `& ~; T
    tag_t# x" D  Z: N7 S( ]
        setupTag,' a8 @) _4 z8 m8 n2 y
        *objects,4 ~4 s% `& }6 ?* X6 i" M
        prog_root_tag,
2 r4 {5 P' y0 F        prog_tag;
  Z6 u! ~+ c" o) {+ n. R6 @" V% c9 d2 q6 W3 C0 P
    logical  is_initialized;
4 f; }/ B, S' O( t" }9 l* a& d5 f& q    logical answer;: o( g. o! F- R

5 m! O: Y, C, ]3 r* X8 A# @- {& D+ v1 L
    UF_CAM_is_session_initialized(&is_initialized);# s2 [, l# N# l# ?4 S

- I7 C& @3 h% Z3 Y+ x+ |. ^& g: D  u( ~0 U5 n: [9 t" c
    if( is_initialized == TRUE )& B. e# m+ [  F  Y$ L; p& P2 L: R0 A' ?
    {   
: i; ^$ Y8 Q% X8 T! H# y/ |        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
% W( x3 l1 d; s; V. E        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
& }* u; N3 h; X$ z6 H- Q
1 w* E* t0 g7 s" J- p; w  // Find the pre-existing geom PROGRAM and get tag
: Y( O. B1 r$ W0 W$ F        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
' y, g  V3 k' F9 i9 m- G( Q4 |
( w9 x9 [3 C$ E" P( p     /* Get the highlighted/selected operation from Navigation Tool. */8 Z$ Z) N; n/ O8 x+ l
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects )); 3 T/ @) o* W. \* t- _

# m5 \) W% R3 l3 y        if (object_count == 1)" v: Y; U) e  h/ u# q
        {
2 r! A' T$ W( @' W7 \            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));$ |4 i( Z" r' T0 d5 c" h5 {

6 J! Z1 Y& {% ^3 F3 n8 b, U            if (type == UF_machining_operation_type )$ y9 G" r! n2 h
            {
5 _' L5 g0 R9 E, {6 q3 W9 W9 g                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));  J7 Y/ A6 O! h0 S
                if( answer == TRUE )0 i) e6 V  p9 K: _- F
                {
" X* N7 Y  C) q, G& z7 J9 U: |                    UF_NCGROUP_accept_member( prog_tag, objects[0] );
9 {5 R  Q$ U* ^                }
5 e8 T2 t5 x# h/ A                else / z; k' s9 B1 p
                {
- g) W5 S" d; M/ ^                    sprintf(msg,"program group can not accept operation");
; s8 W+ q% {% R9 g: w/ n2 x                    UF_CALL(UF_UI_write_listing_window(msg));0 a4 A& O  b' C# X" W$ W- q& E
                }0 H: p, m! B1 w8 a# d% `
            }) i7 x" f; o% s/ ^! v
            else4 [' W4 t' w; w' `& s
            {
0 S: g3 j% F& e1 _                sprintf(msg,"object type is not UF_machining_operation_type");# ?+ E8 H% T5 ]: d: q
                UF_CALL(UF_UI_write_listing_window(msg));8 W- N5 L+ ~( E4 P/ X+ R' D. f8 Y/ }
            }
: r8 H' Y% j. s* ?6 L3 K9 a1 P# r        }
3 ^! ?" Q: @8 s5 ^4 T3 Y* Y. @        else" x  ?$ A) C. W& V' X+ S6 D
        {
4 B8 W2 d( J5 b: Q6 O/ J6 D            sprintf(msg,"Nothing highlighted");
" m; D$ y9 a6 x/ r, _$ q            UF_CALL(UF_UI_write_listing_window(msg));' ]$ h: g: w: g6 S( A" o6 s
        }
' |7 O3 b/ ^% |6 \' k! `2 o/ y4 c5 w) B( c: w$ s5 k  C1 X1 t
    } // end of if init! q0 \: m% ?: O* x, _1 b' H
}( H& @6 G$ S% [6 c# i, R; `
, `$ `2 m( }4 u
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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