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

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

[复制链接]

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

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
# q4 t1 K' Y- J: E$ a0 M+ K9 H* ^
static void do_it(void)8 o. ]0 o6 F0 l( w7 z: Q
{4 r# p( V& f2 l- w" e% j
    char reason[UF_NCGROUP_MAX_REASON_LEN+1];2 e; {; f- t! r8 h! ^. w
    char msg[MAX_LINE_SIZE+1];
5 ~9 l5 b$ q7 u# S4 M
8 I) Y, w+ p, ^& ?* o2 V. }6 l, e6 @    int object_count,
/ H, ]6 R0 @+ M0 `7 P+ F) D/ Q        type,7 }& @% B' q( V+ C9 R2 l, ~1 C% W. t
        subtype;
+ w: `' C, h5 P$ Q   
; q$ \. V$ b0 @, k    tag_t
' S' ~3 H4 [4 p% d        setupTag,9 L6 R4 R% r$ I
        *objects,
8 e# ~7 }* N+ ^3 H/ J        prog_root_tag,
; M2 M! K& Y' W# J9 b, c( n        prog_tag;& e' C# x: d2 P2 ^/ c" J; E1 m( S
, r2 ?4 R( }  P4 i' q9 I3 `6 p
    logical  is_initialized;
1 \. o0 ~2 Q4 p7 G# A    logical answer;
' @7 J* n0 I: m8 J
, \  W7 u9 M! `; R2 j- L! t5 c) B- k2 s
    UF_CAM_is_session_initialized(&is_initialized);
8 q% ^1 F; I5 @; i" h" E0 k6 h- P7 e' X4 w8 {2 E

5 b( e! \/ s7 k4 [# a! F    if( is_initialized == TRUE )" a1 y- ^/ m" Z$ m
    {   
- ^# e. I3 g8 T9 H, Y9 V, p        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
# l4 J  }! G1 }: m1 I& y3 s        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));. P3 Z% o( \( s; h5 e" C2 e1 w
3 ]3 F& m4 ?0 K% B" Y
  // Find the pre-existing geom PROGRAM and get tag' B7 H# K5 T+ @2 B6 }/ ~3 E
        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
0 ]5 K/ d/ f* v- ]
$ g# I; b- ~/ a. z- i     /* Get the highlighted/selected operation from Navigation Tool. */
& _4 r% O$ H+ }" W/ W2 `' i( g        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
: Z& f. ^+ R! N; y8 }
( f+ B. z& e. n, j0 \* @        if (object_count == 1)
* v; p0 }5 V% F+ b2 D2 @4 ^        {
3 }. j( J) [8 {  O            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));9 o( [* S& C; {. f

* x% s& _# c) T  i* C4 p# T: {            if (type == UF_machining_operation_type )! \" M5 Z0 X$ z9 S- {
            {- F1 a5 S# m- f8 @, \% I
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));
6 C) g$ r- W3 H: C$ }4 G; i                if( answer == TRUE ); n3 L7 H3 ]3 Y0 M
                {) g& ]2 x# o  P. G1 ~5 I
                    UF_NCGROUP_accept_member( prog_tag, objects[0] );
, k0 |6 v; f( L                }
# S9 k8 z( O3 G# C5 g  @8 A                else
) N" c3 d' F  M4 f                {
1 V& I7 t6 L, ^+ j9 N, q! h: s                    sprintf(msg,"program group can not accept operation");
: `" g1 ^' T1 x2 B5 H: n                    UF_CALL(UF_UI_write_listing_window(msg));
. F: O# Q' T+ S% v                }
2 d' Y7 a9 {' T9 T( x            }1 V/ y4 Y5 N5 h* Z
            else
0 R0 b) v% E" f. B2 F            {  w. `; q( ?9 @  _& |+ @
                sprintf(msg,"object type is not UF_machining_operation_type");+ u8 B, I/ o. k/ c# P
                UF_CALL(UF_UI_write_listing_window(msg));
% D' Y1 S) q; T: T+ T+ d            }1 F0 x0 \$ s" n) G
        }; M1 c1 _. L5 \+ L- P9 A
        else
$ z6 ~# \. K  V& @* f" Z        {
, M4 C" |5 {' F9 u0 H            sprintf(msg,"Nothing highlighted");
) F3 B2 H, b' \            UF_CALL(UF_UI_write_listing_window(msg));9 i: r) D* n& }. E1 `# w1 \/ k9 V
        }
  ~* [8 M0 z% \# s% y
4 N& Q8 E+ |, I/ Y' `# q    } // end of if init
: n: {9 z1 Q( i2 K  W2 J# ^, x}
6 M& X) y  F3 j1 d& C) h9 K
  L% A  G3 L- L1 y# F) G, G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了