PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。8 D0 y6 Y5 D! `

% w" n0 L: u  t9 e$ astatic void do_it(void)* }+ B" e4 G7 S: r' m8 q
{0 ~: D8 `4 w' w( C
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];- k# k1 U8 w% a! Q$ c
    char msg[MAX_LINE_SIZE+1];+ j" V6 h- b4 X
* |4 G# w1 R  M' s2 S
    int object_count,
5 f* d4 ?/ z+ R2 {& x  T1 R/ o4 [        type,
# k/ `1 M' s( Q$ I4 x/ ^        subtype;
$ b7 I& [, O. ]0 L2 Q    & J! p5 g8 _5 Y. X0 w9 p
    tag_t) U" R8 F$ v5 J8 K; h* z: f# a) `
        setupTag," n8 g# Z  e5 n9 P0 h
        *objects,
8 ]9 K7 B, b  X: c7 I0 q        prog_root_tag,) u% w) [  f. T' f3 {# S) N: A% r0 O
        prog_tag;
; K" c3 H# _% V, x. W
6 q: _  O5 d) H: `    logical  is_initialized;
% `; \5 f" N" T- R- `    logical answer;
' X. {/ Q7 `/ i, K- Y: G# W
9 Y' Z! U5 D5 I1 D# u4 S  {
3 D1 _1 O2 r2 v    UF_CAM_is_session_initialized(&is_initialized);6 a$ o8 @, s4 B! b/ V0 V6 f* |

7 I( _9 u) F9 M" Q) d+ q- i8 M0 G1 Y
    if( is_initialized == TRUE )# H7 W! i# v, K$ ^; {! |
    {   
* Y* O2 `# f! r' q$ u        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
6 o6 s& f! J1 D! `/ f  @        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
/ b" v/ Z1 D, P# x* _
# ?" h$ l) A0 l) X  // Find the pre-existing geom PROGRAM and get tag8 E5 c! I% D9 e. C
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
+ J: U% ^  Y+ I( @5 w. W1 Z( U& n+ R' A% y1 ?5 R
     /* Get the highlighted/selected operation from Navigation Tool. */
  a- b! h* d. T" b8 c; x        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects )); ( q! w" s6 R  \

! x- C2 H- M) l0 |) p        if (object_count == 1)8 }! v7 [: ?+ e" V2 Y& K
        {
9 u" A- m/ Z- S% W$ S2 y            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));
! c. t7 B, t  b4 E, E. d
) Y8 ~8 y2 g. G/ @* B' G! |            if (type == UF_machining_operation_type )
& I1 Q" B0 n+ D) T+ r            {
+ p( }* k- `* P& Z                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));
2 k) U$ i" P5 [! s7 ^                if( answer == TRUE )1 T8 K1 c6 j* E% k# a6 ^( j# Q
                {
" }# O% q- O+ d2 |: P                    UF_NCGROUP_accept_member( prog_tag, objects[0] );  g' }3 d4 y/ {7 W% q. @9 ^, ?5 ?- P
                } " C- j$ l6 J4 d' n  Q
                else
& F3 U7 ]; @6 \7 z% K                {
( e* K$ G* O1 d' j; u: C                    sprintf(msg,"program group can not accept operation");
* A* S. A: E9 A* ^# A                    UF_CALL(UF_UI_write_listing_window(msg));
: n% ^# |" T( U; W) m) o1 P& U. U                }7 t7 X$ P" B3 j
            }
! M6 ]; _$ q- c6 F% O            else7 l: B4 v1 H+ _( \
            {
5 C/ ^' F/ r7 Y0 _) ?                sprintf(msg,"object type is not UF_machining_operation_type");
' Y' G3 w! z) g                UF_CALL(UF_UI_write_listing_window(msg));
: w2 T+ t: T/ s" _            }
' |& c& p/ F1 C1 D& Y- V        }
6 X: ?. F0 j& A7 c        else
3 a! f7 f* \+ U  j5 y* L0 p4 I        {- j5 l! v- t: m# W8 i
            sprintf(msg,"Nothing highlighted");
/ m( K0 O5 `; d: Z# A6 n) _/ m* X- y            UF_CALL(UF_UI_write_listing_window(msg));# f( ]! X' D+ m. c! j
        }) G1 S$ H4 e! i# }6 Q0 H

; z. k$ s7 ?* J+ l+ n    } // end of if init
: x5 f. k  E+ p0 S( r0 q2 [6 n3 |}- F/ e. z& s3 i9 u/ K* m
, n1 F8 `: P% |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了