PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。; k- d; k' h) e# v

+ D8 R& u" H- U) \% H; E6 b/ Zstatic void do_it(void)5 t; ]& ?4 g, P& ^( b! D( B
{. u; r, X1 D0 E$ n
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
3 u  \5 O3 w5 l0 c. B    char msg[MAX_LINE_SIZE+1];
! u) l) k7 ]/ P3 q# Q
: z$ Z. h/ q. _9 V  {! U1 }7 `; Z    int object_count,
6 G! `' k1 c/ X: w+ C        type,
0 k6 [6 Y+ ]! [9 _# T/ b1 t        subtype;
5 v4 C* r0 n& A    4 n4 R# e0 L# S& |2 F0 T/ h
    tag_t! I, `: o/ m, C# G! G6 I: V' j( @
        setupTag,
  @$ R3 u) m$ y1 K; A/ Q) H) w; X        *objects,
0 L) D  B0 p3 W. M/ _        prog_root_tag,
% w# |1 g8 e- F6 z( S. e        prog_tag;! i4 C( b8 P, `

+ K6 m; d( \0 ^* a    logical  is_initialized;9 M# k4 v& k6 X. Z
    logical answer;
1 k$ \( I8 i: ]5 t
/ v, b; ^# O2 k$ L- g, P
, d5 `  @# t0 z) f    UF_CAM_is_session_initialized(&is_initialized);
+ E) A' q3 ~9 X. O! }6 V. O& f; y2 i+ [3 F+ A# s( o3 w

7 A" u* |1 H- h+ K6 g- F    if( is_initialized == TRUE )
/ y0 N+ l: `& o& P    {   
. C, Y0 I6 }/ K! {  R6 F/ [: i) e        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
2 }, X5 n. }- H- Q4 v: Q( ^$ p9 g        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
( J3 S! p3 |* @& F; S: F3 e( i
4 c# b' p+ O6 q. ]  // Find the pre-existing geom PROGRAM and get tag0 @$ l9 S+ S$ k3 O
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));1 R8 W( t1 m! s$ X$ f
+ C+ Y9 j6 r# Z1 M3 F* j; L
     /* Get the highlighted/selected operation from Navigation Tool. */! I0 w" {' ]0 O* U% O+ X$ I9 x. t
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
0 K+ N8 f* J/ z) T/ a2 R$ \
3 T$ ]( u( h9 `* s# d  D5 r: J        if (object_count == 1)
- p2 H1 D6 }3 ~! v" n        {. X2 g1 F- `5 V
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));! P* H  [% v. j' o
8 N4 F$ @0 ]8 N  K5 y8 ?8 [7 K
            if (type == UF_machining_operation_type )
" ]3 c- c8 y) F# P& L- S& b            {7 w5 e) p3 K/ R% ]; a5 Z! ~
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));; ]1 E; O4 ^$ V4 ^3 c5 G
                if( answer == TRUE )
6 @  d) ?: h9 E3 |' `2 ]                {
% Y! o' T% ]0 q* |3 B( Q& o: z7 @                    UF_NCGROUP_accept_member( prog_tag, objects[0] );7 n* ]; T& O# i' B. y& G
                } 8 }  L8 I# O4 a8 I; [( j" F
                else - X) L- X4 i, m; w
                {
5 ^6 b  u; A$ I6 G. g                    sprintf(msg,"program group can not accept operation");) b3 v  H, d6 |9 r- ^/ `
                    UF_CALL(UF_UI_write_listing_window(msg));
" x, A5 Q. p3 D2 Z8 C1 y8 d                }& y2 \9 A' E8 S; z( S" o1 B. t# v
            }
, L9 t) L5 @9 Z4 O$ a# `3 [            else: S' {- i* [2 ~
            {+ W+ L" u9 m4 _' E5 `
                sprintf(msg,"object type is not UF_machining_operation_type");
. a$ ~! R6 ]. y                UF_CALL(UF_UI_write_listing_window(msg));
% b3 z& G1 q9 u& ]$ [& L2 l            }
8 A5 }( o5 Y  F. M0 e3 h        }- A' r4 Z: T& j' H- K3 _
        else# {0 Q7 |# e# f" |% u( ~
        {
* g: @( R% [5 u  Z" C            sprintf(msg,"Nothing highlighted");. Z/ @% K" l' \/ A0 Z* w
            UF_CALL(UF_UI_write_listing_window(msg));
2 ^1 h( y$ F4 f1 D        }
: h+ }; v, x- u* t8 {5 H5 `, Z6 K$ u1 f8 d2 M" ?
    } // end of if init3 J% p5 D4 w% O
}
) D1 c! M; k2 g# Q7 j2 X% ^' V! C+ n8 H# Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了