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

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。2 n$ |% Q) T. J5 b

( |! r1 }: q( T# `  X* Dstatic void do_it(void)  c% O" k, B1 K. ^$ j( x* ^/ m
{
! r, T. }, Q0 Q  O    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
  Y7 D7 H% I) Z: V* C4 k7 S% O$ [    char msg[MAX_LINE_SIZE+1];, \. `8 B% O. _) S7 U4 S

) t9 e1 U- e3 b- j5 N1 D* J    int object_count,3 Q/ D8 F$ ^/ C  t& ^$ P
        type,$ _+ n/ t( v& S; X- L' q
        subtype;! q$ e$ _( d* Y3 @, Z* [. c7 m) c
   
, G) |& Y$ e4 @$ D    tag_t
5 X5 Y/ Y3 P* t6 M        setupTag,( S6 a6 B8 O1 F' Y9 ?0 }
        *objects,# E' `" f2 h# k8 N  i
        prog_root_tag,
* A' F$ b5 L2 H. j3 {# Q4 l" U        prog_tag;
3 U5 z' |; R1 X6 w. [, K; B' }6 m% j! V$ d6 U6 \8 L
    logical  is_initialized;' G+ Q$ c% h: |) ?7 q: e5 Q: v9 I
    logical answer;6 p0 v. k0 C) C2 t- d
/ _. \- n( v$ v! l9 f# V
) |9 ^3 V( C% K$ T2 h
    UF_CAM_is_session_initialized(&is_initialized);, M, c$ ~0 G- s- W( }2 Y

0 Q. u; ?' @3 |, ^4 V1 y& X# |! u; o. k. @* K! l; K! I
    if( is_initialized == TRUE )
% T9 E- ]. V1 m& U6 |0 E    {   
  E2 Z$ @6 N! m5 y  S        UF_CALL(UF_SETUP_ask_setup( &setupTag )); ! R7 h$ `" t6 i4 X) _
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
) b8 Q, G6 m% x6 C
: `) L) B0 {3 P1 }# U6 G  // Find the pre-existing geom PROGRAM and get tag2 ]9 b- M; M. h+ W
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
! s, }, q4 {& h4 h5 a/ O( B4 m. l0 u3 a  B6 b
     /* Get the highlighted/selected operation from Navigation Tool. */' O1 w! x  `. ^8 w! g- W
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
0 c: q8 h3 i3 p  A+ ^( l- W' r5 V4 c& b
        if (object_count == 1)/ Y  g3 M; i, e, ]! ~
        {
8 W% Q0 ~5 O' S            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));  Z  z% ]' a1 x0 V, h! p
6 N- ]; _; j' o$ Z4 C3 b
            if (type == UF_machining_operation_type )4 f' m# F# [6 Z) T5 D4 d0 j
            {1 V" b. J/ |" X& T( L2 H0 S
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));
% J3 a# l( |7 j: i# O                if( answer == TRUE )
# f) R. a4 I, V( \. \                {
5 C$ r% Z2 c5 D. R                    UF_NCGROUP_accept_member( prog_tag, objects[0] );
" f  m7 I# z4 ~4 G                }
! q1 N8 O0 n$ `3 v' v- Q7 F, j                else
! B4 u, I( c+ c1 R# j- B                {: y- V/ S  F- l" P1 M1 l
                    sprintf(msg,"program group can not accept operation");
% h# Z: x/ q. r                    UF_CALL(UF_UI_write_listing_window(msg));
( a& b. i4 E0 j/ N3 H                }$ I" U  O' F, d
            }
: Q' e1 z4 a4 A9 y6 {            else4 z$ C3 c5 g1 Q- M8 O
            {4 `% t' g5 ~" G* @5 `% w
                sprintf(msg,"object type is not UF_machining_operation_type");
; r# Z* w! Q" t7 E                UF_CALL(UF_UI_write_listing_window(msg));
% \& T. ^' b6 s5 j* r            }
2 g7 B# Y1 ]. v        }
6 Q9 Y+ l8 N. I" `0 C5 j5 b        else3 M4 O1 v* Z; x' H' _; d, x
        {
3 N6 [* C% n0 ]+ `# J            sprintf(msg,"Nothing highlighted");
/ G0 G/ o' t. o9 |8 p: a. t. k            UF_CALL(UF_UI_write_listing_window(msg));
6 }5 n8 [- O- d1 ~, a        }
2 D8 c0 J$ D9 {& E- _" f
+ _' b9 }0 U6 Y8 A6 L    } // end of if init& j7 X8 Z) N6 p
}
1 L0 j- Y+ \! O/ \* g. D
0 [& ~5 J9 W- k' h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了