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

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

[复制链接]

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

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

admin 楼主

2015-1-4 20:20:10

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

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

x
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。
! q8 A! g% {: G( b3 y
7 x! J" i6 q( \9 u; xstatic void do_it(void)
, z( `5 o% C. t{
5 Z/ O: ]$ o5 e) V% \5 `: \$ n    char reason[UF_NCGROUP_MAX_REASON_LEN+1];' b+ Q9 w1 M: x8 u5 W
    char msg[MAX_LINE_SIZE+1];
$ I' k/ n& E) ?; L8 K. V% D1 O* Z' ^# a7 |/ o9 c6 R, P0 w
    int object_count,. [; F2 }1 C. u0 x0 g
        type,
$ ^' y  [# W2 a# \) K        subtype;
6 e# s9 }) w4 L. @0 e    ) [0 r' ?/ a# J! S
    tag_t
. v% O- E& ~. X" X5 o( s        setupTag,! V0 t- V- u$ l. v$ c4 \9 ]! r. [
        *objects,
1 L6 q* ~* c9 p        prog_root_tag,! D7 p) `7 ?0 j5 y& V0 v5 U
        prog_tag;$ d/ E% L  v4 p2 g! S

' P7 \& g& l% {1 l% l  Z    logical  is_initialized;
5 y: {1 s5 n& {- j! G3 w# V    logical answer;
* n! K5 z4 C, ]$ @5 Y7 w& W) z' e# N7 r% {/ U

/ m0 S, L5 I' g& L* M6 D, P& [! l- N    UF_CAM_is_session_initialized(&is_initialized);6 u, U3 W  C8 W
7 F9 _/ C. y% ?$ \
1 @* T  Z* j6 t0 B4 @8 c8 q8 Z
    if( is_initialized == TRUE )4 u1 X5 T: D' }& S# `; |* h
    {   ' U0 p; i" M' F  z9 S# ^
        UF_CALL(UF_SETUP_ask_setup( &setupTag ));
% |! r4 j) q" ]1 C  O  V( T        UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));
3 a5 |( G  ]$ r' S$ g4 o8 G" J7 }
% v; ?5 d  G$ }$ C5 p1 |  // Find the pre-existing geom PROGRAM and get tag
2 \6 Z8 @% s* k* h        UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
  W5 w% I" H( \  F6 I! e- c$ x* Y$ \  @" o9 _# b" {. q
     /* Get the highlighted/selected operation from Navigation Tool. */
/ U! O; V7 u- \( {        UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
2 _% b2 y# d5 {/ j4 b4 N
) X; v5 q" `, D3 e- u        if (object_count == 1)$ g0 K) B/ {+ ^' y% c
        {
; S# n6 B& j* W9 H            UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));
; I) ~! L1 s. O% ~% x3 ~# h' B4 ^* m8 h6 T7 s
            if (type == UF_machining_operation_type )
- n' w4 ~  b# i' \            {$ i& L* L2 t( n
                UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));
4 B9 a9 T1 J$ e                if( answer == TRUE )
; m$ g. f( ]" }$ T# v' C                {
* U4 W, M) @& e+ @! a; I                    UF_NCGROUP_accept_member( prog_tag, objects[0] );
& q4 K3 ^' g$ A1 U+ I                } ' n( w% C. j6 y: j
                else
: x6 L5 ]- v' ]3 Y& z                {% p: N3 j7 a2 b0 I
                    sprintf(msg,"program group can not accept operation");
& z9 d4 G( c, l# \                    UF_CALL(UF_UI_write_listing_window(msg));9 }5 x  g9 e; U3 [* Y( _. g& ^* M5 n  R
                }/ d8 M& @- M! `  |$ f$ }
            }& `/ m6 H6 W2 a/ t
            else1 ^4 I0 p1 u3 z: [& ^9 ^
            {
, A5 a( O5 ^  F3 E1 q* f                sprintf(msg,"object type is not UF_machining_operation_type");  A# P( t, i- H. l7 f
                UF_CALL(UF_UI_write_listing_window(msg));! W5 V4 d+ {3 Z& O4 k! A2 F
            }! g5 E, S7 c# u; [) S2 z
        }* c' b4 f9 |. e9 W, E( F: W
        else
: g% w1 o! h( j3 u0 d' X" A        {
2 f+ B2 G! m; @* c- e. \            sprintf(msg,"Nothing highlighted");
& q; e7 a; B( V! S1 {* N; x            UF_CALL(UF_UI_write_listing_window(msg));
( ], B) i" J1 E4 i! h' O/ Z! F' c% @        }- |) V% c; j) |# E# @8 x

  z% G0 N" E, Q6 T9 M    } // end of if init
, q! [2 V, A# l  \( ?7 d}
1 P3 M3 ]. S( K/ L* \. E( ~+ E
: d# {- _2 T3 B2 {( |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了