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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。
* [  C8 [# z6 e6 n* Y+ O& m  f8 ~0 O. X
[mw_shl_code=c,true]: r% F- U  h, t2 y. m
#include <stdio.h>' M( ?, J6 Q3 `7 g7 x
#include <stdlib.h>
( ^6 N! _+ \" j( Y7 k4 L4 N#include <string.h>7 o5 m* O. [" a1 |
#include <uf.h>
7 y6 N. f$ ?& G: u3 w" u/ x#include <uf_ugmgr.h>
+ m0 k. H  `3 ^3 N# t7 V#include <uf_part.h>
8 r1 a) w+ ~; C#include <uf_assem.h>
! F0 I' P2 [2 W( C" V2 K9 M4 Y#define CHECK( func_ ) \- V5 X6 b2 C; W/ b8 B0 Y
{ int  ifail_ = 0; \
' {6 k" p5 i$ X  char message[133]; \
8 Z7 `2 @; {6 X, v" I1 L! V  ifail_ = (func_);
. i9 ]: s1 M- q& b  if ( ifail_ != 0 ) { \, g5 |% E: P, Z4 }& U
    UF_get_fail_message( ifail_, message ); \  B* |# ^1 w( f
    printf("ERROR: %s returned from %s\n", message, # func_); \$ y9 G. X! Q9 d
    return ifail_; } }
/ E1 \7 ^4 A$ c9 qstatic int create_part( void );: e+ W2 f5 v/ @- x" J
static int print_work_part_info( void );, c& `4 r) ?6 ]) m
/*---------------------------------------------------------------*/$ D0 [( F% S8 b
int main(int argc, char *argv[])
) m3 S+ j, R! O/ r/ m9 h{
7 G1 [; W9 [( }1 @$ Z8 K; u' S  int  ifail = 0;, {  r! m4 a, `' V6 J
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
1 x: G8 ]+ V. h# e7 Z% k  if (ifail != 0)
: H9 \% y9 e4 `3 K  {3 Y6 h" r* ]& y* {2 C* K# L! K
    printf("ERROR: Failed to initialize with error code %d", ifail);
/ a! ?2 w$ o( n( g5 N    exit(1);
8 m+ j: ~+ f( R$ C0 W# u( v     }- F  h5 B5 }: v% m) t9 w4 Y
create_part();
' w# N6 w: y$ J$ {5 c7 ^  print_work_part_info();- g& v3 N0 l0 E$ [: b3 H
  UF_PART_close_all();
: Q9 q- u( s' Y, Y$ m3 Q  UF_UGMGR_terminate();+ j4 ]. e4 o3 m, m
  return 0;" B$ |8 H( g! k! ~7 |& W/ D
}# ?- B) E: @! s
/*---------------------------------------------------------------*/
; l4 M, p3 C% ?+ |6 sstatic int create_part( void ); O" M% h2 V' m" D0 a/ {/ u
{. I  P0 F% O9 e
  char*                   part_number = "600-A-wej-mk1-eng";  _# Y3 B& V6 x! |# Z+ p5 H2 p3 k3 u
  char*                   part_revision = "A";$ f! d: K3 S$ d* b  @
  char*                   part_file_type = "master";
2 T- O8 Y, R: T8 W  char*                   part_file_name = "";* W5 T& R8 C) ]9 }/ ?, `; {
  char                    encoded_name[MAX_FSPEC_SIZE + 1];6 Y; l7 l( |8 v6 P, ?
  tag_t                   part_tag;
" e# S6 h$ c: @$ T: @! ^  UF_UGMGR_tag_t          db_part_tag;- |, v0 h- ^& M( ^7 X, ^, z4 j% Q4 y
  UF_UGMGR_tag_t          root_folder;
% g( j4 M* m$ G3 l2 B7 a- u  char                    root_folder_name[UF_UGMGR_NAME_SIZE];) x0 B: i: H# ?. c8 Y2 P
  int                     i, count;* N! k; z# v! }
  UF_UGMGR_tag_t          *folder_contents;5 E; ]9 M& T# ?
  UF_UGMGR_object_type_t  object_type;
# ]0 I- J' z7 ?- @0 i7 V. E! Y  char                    folder_name[UF_UGMGR_NAME_SIZE];
. _' {2 ~6 f+ u7 ?8 i) ^  logical                 folder_exists = false;: w0 n  I4 E5 \* e
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
3 d3 m2 V2 p$ u2 M. V  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));6 ]* C0 W2 o! t) ~
  printf("Root folder is %s\n", root_folder_name);
. R5 d$ \, i6 \; [1 \! E! V  /* Scan through the root folder, looking for a folder called# A1 w( ^% l$ w% U9 d: |: J$ W( q
     "Test Set Default Folder". If this folder exists, set it to be/ K3 Q8 j) S, C; I& r& _- e
     the default folder into which newly created parts are: U! Q  a- L8 {4 t
     placed.
$ T# _: Y/ o4 A  */
: s4 Y) k8 w! e9 r  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));2 H7 R" m) t, E. U
  for ( i=0; i<count; i++ )  H6 k7 B  G) R
  {
- |0 ?! ]! Q+ ~    CHECK(UF_UGMGR_ask_object_type(folder_contents,: o5 r2 O/ {4 K3 v! e
   &object_type));9 c1 t. |! a3 L5 \0 J" M4 n
    if (object_type == UF_UGMGR_type_folder)0 r& N7 K/ u2 g
    {
( i) V/ @; g- }- H! v      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
- p% b. p+ n: M9 p& r' M      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )
7 g8 G( L( g6 B$ y# L      {- G' M9 G' ]  C. `, a
        printf("Test Set Default Folder exists\n");
, Y: f: C0 J+ F- c1 J$ @        CHECK(UF_UGMGR_set_default_folder(folder_contents));
/ i: P5 I3 R+ @. \1 x        folder_exists = true;6 `# m. R" T9 c4 T
        printf("Set default folder to %s\n", folder_name);
. x2 f8 Y+ f& p" U; _4 G8 `      }$ c5 \  v( n; A# U0 n- f
    }
! o# L; n9 W0 }! z  }- _- c+ ^" |3 f7 N3 W7 ]
  /* If the folder "Test Set Default Folder" doesn't exist, set the1 @7 ]! D# {: c; @+ Y! I: }
     default folder to be the root folder.
, q* d' G! w1 N& ]8 p+ J9 R1 d  */
* S7 ]# b" p3 e  V2 J) G  if (!folder_exists)  b" ?# h% A1 l  B" b" ?
  {
* a7 x0 U  q( Q* B( n9 |  l) \    printf("Test Set Default Folder does not exist\n");( G. W: m; O* I& x
    CHECK(UF_UGMGR_set_default_folder(root_folder));' h& a4 r% s+ J. V) i! Y' {, r) m
    printf("Set default folder to %s\n", root_folder_name);$ Z* u. O+ ^( s+ Q8 N# x
  }* y, o7 `# B* h
  printf("Encoding UG/Manager part filename...\n");
! N* `9 `/ h  H, n( ?0 Z  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
0 h& }& i0 o. \* @  ?/ o part_file_type,, o8 _; i6 v) F0 C" M% i
part_file_name,
& I3 K- y. S: b% e encoded_name ));
" H: j# d5 k: X  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));6 x0 `* W% Y$ S4 s' ]8 @5 S
  printf("Created part...\n");. T5 X0 V/ t. }! m2 s  ]( b7 R2 m7 _
  CHECK(UF_PART_save());
2 K1 r3 @8 v9 _7 F" d0 ^4 k# Y1 p  printf("Saved part...\n");
, |; h: Z4 C0 R( a3 w( c) l5 N1 C, d  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
+ I; S3 ~, q9 o/ p: F2 U, v  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",+ f& b1 G0 j7 Y$ t
"Mk3 Engine" ));7 m0 f5 y! \6 g0 Y0 L- f7 R
  printf("Set part name and description...\n");
3 g! Z5 f6 e2 t/ F6 J  return 0;/ L- z3 f+ \3 G) r+ `
}
4 O0 y  v- K0 O# I8 g8 P& _( h6 ~# R/*---------------------------------------------------------------*/# i8 x" [& |2 Y5 ]' X4 S
static int print_work_part_info( void )) ^/ P4 `1 P$ @! ^# D8 _- T
{: y& A, C2 i# }6 i# `$ c; I
  char             work_part_name[MAX_FSPEC_SIZE+1];
3 k3 l4 e! L# \1 |3 u% h* B  tag_t            work_part_tag;, d- M3 w1 }/ P7 J" K4 {& e# g
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];& O% x3 J; X4 W9 y' f
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];& Q7 h& W5 w/ G  t
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];1 `8 J# ?0 K7 {5 N2 `
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
0 R5 H* X6 A5 h9 N3 H2 W' S  UF_UGMGR_tag_t   db_tag;
) D% v. k# W; s: K0 x0 q  char             part_name[UF_UGMGR_NAME_SIZE+1];) w) H& b: \: h) ?* r1 P5 T
  char             part_desc[UF_UGMGR_DESC_SIZE+1];
, S6 N1 T6 F) q3 O* {  work_part_tag = UF_ASSEM_ask_work_part();
+ Y/ U3 \# [* y  UF_PART_ask_part_name( work_part_tag, work_part_name );
7 O3 L; Y  X- C/ R) N& I  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
* {' ]4 J: n' Y+ f  part_number,# W7 Q$ M0 d8 C3 {6 E
  part_revision,, o" r! g3 Z/ T8 n+ X
  part_file_type,! `: D! a4 I/ H* n7 i8 ~: p. p
  part_file_name ));* m: ^: P: a4 w- H, j/ G
  printf( "For the current Work Part\n\n" );2 _) o- L# s8 ]# u; T
  printf( "  Part Number      : %s\n", part_number );
$ ~: e6 w3 f, \! q  printf( "  Part Revision    : %s\n", part_revision );
! P6 N: _- @- a3 f  printf( "  Part File Type   : %s\n", part_file_type );
- f1 {# b! @: Y* A- G" t- j  printf( "  Part File Name   : %s\n", part_file_name );
) U  u9 c9 v* y  R  @4 M CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));; g! a" ~) c6 T9 i
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));3 f* j+ ~  u" I# P' i/ u
  printf( "  Part Name        : %s\n", part_name );
0 g- z& i9 A4 l  printf( "  Part Description : %s\n", part_desc );; w7 E% [( j3 b, n) [' {8 B
  return 0;' A* _% N- a" Y
}[/mw_shl_code]6 h- t& U+ c; V' [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了