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

[二次开发源码] UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数

[复制链接]

2017-12-7 11:22:15 2871 0

admin 发表于 2017-12-7 11:22:15 |阅读模式

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。9 E: m6 X3 H" x' n: Q" H; d) Q7 c

+ Y1 l9 _8 ^  u1 C[mw_shl_code=c,true], U+ h% M4 B+ P' e/ v9 T3 p
#include <stdio.h>1 J. Q5 G( p* Y$ C. o1 w9 t
#include <stdlib.h>
+ X' D6 o! c1 Y8 ~/ [. `/ u) F#include <string.h>/ S) Z, P, ~5 i" _0 Q, Y# L
#include <uf.h>: L4 n! H' G5 W& ~! t6 F" B2 t+ d; R6 u% g
#include <uf_ugmgr.h>
3 c6 J$ @# y! o: G6 p7 {( v#include <uf_part.h>7 [% r' R9 D  y6 C$ ~; i4 q
#include <uf_assem.h>
. b. T( q7 D3 `6 G4 O, W#define CHECK( func_ ) \
& j4 [$ i! b) B  H{ int  ifail_ = 0; \
- e7 @# i: }9 I  char message[133]; \
; }. Y( D, m1 _" r5 h1 ?- u  ifail_ = (func_); 3 \. Q* l7 f# H, e: h3 ~
  if ( ifail_ != 0 ) { \5 d6 g! H8 k% a0 l4 D4 ~. R
    UF_get_fail_message( ifail_, message ); \
' N, d5 U- X! i0 L    printf("ERROR: %s returned from %s\n", message, # func_); \1 ^. \0 [1 Z/ y
    return ifail_; } }
* o6 P6 U1 J3 @" ^  Gstatic int create_part( void );: i; A7 b4 @8 X0 _
static int print_work_part_info( void );# {, t9 J5 o3 r* _0 h, {
/*---------------------------------------------------------------*/" Q; i' P1 o5 v5 D& ]' L+ `
int main(int argc, char *argv[])0 H$ @& y- ]4 N2 T4 r& \
{
9 u4 N3 [  @$ T# a  int  ifail = 0;
# z- P' w5 G) G; \! ]( J. w% ^- S  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
% `5 n/ o+ j8 p9 e  if (ifail != 0)
% F6 Z6 a2 E0 `- e1 F$ i  {# V% P1 H. o; V& w8 z$ C5 N2 c
    printf("ERROR: Failed to initialize with error code %d", ifail);6 {# G. i9 K* ^$ w3 A7 A
    exit(1);
+ T! U! j2 H$ }2 \2 Q     }5 h8 H6 G7 h/ ?1 F7 U5 Q: Z
create_part();
; C4 |1 e# O1 Z3 ^  print_work_part_info();
& L& f# T5 H/ l- x! Z  UF_PART_close_all();' c0 e8 X2 r- x) ~6 L4 V, j9 `
  UF_UGMGR_terminate();
1 @7 L2 L" F6 j! q$ y! m  return 0;( a% k& {$ r; J1 W; N/ C# I( j
}
( w$ w5 r& _' d! C' R+ l/*---------------------------------------------------------------*/, `/ ~+ e9 f  a% C
static int create_part( void )& V* e* Y9 h! b; }& D4 X2 S, B
{" |# r. ?4 F; j; `: [. y9 c3 |
  char*                   part_number = "600-A-wej-mk1-eng";
; e  V  L! `4 O1 ~% x) h& @  char*                   part_revision = "A";" J7 b9 j, a# @) ^4 C
  char*                   part_file_type = "master";
& [$ N0 O# [% K' r9 z8 r  A8 q. K! J  char*                   part_file_name = "";
, O) ~) M8 P/ ]8 P  char                    encoded_name[MAX_FSPEC_SIZE + 1];* X) c, l: a- T/ g" F8 Z
  tag_t                   part_tag;
6 }9 v$ N  |6 u1 i  UF_UGMGR_tag_t          db_part_tag;
" e9 h3 E) L& R1 ?! x! y  UF_UGMGR_tag_t          root_folder;  d7 q" j5 d% L* S- i& o
  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
7 ?* }) z& x) Q+ q# c  int                     i, count;" T+ L: P+ G6 G* v8 ?8 ?9 M8 M
  UF_UGMGR_tag_t          *folder_contents;
& ?: _2 r- q; k+ |; B  [% a  UF_UGMGR_object_type_t  object_type;/ B: V4 `  q2 r% W
  char                    folder_name[UF_UGMGR_NAME_SIZE];# p- S( n) @  i# h1 ~; h8 U* {
  logical                 folder_exists = false;
7 V  }0 w0 C0 Q, D  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
6 U+ y5 f- i8 u: @1 G  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));2 a* o2 h; ?0 _, @4 |( K4 J
  printf("Root folder is %s\n", root_folder_name);* l  S* B9 H0 O- b
  /* Scan through the root folder, looking for a folder called- m. e5 g: X# n( H; w# p4 t
     "Test Set Default Folder". If this folder exists, set it to be- a. M; b4 R5 H; \' M+ F
     the default folder into which newly created parts are( t3 {' L7 v5 f" w1 l
     placed., v, A5 _$ q( ]: z. l( b
  */! T- h; Y; q; a2 g; l
  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));% o4 i- v2 C% `8 }+ Q
  for ( i=0; i<count; i++ )  }7 a# R; [" Y# [" z: v- D, X
  {2 Y5 @8 f( s1 [5 ?8 ?% Q, g
    CHECK(UF_UGMGR_ask_object_type(folder_contents,
- R+ K3 o7 T1 s4 ^  ^) a8 O+ C   &object_type));) J9 f8 }! R6 f
    if (object_type == UF_UGMGR_type_folder)3 [/ d8 j( ^1 B4 r# G& m& {
    {! J5 j) E+ v8 X7 B. s2 I! c
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
- W# Z  x5 l$ T$ z      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )6 F+ y. |& l! X; V* L
      {
3 Y6 S( u1 @: ?; o        printf("Test Set Default Folder exists\n");
1 [5 ^. s, E. N; r, k- T        CHECK(UF_UGMGR_set_default_folder(folder_contents));
' ~# ~- ]: P( [5 t; b        folder_exists = true;& A! y/ m7 a, @1 b
        printf("Set default folder to %s\n", folder_name);( f5 g/ g6 c% W$ X- K, d7 N
      }
9 Y" w1 z0 y6 u( H: V+ t, j6 q    }; g" ^. e8 ^8 ~1 r
  }: g5 n& T% y, q0 _7 h' Z: u
  /* If the folder "Test Set Default Folder" doesn't exist, set the
2 A! A  n& ^( f4 |, S     default folder to be the root folder.
" ]9 w( ~' V$ {; k- Q  */
( r7 l, c. |. h8 `, O2 N6 _' E1 V* j  if (!folder_exists)' |& w, b9 m9 d6 c) r
  {
  K6 \& C5 V6 R) W    printf("Test Set Default Folder does not exist\n");* d4 E4 y; E% P  R
    CHECK(UF_UGMGR_set_default_folder(root_folder));
3 }* ^% V* e% s% x0 x( e    printf("Set default folder to %s\n", root_folder_name);- g. I! K5 R" r- _+ R" l! {+ ]% s
  }
$ H2 \$ n* b" y0 w" ]  printf("Encoding UG/Manager part filename...\n");; D% D- z5 h; s! t4 |
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,3 I  f$ M2 b) z1 }' Y
part_file_type,, t) s. W; o9 Q/ Y: r
part_file_name,
) v6 s3 R6 U0 t8 ^( [ encoded_name ));
% a, k7 `5 X3 d0 _  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));* v4 T6 v: _: H9 \
  printf("Created part...\n");* [: C& t, v, V
  CHECK(UF_PART_save());
" _* L# J4 f/ |% w  printf("Saved part...\n");* Y& J( I% }5 _! T2 h8 i
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
( H3 ]$ y$ ^; I, h# ]9 q  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",' o* b2 Y- Q% x5 G5 Y! u) O% s6 E
"Mk3 Engine" ));
1 N: Q% Y# E+ y7 }' I  printf("Set part name and description...\n");1 |4 E+ N: p8 f' z! l8 \& i; g# A, y
  return 0;
; P) g4 W5 o: W8 ~2 D' B$ i}
! u; j/ s2 S7 O$ Z7 q/*---------------------------------------------------------------*/% i  B6 s5 y; I  R$ D& q0 J. z
static int print_work_part_info( void )
9 d+ u! }# A2 B+ n2 V{
7 n: G/ l. D, K  C4 j  char             work_part_name[MAX_FSPEC_SIZE+1];
0 X+ A1 j& T9 V# L  tag_t            work_part_tag;
* o% l8 Z! W: d4 D5 l. Q, N  char             part_number[UF_UGMGR_PARTNO_SIZE+1];# ~, L/ E7 P4 S9 \
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
7 }5 x% {4 f, {+ s" p  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];: [! o) v' K7 ~% y1 @$ v) z- o2 u
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
' \' Z: Q- Q- V* h( N2 d, H1 m" Z: p) t  UF_UGMGR_tag_t   db_tag;" r/ B! h+ i) X7 e
  char             part_name[UF_UGMGR_NAME_SIZE+1];
) Z; b+ r. a! y) X5 p  char             part_desc[UF_UGMGR_DESC_SIZE+1];/ i! l- ?: W7 F7 D- {; g
  work_part_tag = UF_ASSEM_ask_work_part();7 N! ]. k9 D. y3 y: }5 j) w% G( d
  UF_PART_ask_part_name( work_part_tag, work_part_name );
5 ]+ U; H( x* i! c' G: U  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
* c  P: c& m# ?7 I- \% G! I  part_number,$ h* s- {# O# R% P
  part_revision," q1 [  [8 |7 B9 K5 X# h! s
  part_file_type,5 M: z  i8 ?6 @: T6 f
  part_file_name ));/ K  \4 [+ K& G4 t* G
  printf( "For the current Work Part\n\n" );
# N7 W/ T  d: f; q  {8 b  printf( "  Part Number      : %s\n", part_number );1 x- g. g1 R! {
  printf( "  Part Revision    : %s\n", part_revision );
$ r2 i+ v% m) H. v8 b" y. q  printf( "  Part File Type   : %s\n", part_file_type );* L( `* h$ ?8 E" Z
  printf( "  Part File Name   : %s\n", part_file_name );
8 U% `7 W. X! M& M7 ^; A CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));4 }; n4 J( c3 ^* {0 j! i& c
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));1 E' a( R6 ^+ g& |8 D/ h! _
  printf( "  Part Name        : %s\n", part_name );
- T0 x7 Q& w' t  printf( "  Part Description : %s\n", part_desc );: o+ @; S5 ]: H
  return 0;
" @6 O1 l( |5 x8 s6 X# r}[/mw_shl_code]) G- c8 E! q3 u5 q# ?: C" j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了