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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。9 w  t# F/ X3 @# A6 C' m( M
  D6 ~. [" L& V4 }! x5 j
static void do_it(void)9 K+ A& R7 I' E* _
{
, j' \  M# O1 L& |+ a1 ?    char reason[UF_NCGROUP_MAX_REASON_LEN+1];
9 @8 n2 L, e% M; Y: g0 U    char msg[MAX_LINE_SIZE+1];
: n# K4 w6 j# X; j5 }, [& z  }' V- b7 \% l, }9 Z5 f( O) V' M! A
    int object_count,( _2 G6 t4 {! Y
        type,/ w& C5 H! ]# e8 T, w
        subtype;
" v$ _& a  ~9 J   
1 c# J+ p4 C! ?9 I  X/ M1 \    tag_t' V1 j6 ]& z/ ~8 B/ Q+ f
        setupTag,
! E$ r2 A* V; w$ p        *objects,
2 V. K# |7 Q0 E# W) d5 ?: d        prog_root_tag,
3 e+ Q7 T2 O2 `- \        prog_tag;- S. T5 c1 ]4 @* q; Q
8 r: a0 O. K0 k3 O3 i" A
    logical  is_initialized;. u! q* N; x  j/ ~5 k5 Y* E
    logical answer;! Y- J+ f5 [& b; v
8 c2 w& k8 I1 K- t

1 n2 E2 P( d" L: S    UF_CAM_is_session_initialized(&is_initialized);
4 E% F7 p6 m1 f3 |
0 Z9 M5 J8 z5 v( C3 y  H4 B! u. \6 I) h2 ^8 e4 ?, E
    if( is_initialized == TRUE )  K" i& E. B) n( k
    {   
4 r( }6 u; W2 t) B# D: }2 ]' Z        UF_CALL(UF_SETUP_ask_setup( &setupTag )); " O" j+ @+ y3 D$ f  R
        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));8 P5 Z8 P  j! |$ t# M) M5 Y& \

5 c  h. _7 C7 q, h2 M$ ?  n( X0 W, u  // Find the pre-existing geom PROGRAM and get tag0 ~, O7 s3 ~+ B
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));$ x+ a+ s' l, q! Q4 X

# O. \% X4 N2 y0 N& g6 F     /* Get the highlighted/selected operation from Navigation Tool. */( F/ p4 ]5 p. Y
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
0 y7 j  }1 r9 \9 F% V% O5 i1 }* s9 t( b" m
        if (object_count == 1)
& X; O6 Q: g* a$ V9 d        {, q9 Z9 l$ m7 f1 b
            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));) v1 }9 O  ]; u& L" _' \/ |; l
: P5 Z1 A& D7 b" T
            if (type == UF_machining_operation_type )) v5 _1 x2 `. c1 I* Y8 n* ?
            {
& p+ P7 n# ]% |9 o1 u4 o                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));) ^+ Z) V+ l: i9 V9 _9 W
                if( answer == TRUE )
! l! J* p% f, j  b& ]                {9 a7 \  \* j5 v4 [
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );$ [4 ]+ E! u9 |0 d
                } # @6 E% y6 D& Z7 x0 v
                else 2 F; I# _9 Z* Q: v7 N) C
                {
: H+ P9 a) T" g0 m                    sprintf(msg,"program group can not accept operation");. ?# u: e: ^# {8 o* X
                    UF_CALL(UF_UI_write_listing_window(msg));; f% w! _$ A1 h5 G1 g7 ?& _
                }) u" K3 c! j" q" x( q
            }& Q* w6 t/ s/ q9 e- W, ^
            else
  p2 K& d& N, j            {% Y% X' z+ Q$ s5 q3 `! Y. \
                sprintf(msg,"object type is not UF_machining_operation_type");8 K) z8 C) L2 H
                UF_CALL(UF_UI_write_listing_window(msg));
8 ]- h( T; k. R3 f+ b  b            }
2 M( q* j  m( l4 B- e: h/ I+ R) S7 ]        }( x: l+ A0 z. v) B9 g3 p" S& i
        else8 T7 x3 J" Y/ b9 F- y1 j& x
        {
# Q0 p5 Z; @9 Q# W# ?( b" G* @  k% R            sprintf(msg,"Nothing highlighted");
! j* w$ m$ Z8 F3 ~3 N& ]/ @            UF_CALL(UF_UI_write_listing_window(msg));. |" p8 {) g/ y4 [8 q8 z
        }
- q# z- X# ]7 G! f) z# y5 X# r2 M2 b/ o7 n/ [- `; z: A8 t1 {
    } // end of if init
; g5 G) I# \& O& E1 X}
7 e; a$ G/ O# C
, ?! D' \" a7 @& W+ f! v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了