PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。) x+ o& ~. g$ J1 m! ]! }

' D1 ]0 Y, e  H[mw_shl_code=c,true]
% h- c; t* a/ S( N% T3 Q#include <stdio.h>- n& S- f3 I& J* q) L2 d
#include <stdlib.h>
% g" M! \* t. O: j) X7 a#include <string.h>. D: x/ L( i: ]
#include <uf.h>6 l/ @( O' N2 w& H
#include <uf_ugmgr.h>
; ^: j  Q7 @8 y7 D3 t#include <uf_part.h>
' E1 X& V9 u5 V8 \" l4 \7 z#include <uf_assem.h>' C6 l5 ]8 k. i* I! M
#define CHECK( func_ ) \( |4 m* L+ D* ]
{ int  ifail_ = 0; \% P4 g2 ~& M) g; N- D9 V
  char message[133]; \( t/ H3 `# C; f5 }+ a! u: _/ `$ A
  ifail_ = (func_);
  {! A! d1 d6 e  if ( ifail_ != 0 ) { \
+ }( i! F$ |( ?& G% r7 d$ I+ E    UF_get_fail_message( ifail_, message ); \+ @0 D  M1 h; G2 @& U; \
    printf("ERROR: %s returned from %s\n", message, # func_); \5 k+ C" N1 V, d/ W' k
    return ifail_; } }
8 X4 o3 I5 i& {$ S3 T* _static int create_part( void );
8 p  Z5 h) ^1 Q# Z  g8 {, d8 `  c8 x0 Sstatic int print_work_part_info( void );
6 U0 t( J  M! j  S9 y* t! P5 }/*---------------------------------------------------------------*/* Z! \. |. D# j/ z
int main(int argc, char *argv[])
4 z  t9 t- M$ l3 O$ O5 Q{
# G4 J( k* w$ _( P& l  int  ifail = 0;6 }) _& U; c& k, s3 z
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);) |9 j6 z( W$ D9 c& c
  if (ifail != 0)5 R: m3 v; e) v& z2 h0 Z
  {& ?1 @! X4 A7 {" t/ O
    printf("ERROR: Failed to initialize with error code %d", ifail);6 y0 C8 P! Z; R% M. P' \1 e
    exit(1);! c, a3 @8 j1 M4 F
     }; A+ h' I2 r; m( w# k7 r8 h0 _
create_part();
0 [: ^% L4 O$ S9 d1 \' b  print_work_part_info();+ p- f/ m, s& s( j$ s
  UF_PART_close_all();
3 K0 W4 X( u9 B$ \  UF_UGMGR_terminate();
9 Y4 z: B5 s  z0 P  return 0;
, Y6 @9 W. b; D, S* B}
+ \2 b  N# d' m/*---------------------------------------------------------------*/
% g% W; e8 U! I/ w0 j0 T' G2 r  Wstatic int create_part( void )
% b) S3 |* F) L: w. ?{- Y5 A0 z9 b' [7 M+ |" ]+ a( e+ L
  char*                   part_number = "600-A-wej-mk1-eng";; I8 N3 L9 [3 g7 s
  char*                   part_revision = "A";
1 f; W7 ?: T+ r7 m  char*                   part_file_type = "master";% F5 |" ]2 T+ [& G! R" d0 |* u
  char*                   part_file_name = "";& N5 A0 n% h; X2 O8 C0 c& L; J
  char                    encoded_name[MAX_FSPEC_SIZE + 1];
7 l/ M, G2 Z! k) w+ H  G2 f# W  tag_t                   part_tag;8 ?% |4 W- k5 U* C9 @! N
  UF_UGMGR_tag_t          db_part_tag;6 B( O3 k1 ?* o8 Q+ l
  UF_UGMGR_tag_t          root_folder;
* Q  m& Y' d; L3 ?  k  s7 l  char                    root_folder_name[UF_UGMGR_NAME_SIZE];+ W! R/ }( }: Z& ]8 U
  int                     i, count;
! @3 Y( c% H% Q/ j$ F. U! H5 R: M  UF_UGMGR_tag_t          *folder_contents;2 ~# o5 b( M0 h2 d+ G
  UF_UGMGR_object_type_t  object_type;
2 a0 ]1 V0 t& ?5 f7 @) Q  char                    folder_name[UF_UGMGR_NAME_SIZE];
7 G; D; C2 h9 J3 p! c9 m) j0 Y  logical                 folder_exists = false;) m/ Y& J6 \. S
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
7 }6 F0 a: t  C  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));6 }* I$ v2 p( n) @% A
  printf("Root folder is %s\n", root_folder_name);3 T" B: w7 O8 H. \2 k1 f0 G
  /* Scan through the root folder, looking for a folder called/ A; B+ m3 |. }1 ~
     "Test Set Default Folder". If this folder exists, set it to be
; }+ y% K9 s! p5 B* [* r9 S- u2 Y     the default folder into which newly created parts are
, ^& T# f! j1 k     placed.
; f. P8 z) d5 s% `! ]6 Y  */' e* F. P1 q. o' N  y7 L& D
  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
7 y6 E7 k9 k9 k% C( {% S  for ( i=0; i<count; i++ )( i( D! E' m) {$ s* ]
  {' l: p3 r: @0 q4 F0 U! u" E% }
    CHECK(UF_UGMGR_ask_object_type(folder_contents,
7 L* I( _5 |0 h. h7 [   &object_type));& ~+ v0 X+ L, p7 a9 D! V( J) e9 I9 j
    if (object_type == UF_UGMGR_type_folder)
7 ]& D5 b/ p% B0 c' e! c    {
% O& o$ j+ _- l+ r      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));, G6 j  s4 U1 G( g1 q, ^
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )
( y, ?; y3 a6 p" E" p      {/ A( u0 I% H6 X& H- {
        printf("Test Set Default Folder exists\n");5 r, i. _$ Q# ^( q* W
        CHECK(UF_UGMGR_set_default_folder(folder_contents));
: v* h6 K5 ]1 W# D2 r  O/ u) G8 @! A        folder_exists = true;, J* \0 L* T7 I- z) K
        printf("Set default folder to %s\n", folder_name);$ R, |8 j: _7 ^
      }
: a" y# e5 M) N    }2 C) A8 F) I% y4 Q# N
  }3 f& O5 w) n+ W
  /* If the folder "Test Set Default Folder" doesn't exist, set the& w1 t& L6 A% N$ S, o/ ?
     default folder to be the root folder.
9 u$ _7 Q& b" X) j3 u9 x; p+ c  */
! a5 e  z" P0 |6 ~  d& p  if (!folder_exists)5 f8 E& Q  |$ z
  {
" \* c6 B  I) Z; t' q    printf("Test Set Default Folder does not exist\n");. [' r+ v+ y8 u- B& A5 l
    CHECK(UF_UGMGR_set_default_folder(root_folder));; n9 l$ o6 I+ R# d1 s* s1 M
    printf("Set default folder to %s\n", root_folder_name);
* S6 e% f: V6 w# T  }$ q( L. t6 @$ U. a  k0 M' h9 w. |
  printf("Encoding UG/Manager part filename...\n");; z* D9 v. F4 @! n1 M* u
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,. S( z) c0 c1 R3 P' D4 o  n/ u
part_file_type,! A9 Z( V4 f2 y9 ~: W
part_file_name,( j, `4 O% V" D" H
encoded_name ));
+ i+ J: y& v" [/ q# T  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));) j+ p- ?9 D$ `* E& ^8 M5 k
  printf("Created part...\n");3 x2 y: n7 \9 n1 C9 G$ S) B
  CHECK(UF_PART_save());
. U8 s+ g- f) @$ W( g  I  printf("Saved part...\n");
: x9 k0 u" A2 l9 W" a  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
: a! J# J5 p- `: T  g2 M2 c4 _, N  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",
0 T& }* j, Q  D& ^- R"Mk3 Engine" ));
0 U% f$ U0 l/ v  printf("Set part name and description...\n");3 a5 U% @3 `8 B( f7 ^3 t1 k
  return 0;9 ~  b2 ?7 ]$ p
}+ ]( c1 p9 Y; e2 _8 b# _$ I* z. r
/*---------------------------------------------------------------*/) G6 |4 d6 l9 v# r  G9 \
static int print_work_part_info( void )
' d% I' s" k! X7 k{
) e9 G" z, W0 [; o* ^" E+ v  char             work_part_name[MAX_FSPEC_SIZE+1];
' \" ~8 N) t$ i" u( {; t  tag_t            work_part_tag;& ?  c: A0 R* S# p
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];* |4 C$ M+ Y- P, P' ~
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];; A4 A$ L# m' }/ N  {8 R8 S
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
& [- v5 n0 G0 s# _( h: V; i9 `  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
* D6 R. b, A9 ]& I3 ^) k6 T  UF_UGMGR_tag_t   db_tag;
2 B+ w, E/ X. G7 \: G3 c8 H  char             part_name[UF_UGMGR_NAME_SIZE+1];
1 ^: _! ]4 ^* q! X4 X5 f7 H  char             part_desc[UF_UGMGR_DESC_SIZE+1];
+ r/ _) B( v2 c  work_part_tag = UF_ASSEM_ask_work_part();5 O8 m6 }) D# p) A5 j
  UF_PART_ask_part_name( work_part_tag, work_part_name );
" y' r; u1 Z( y. U# N  CHECK(UF_UGMGR_decode_part_filename( work_part_name,0 J2 E) G% J' f1 s( S2 v2 K. c
  part_number,
& n* w" J# O; ~9 O  m1 @, B  part_revision,- \6 y4 q1 E0 v
  part_file_type,% ^6 s4 X: M& [3 v) H* j
  part_file_name ));
8 |' G* w. ~6 T/ j+ }+ j- h. e  printf( "For the current Work Part\n\n" );
  J; q( d: v& |7 K' N5 P; h  printf( "  Part Number      : %s\n", part_number );
" b5 g; L- |' R' b2 G2 U. L4 B  printf( "  Part Revision    : %s\n", part_revision );# j, q* a. n9 R' H9 o. \
  printf( "  Part File Type   : %s\n", part_file_type );
! |. m9 e) W( B  printf( "  Part File Name   : %s\n", part_file_name );
9 O7 x- w/ b3 |1 m0 G- ~) `0 ~ CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));! w8 v/ i  ^/ d7 l+ s4 c
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));9 y, d( ~1 Q" y& Z6 b& M& d
  printf( "  Part Name        : %s\n", part_name );
! O/ p- M5 G; G9 ^) ]  printf( "  Part Description : %s\n", part_desc );) Y$ W3 N9 H$ ~/ G) q
  return 0;/ n# X: c) V, c4 x
}[/mw_shl_code]
, d, j! a/ x- P2 O  n
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了