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

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。. ]- [: U, \- {, m! Z

8 Q- q' V' q, \& A# a. Bstatic void do_it(void)# L' {" [# x1 @9 p
{8 Y! p/ G3 v' Z9 ^) m1 w$ K( D
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];9 W* h# U5 a- Y+ i# R% E
    char msg[MAX_LINE_SIZE+1];
# W: D! M# F" h8 ^0 R3 v+ @( n0 I8 d
    int object_count,
: ~8 F* r7 A! b        type,3 M1 Y$ a8 e( b' O& c3 ^7 x
        subtype;
2 f0 [8 x" z! m) J+ _0 P1 R8 P" U   
2 l. E  e- B) U' S$ j2 V( y    tag_t  ?( T! `4 y7 A6 j
        setupTag,
: _0 L+ C% Q6 y+ _- t1 n        *objects,& O9 s/ L7 u" y% A' h) N. V* n
        prog_root_tag,6 W; ]+ K% P; U4 f1 p7 s2 E" y
        prog_tag;) y, A& F+ G, g8 H/ x* K6 J) o  u
  S) w( S4 N7 T
    logical  is_initialized;6 n7 p, H# T% A( l& }
    logical answer;
6 u4 B' z( E) G& ]3 W; k
' k: c: V( T. H! V7 w& a9 q: v9 f* o# e
    UF_CAM_is_session_initialized(&is_initialized);
0 ?/ i: ^- ^; s- v' Z0 g+ L/ n& H% F
. Y; v0 R! X, b; C8 V: @/ N7 q2 }
    if( is_initialized == TRUE )
9 Z# j9 E* s) O$ [- Y    {   : c, I! Q% D  n! F2 S4 u/ i
        UF_CALL(UF_SETUP_ask_setup( &setupTag )); / k  T% O, _, G: U% F
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
+ B6 a. ?  n5 v8 G: p3 d: ~2 l0 R  O7 z- ~
  // Find the pre-existing geom PROGRAM and get tag
; c  W: x* B" ~3 j; v$ a3 F        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
$ v8 p! n* S" f6 N1 T9 o1 Y7 }- G$ U! X) Y
     /* Get the highlighted/selected operation from Navigation Tool. *// l; X( F, H( c& D- ~, h
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
6 S& ?) g' h# }6 ^+ v5 A( L- k! [9 V5 K  T
+ j2 W% D6 o: q  {. s, W0 o        if (object_count == 1)
+ L* R3 W9 y( P3 ], y8 e        {
5 K1 c: ~1 z- N0 K! X            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));* ?4 o6 m5 |/ H1 F8 @
( t: M8 R6 B# A
            if (type == UF_machining_operation_type )
( c9 H1 M' ?& |* O& h+ z8 `# `            {: T4 s2 Q& w; I$ F% M
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));$ X# T- t0 h2 s$ Q' {
                if( answer == TRUE )
; |  b. @0 q9 E' s5 ~                {# L, {* b+ Y" b( S
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );$ K  S5 b- {: `3 f" G& F7 m" W0 n
                } / ^/ S0 g+ I( y, C5 N
                else 7 P0 p, S1 a% D( P
                {
- F7 b# z9 S- d8 i) h$ M6 H                    sprintf(msg,"program group can not accept operation");
# X7 S  b( L/ i8 a+ ?                    UF_CALL(UF_UI_write_listing_window(msg));1 L6 q0 T% \+ f& Q
                }
# d; {$ d& i0 V- `            }
) p; Q3 {3 a* L9 K3 }1 S7 Y            else
0 |) q" K: v" X* |; p" s; z0 Y            {4 u9 I& C$ g- q3 W$ w! M2 ]% Y
                sprintf(msg,"object type is not UF_machining_operation_type");' A: {9 I+ z4 o6 j" P
                UF_CALL(UF_UI_write_listing_window(msg));
+ b5 N1 e. X( N# N            }
/ V- Q" U  m, X/ R7 H6 y; [        }
3 {0 G) J$ Q' _  O        else
/ c. L2 l% H: z# A/ o5 U        {
: b* a; v! G* m* s. G) Y            sprintf(msg,"Nothing highlighted");
# X6 z8 V# w. E2 @- K- Z' m7 }            UF_CALL(UF_UI_write_listing_window(msg));
2 X/ S0 ?! ~6 Q8 p$ H: P- e        }; D# @$ p3 b' y4 T0 g5 w; `  R

/ Q8 W' M4 W% x    } // end of if init9 e) L% _3 D( Q5 r4 \
}" a. D6 j$ x- v8 g: w& n' g# N# F

, _* P% N/ i/ R3 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了