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

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。9 t# W, E. d2 s# E6 [

; J+ F, O6 l; G$ P6 \static void do_it(void)
) q+ c6 S. \1 n- i{2 R! H9 j+ _% S  W7 F
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];6 t! b/ X7 J( [; j
    char msg[MAX_LINE_SIZE+1];, m- C( Q: L; c/ k, b
/ }9 I- j2 j# F5 ?3 G$ R! N. L* n
    int object_count,! J1 B: k6 C8 o
        type,
4 t  s, I3 _* s  i2 Y9 e        subtype;
& e4 T# [# k, c) P3 y    # o  E0 X( ?; W0 H* D7 ?
    tag_t, Z; E/ i9 p5 r5 T, J) L$ F8 s. F
        setupTag,
& S( l3 X8 }5 t3 L. T        *objects,
% m! E) w8 W( h9 @2 @" k' L        prog_root_tag,
" ~9 i! c. O5 e6 t- G6 X2 i        prog_tag;
) _) Z/ X( u5 W3 e) S& ~3 \+ D/ d+ ?$ A# v* M1 d
    logical  is_initialized;
. y4 L+ b1 v; p& ^6 H0 q    logical answer;6 L  N( b" h$ ]7 u7 l7 B- f% q
- ^' L  L& J1 K9 Q& R' b' k

8 k/ }* A2 Y- v  {7 ]8 C    UF_CAM_is_session_initialized(&is_initialized);
4 Z( D; p* H4 X! e
0 j) J9 v1 T& J
. p/ F4 h. O, W( Q' ]    if( is_initialized == TRUE )
+ @8 I! n  e+ ?2 ~7 y# c    {   & l+ |9 ^7 @' S
        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
; P9 d: Q/ I3 X9 J/ M  S% |" U        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
; q9 H. M0 V" a# y" _$ S1 {
( r0 y6 C5 B; v# ]  // Find the pre-existing geom PROGRAM and get tag
( i- H! d2 S5 W' j+ {        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));& E  Z9 e2 @+ F* e+ _/ K. ?8 R5 F4 S
  C0 x* J3 t3 ~) }: e
     /* Get the highlighted/selected operation from Navigation Tool. */
0 i5 P0 j9 }* S2 M# M        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
* u6 ~+ e4 F% x" g7 ?+ y+ S1 H
3 M. j* A, C( Z        if (object_count == 1)8 e0 R" o% D3 |/ C+ k2 g% F6 @8 o
        {+ u! }& M. @9 D7 F: C  ^- p
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));/ \, m& j. v, e
) h; D+ c0 P* ]2 Y' v
            if (type == UF_machining_operation_type )
3 {* n- Z0 d! R/ v            {$ v3 h: V% W, g+ a- d9 F" o" N2 V
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));/ L# K  B5 [3 U- K
                if( answer == TRUE )* r% ]/ y3 ]# I' S: m1 X/ d3 R# J/ @
                {
- e% _* Q) m" f, ?- K                    UF_NCGROUP_accept_member( prog_tag, objects[0] );# R6 K; R6 i# X) ~' f2 g
                }
3 Q# r' ?: m+ W                else
7 {' {  v9 W) L+ D0 C8 D' n6 y" e! Z                {
5 X) k8 ^5 K, S  a                    sprintf(msg,"program group can not accept operation");
* T/ }2 m+ l5 E2 J$ h4 _: H1 Z                    UF_CALL(UF_UI_write_listing_window(msg));
" L' h7 t# [1 ~' T/ J+ Z+ r                }) K% _$ ]4 a0 f' g: x
            }
0 O& ^. @4 T0 \) s( B* [$ C" h            else
  M1 s6 J3 F0 [6 f+ n            {
4 b, o1 l7 R8 _- z: i                sprintf(msg,"object type is not UF_machining_operation_type");+ z& ]7 g# L3 o
                UF_CALL(UF_UI_write_listing_window(msg));9 F; @8 y+ k0 \; C9 L2 B( z
            }
" M) n) N; ?- r# I4 I1 f3 x- {        }
7 T* K& _% F* V1 X6 ?        else3 L! o4 ]5 f) g7 Q0 `, Q# E
        {
: {3 a% j7 u& ?1 R) X9 f5 h9 }            sprintf(msg,"Nothing highlighted");
, Y2 x1 _! p+ E* Y2 |5 _6 z. q            UF_CALL(UF_UI_write_listing_window(msg));
$ o, u" f3 g/ G! g8 H4 E        }" q$ N) ^" V3 \8 x9 M
6 g, e+ B/ v7 j' U! w9 ?! R
    } // end of if init$ X$ h- Q" a+ h; _
}7 }, k. T+ T' h+ j+ G

- Q# l% R4 `- f7 c; [0 {
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了