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

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
# ]8 G" d. T5 Y" k0 B0 A' E5 p" \: L& y- Y
static void do_it(void)
# m& ]  O7 x; z; q3 {{
4 W$ S. u" t  Q+ V( l9 c2 Y8 H    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
' W3 {' R( \( t4 x' J    char msg[MAX_LINE_SIZE+1];
; }1 J- R  ?. r: J" l$ [( L! z1 K6 Y# ?/ Y
    int object_count,
( y4 [' _2 S- ^% l        type,
6 d" F5 z1 k, }; P        subtype;3 `# D5 d6 X$ c% Z: P% N% I7 Y
    3 _6 @9 W; @8 K7 K4 n4 s
    tag_t9 J) g( z7 S- }) M  D8 k* _$ b
        setupTag,
5 d% Z- y, W  A; H+ \        *objects,4 n3 v: b! ~: a% S! e7 ]
        prog_root_tag,  f2 z! O- i( W# [/ c2 h: x5 s
        prog_tag;
" Z0 e: y* D  q& B! n2 k# E+ K
# R8 k/ O2 A% W$ X    logical  is_initialized;8 C+ \& t$ _+ X9 Q3 L
    logical answer;
5 J! j) e8 d% o: k
+ T* q+ L* ]5 t  k/ M/ t2 V# X( |, w1 n6 o6 ?2 I- [- B
    UF_CAM_is_session_initialized(&is_initialized);
) @, h, H  M: D% ~6 ~2 c! Z
( I6 A$ f6 a0 _0 A
, I; ?9 H3 Y( }# U2 D# \% O    if( is_initialized == TRUE )7 |  Q# Q6 u9 s( f* p# v3 ~
    {   
9 R+ t+ P! j. X- ]0 F        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
+ H' U, S: I6 C, A' h6 V        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));0 h3 F$ b$ M7 r; w) q1 R
; w. }( Z) X$ q: f# p
  // Find the pre-existing geom PROGRAM and get tag; P5 O- p) F* B( c
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
, H0 B2 _7 O# A$ |0 }$ a+ N2 [4 |! k
& c: R3 T) o2 s. ~" L! q% u     /* Get the highlighted/selected operation from Navigation Tool. */$ `$ e2 W! s' e- a3 E" r6 d6 K
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));   [9 m; Z+ [# ^  l+ u

- E! k  C, `" r4 G        if (object_count == 1)6 ]8 M( |" G4 |( r/ ~/ B
        {* u# g; C+ d; ]( q
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));! l3 ?: _8 Z/ y7 n, s  _

; Z6 E$ D2 f. a0 F) R$ H            if (type == UF_machining_operation_type )" w6 K& w- K( `1 Q8 ^: Z
            {
) F4 O5 w' Y8 O: ^                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));" i' h/ T- X( C- d* d. r
                if( answer == TRUE ): x" j" R# d! I1 Q
                {
) y2 y6 _7 f, t" v) i                    UF_NCGROUP_accept_member( prog_tag, objects[0] );6 X7 @2 s! w, ]  d" D" K* ~
                }
- U3 v( R8 U4 |# {! D; Z                else 6 Z, u7 |% h" l; t
                {) M" u- [3 Z; W- M) t! G  P
                    sprintf(msg,"program group can not accept operation");' m/ B" n* f5 U) y; h3 s
                    UF_CALL(UF_UI_write_listing_window(msg));/ i9 u0 P$ @% u
                }7 t3 j- k' r; g" w7 M# v
            }
% J: k8 j# a# U) I) ?0 @            else5 e4 F/ u6 w" {8 s) H% R9 o0 k2 [9 j
            {+ a' {1 i3 A4 X' p4 U
                sprintf(msg,"object type is not UF_machining_operation_type");
' W' j# F, i/ D7 u6 t2 @                UF_CALL(UF_UI_write_listing_window(msg));- c5 x/ L7 r* ~3 i
            }
1 @- _6 _- l4 T6 y        }
7 p. e8 W4 w' ?& v; Y1 W2 \7 |        else
8 w: S, T3 k$ y5 \        {
3 G5 V# I$ H( S) W, \            sprintf(msg,"Nothing highlighted");
" v7 A! {$ T5 U) ?2 k; T            UF_CALL(UF_UI_write_listing_window(msg));7 A4 @. M7 i$ A7 W9 f3 f
        }
" W, g6 g3 h- X3 V4 G0 `4 n- l4 P' _
    } // end of if init/ u  }& g, O& x1 e
}
  c8 |! B! b7 E
' u5 O# `; f( F8 P& E" C: 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二次开发专题模块培训报名开始啦

    我知道了