查看: 3184|回复: 0

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

[复制链接]

4

主题

3

回帖

48

积分

管理员

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

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

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

×
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。# V$ E5 s9 S. V& D& I0 U; ]
8 w" a- d) K) S3 E. m+ k
static void do_it(void)* i& T* b  d6 n
{
9 p: }1 q, r0 \    char reason[UF_NCGROUP_MAX_REASON_LEN+1];3 R0 A( U; e* Q
    char msg[MAX_LINE_SIZE+1];- Q' ~$ L0 n7 z. ^4 s9 G

) {8 x3 h! Y( P# ~8 e    int object_count,
, i" j) j. |5 N3 A! d% n        type," h( W. u0 O4 K( i" Y
        subtype;
7 K9 f* }  i. i6 h   
: {7 j7 n/ X- m( R    tag_t: H2 ]4 @  L8 |- [, ?
        setupTag,
& G! S8 B. i2 l( p        *objects,
% w8 x" c- b" \( X0 `        prog_root_tag," w- U# x) n9 b: v; Q  C) T2 r+ W
        prog_tag;
1 D- E# T' P0 Z! S. k& W- N0 E4 A& y* A- A* Z& o+ e  F; |
    logical  is_initialized;
( X1 w4 _2 b" u* J9 C    logical answer;+ f  f4 z* V% [6 o# O
% X6 A; ^2 S+ c+ {; }/ L
8 T) R- D, M& L" m% i' o' ~+ g* f
    UF_CAM_is_session_initialized(&is_initialized);
( H+ Q1 P; G/ x9 y# j9 ?' u8 A, f) b
# s8 p3 @* L! _, S5 I' [  k/ {2 C6 c
    if( is_initialized == TRUE )" x  k" y* g6 L6 d, G$ e
    {   , g- b  r9 M) J: D% p6 M% p
        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
7 r& c" W- U1 X# F+ a# `% H5 o        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));$ [) k$ I3 y- ]/ r

, _$ r9 {! p( @4 |: T9 j- [9 D  // Find the pre-existing geom PROGRAM and get tag! N$ i% u! w: V" x, [7 G
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));3 P" n9 {; n3 L1 z( J. i: R

: A+ B7 d" b$ ^# Y0 [4 T6 t     /* Get the highlighted/selected operation from Navigation Tool. */" x+ @6 E' o2 _; U) E
        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects )); 8 I) u4 ~! d: d  D
: b4 `+ X' F! G! ~) D
        if (object_count == 1)
3 o; Z9 w) n8 X, S/ ]% B0 y/ R        {
4 [( I& K$ d) X: P) [  l& `$ @            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));! b/ h& I7 ^- x/ K8 x
6 N# j' S) ^  n
            if (type == UF_machining_operation_type )# @# H' G2 W, _: e, X
            {7 j8 [+ I# U; @. G! O5 F1 y
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));; S; @* o# Y0 t9 r, g6 C6 h: `
                if( answer == TRUE )
6 L, l( e. w5 |) m7 P# ]! _1 ~; ~                {( m5 c, W! J2 k: f# I1 Z: M' K, v+ v
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );+ _; |$ b' D9 F8 z, e
                } # l# ]! Y" j6 ]
                else + |: p' y6 P4 Q) I) H
                {. z) C" Y0 ~% ~, o( Y
                    sprintf(msg,"program group can not accept operation");! J7 {& ^2 B$ I. z* e# U9 x6 `* l
                    UF_CALL(UF_UI_write_listing_window(msg));
0 i& _. e8 v) O                }
8 R5 B) h7 p. i8 L6 a$ \  {            }, p1 e) @, Q; y  |- C9 y% c! O, U9 E
            else
& l: d/ k- n. _! \: {            {
) [9 ^3 `! W( O8 {2 U                sprintf(msg,"object type is not UF_machining_operation_type");+ W) A$ c( l) N( W% C% H
                UF_CALL(UF_UI_write_listing_window(msg));
) W* N8 e- W( j/ x, ?# f2 A; d            }
2 T6 R* Z8 h2 u        }8 F0 e  E0 T. R- ]0 R, C
        else
( D& C% I! A" N% b! T! \% U$ m        {
% q6 {9 h9 K+ C8 m4 L            sprintf(msg,"Nothing highlighted");
8 P5 s" b0 P: Q+ X6 [' K) Y  j( x            UF_CALL(UF_UI_write_listing_window(msg));/ S  S- C* Q0 `: J8 W9 L; |
        }5 K  r% H4 F/ I6 F7 `
: ]/ V6 h& M" X# X2 m2 H3 y. i$ h
    } // end of if init; E9 r( S/ o) j# Y9 y$ J4 m; d0 J
}
% V3 B3 j! @3 D" o" F
. V$ ?: I# O1 V5 t  V, O1 [
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部