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

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

[复制链接]

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

2471

主题

1276

回帖

8万

积分

管理员

PLM之家站长

积分
82193
QQ
发表于 2015-1-4 20:20:10 | 显示全部楼层 |阅读模式

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
  o9 m* \" I1 S. |" Y2 Y
( g0 r& d* i& B; p% A0 x7 Zstatic void do_it(void)6 w' E. K% W, m. T; O* |
{/ }+ F, K6 j0 K" }, |! d9 ]3 o
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];" a) u* r' J% h4 q2 G. H5 m
    char msg[MAX_LINE_SIZE+1];' A, j: G, R' X7 A# Q, j

6 L9 _' {+ Q6 x; |/ S4 v0 v    int object_count,) d, s& v; P2 \* N+ R
        type,
$ f0 J: M! ^0 K! `% g: n* t        subtype;
+ ]7 y8 g) u7 k   
3 w: j  J1 i2 w, }" S" Z# }    tag_t
' H. ~$ l0 \: v5 K0 Q( b! T        setupTag,6 k- _: U% c, \, T2 b
        *objects,
- r$ v5 B% ?  F; V3 u* W        prog_root_tag,
0 _  w/ D% t' ~7 ~. W+ ^' G, A        prog_tag;* w, H; l- l) }2 H. r
, z5 @7 \2 m9 P) Z! s
    logical  is_initialized;
: n7 T& Z: I6 ^1 |; M" p    logical answer;. ~8 b$ G; u' T

& N- W8 D; b$ E- A9 {% {+ N5 w: S8 s% i% K
    UF_CAM_is_session_initialized(&is_initialized);
' M4 M4 Q  x, D& d8 z) }" h0 N& y- o. J2 y0 S/ S

* S' S, s1 ~. @' K$ {" E3 u    if( is_initialized == TRUE )
7 Y8 C" y7 E' y: {, n& U    {   . G( \9 ~( k; l' C+ Y
        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
4 ^. n: a$ I6 [2 g        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));7 }) j; p  _+ [: f

( {0 Y; |8 t% j; r4 \. V  // Find the pre-existing geom PROGRAM and get tag2 ~" b# g5 b* r/ o  r
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));2 |% ~1 F+ G% j

" y0 O: v( m- Z' q+ I" ~/ o0 v     /* Get the highlighted/selected operation from Navigation Tool. */
! T+ s. r" \$ T        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects )); * Z3 O$ q# W4 \  x6 N6 }8 E

; w3 z  n% p9 [+ ~1 P6 C        if (object_count == 1); J3 `; m. {$ l# I# @7 c! G* [# m
        {
% {6 ^0 ~% H% m) \; b; \            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));
: P( c8 z& ?( \: t- N4 p  R
) A" N4 i; ^) V* ?8 k5 f2 c7 P            if (type == UF_machining_operation_type )4 c# j/ }7 u6 }4 v1 I
            {
2 N- O+ E. A& T) R3 J                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));/ [8 x! \5 A! Z: {0 A  Q
                if( answer == TRUE )% Q7 p+ i8 \- c, \. l7 b
                {
0 b, a  F( Y# D/ t  w" u                    UF_NCGROUP_accept_member( prog_tag, objects[0] );/ @: p. j  P/ f' n% n7 {1 H
                } , F: a3 g1 _% u% o# {! H
                else 0 o0 _- z. ]+ y+ t; G/ j; \
                {( K$ z/ M2 P* x  W1 v* G% x' b
                    sprintf(msg,"program group can not accept operation");3 F- ~! a3 s* f( R$ V; E! w
                    UF_CALL(UF_UI_write_listing_window(msg));& x5 V7 a& t5 }
                }
1 H$ Y' P! E- l            }
6 C9 @* b+ h& w+ Q/ V- h4 u, a! A            else. ]5 ?! t9 z: }; j
            {/ D( v" B' j2 p' ]5 J
                sprintf(msg,"object type is not UF_machining_operation_type");3 }2 \8 \6 u* J8 z  g) R
                UF_CALL(UF_UI_write_listing_window(msg));2 V. H2 R$ `! c8 l0 C( [
            }
& r4 s, l) M) `        }$ z) b* G3 `/ o- D
        else
3 e6 \  ~* y1 G8 h        {
" q+ N# l+ |7 X+ l            sprintf(msg,"Nothing highlighted");# G# s- |5 K- n( X5 u" ]2 c& _
            UF_CALL(UF_UI_write_listing_window(msg));# `. I7 _3 }  M: b9 r% K& {) T# k
        }
8 e) S% g/ Q& \9 K. a6 ?
% E. }/ Q4 j% B8 Q2 ~$ N% K    } // end of if init
6 e0 j+ _# n) Z}
* A7 O$ M+ L; Q, m% k* A7 T. m3 y& t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了