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

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

[复制链接]

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

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
: X& a) v2 f. }* ?# l7 t0 _) Y9 {* T  D6 J1 C+ e
static void do_it(void)
2 ~; V/ i. O* ]- [& x. [2 u{& ^! f, W! E/ |! N) A
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
( ^( {: z, I0 z# X# {- E, Y    char msg[MAX_LINE_SIZE+1];
- L2 ]! w/ H0 W' W' v6 n0 I! h: }: U/ e' n5 C/ l; o
    int object_count,
) ]3 J5 K0 N  G        type,
; u1 s1 I8 F9 G2 y$ f- N        subtype;4 Z" K3 G! `7 ~5 B1 w4 H) ~
   
* G- P7 W1 ~( b% q$ y5 w, p    tag_t
9 e6 |8 F/ f% S/ e        setupTag,) |( Q: R3 u, K6 B9 b' }& f% D
        *objects,' [" W1 B4 t  C& r" }  U
        prog_root_tag,. m7 I3 K: ?) N0 z3 W  v
        prog_tag;
7 G, ?' d3 N8 ?/ _# [) p* D1 O' [8 H: {- e8 c
    logical  is_initialized;" V* c2 i4 l+ B, [) u) i- V
    logical answer;: @7 u# `; b6 y' T) z7 ^8 A

' p* e. Y4 F1 O' P6 \# C
# r+ t: ?, c4 O$ R    UF_CAM_is_session_initialized(&is_initialized);) h/ p: M$ x7 a5 {+ G# \, w4 A
0 `: Q: b7 v' \
1 X) w0 U, G* s8 l) m
    if( is_initialized == TRUE )
/ r5 N. o" m& }. n6 X" z. O    {   8 S; ?+ i# I. X& {
        UF_CALL(UF_SETUP_ask_setup( &setupTag )); 0 }7 e5 @3 m0 p( w2 s+ Y
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));8 e  P' q5 C8 h( U; [6 c
$ s8 C' s& j+ X9 u1 q/ E
  // Find the pre-existing geom PROGRAM and get tag
; }% E/ I7 h5 a& R* ]0 Z9 H        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));. E7 \# v$ V. [
# B( U4 C: U  W) N
     /* Get the highlighted/selected operation from Navigation Tool. */
. H1 |* Y' Z! h; V: l1 J6 m        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects )); 3 @- G. z0 R! l% S9 P" W. |$ p
( ^# _7 [0 c/ v! h$ b. [
        if (object_count == 1)
% f/ @  J+ J1 E; |        {
5 ~( H0 l* |( q4 [            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));( I# V# M' p' }
. w% k$ H9 a# X. j* q* t/ s
            if (type == UF_machining_operation_type )' P# q+ @& s2 H5 b: I/ d
            {
/ S  B* ?0 f( U- h, m                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));) o- j8 f; B/ @, g
                if( answer == TRUE )
: X- {) J: Y2 m& m% V) q& Y                {2 N: h4 p; v' {2 V( C
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );9 [/ L# d! W7 n1 j+ y0 m  T, [6 _8 W
                } $ O# [$ _3 N8 C
                else
* R4 R  b0 n( }6 b" R! b( D' k                {& h  e# V4 O5 ]# y) n( s5 `
                    sprintf(msg,"program group can not accept operation");
0 l3 c  v' A8 ^0 C% z                    UF_CALL(UF_UI_write_listing_window(msg));
$ M: o& D! g; T6 k6 z                }
- q4 _; F+ U# X8 m; L1 j! U0 e* ^            }8 j" J# M3 V! ~0 ^2 H4 r' Z
            else
* u8 O; e' x2 O3 P6 S            {
' J# d6 m" H' V4 D) ~                sprintf(msg,"object type is not UF_machining_operation_type");
4 z" N" e: A/ R* V* |9 S, P, O                UF_CALL(UF_UI_write_listing_window(msg));5 m% P3 h: j1 g! }
            }
5 N, X( |- W5 ?: B- e        }" l  K8 M* w, \3 ~4 l* X
        else
3 [  W7 _. E. A" g* J& z" d        {) S$ n4 X* Z% j4 _$ }3 {  e& `
            sprintf(msg,"Nothing highlighted");
0 m4 d$ r& P1 O% c- K& h            UF_CALL(UF_UI_write_listing_window(msg));! g1 `' }0 ?7 q8 E: w2 `+ M
        }  d4 s1 r3 a# G
+ M* e6 @0 F8 A
    } // end of if init* |  U  h! K4 W& \
}
! E9 J. T) _+ E5 {* N$ G  `& B; ^% L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了