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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。! J9 p% L. a' d) i

4 D+ N9 u8 U; P9 i7 I+ i# h- J; A[mw_shl_code=c,true]/ ~  K0 h, e/ {! q
#include <stdio.h>
7 S, [" [6 J+ ~: I* F' q, M#include <stdlib.h>: C1 C0 y# s! b* ^
#include <string.h>2 V: o/ l7 u5 g9 |  i4 x' c+ z
#include <uf.h>$ \" G9 K! z2 {. _! g
#include <uf_ugmgr.h>
. \' U8 f6 Y0 A; v6 w" J#include <uf_part.h>6 M( i9 ?. }0 g
#include <uf_assem.h>% Y. I( I# W) d9 N9 a- S
#define CHECK( func_ ) \! ~  L. f& c+ A$ l4 R
{ int  ifail_ = 0; \
0 `5 e$ \( p- x/ k4 F, L; d+ i" t  char message[133]; \/ Z+ P- f, }+ ~. `
  ifail_ = (func_);
0 B, {; j* V6 y  o$ Q% c  if ( ifail_ != 0 ) { \2 `7 h  t6 u& f/ c- a3 c8 r3 t$ j
    UF_get_fail_message( ifail_, message ); \
9 a  V$ L- e+ `* K% [, ]+ G: M    printf("ERROR: %s returned from %s\n", message, # func_); \" O  F4 D( Q- B3 l
    return ifail_; } }4 Y. s2 ], b# [
static int create_part( void );
& P- M2 Y( p, o/ Kstatic int print_work_part_info( void );
: I/ b% s, D; E; g5 `) }1 g7 ]* U* s7 B/*---------------------------------------------------------------*/
0 ]2 W5 [. P3 g# dint main(int argc, char *argv[])5 }7 Z  p  l9 U8 T
{
* X( k3 B9 e6 j' k# z3 B  int  ifail = 0;
! A; W2 c7 ~  Y* I% _3 w  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
9 ^9 n5 H4 U/ e$ H. S- r6 ^% h  if (ifail != 0)
2 n# a! x4 d* ]# I7 I  {; V( }" T4 D3 z- a) m5 H: Q; Y
    printf("ERROR: Failed to initialize with error code %d", ifail);
/ ?; [+ P  s0 P6 o    exit(1);& l& K; [7 |& h: E6 W  G
     }& _* b# D2 T. I. s  z
create_part();1 G! Y0 D4 E& \+ i* b
  print_work_part_info();
6 C. a0 Y4 w  l  UF_PART_close_all();' \. V3 Z" p! o3 P" O# \
  UF_UGMGR_terminate();
% G5 ]1 `1 N4 @9 v8 F0 v* \( l  return 0;4 \0 ^- }# _5 T
}; m4 ?9 O- q6 h6 a
/*---------------------------------------------------------------*/7 m  G5 V% T: w: F* D
static int create_part( void )1 ~% i/ @7 P* F. s# X: T& A
{
6 m* i; l# F" e, _2 @) T  char*                   part_number = "600-A-wej-mk1-eng";6 |% b6 |% q. \: ]
  char*                   part_revision = "A";
2 ~7 H5 g: E2 p4 u* a4 u5 k: y  char*                   part_file_type = "master";# }1 J/ T$ [) w5 J
  char*                   part_file_name = "";
9 G$ q9 r4 V* c  char                    encoded_name[MAX_FSPEC_SIZE + 1];
& t- n' G  ~9 ^  k& u* r  tag_t                   part_tag;, m7 Z# Q# g2 K- \
  UF_UGMGR_tag_t          db_part_tag;
* n; Q1 b3 _) i6 J3 @( Z  UF_UGMGR_tag_t          root_folder;
% a0 E. n. n5 U* U2 x8 @  char                    root_folder_name[UF_UGMGR_NAME_SIZE];: s# W- W& r3 P2 s, }
  int                     i, count;- y4 u- I( ^) t" N6 N
  UF_UGMGR_tag_t          *folder_contents;" R0 [3 e8 Y7 ?5 b: w6 J" Z/ f  M
  UF_UGMGR_object_type_t  object_type;
, d6 D5 b7 h, D: [2 |7 K, @& |  char                    folder_name[UF_UGMGR_NAME_SIZE];
  k% D  K6 E8 G% z- j- G( G5 G+ F  logical                 folder_exists = false;
! i9 b, f6 F/ y- s6 E4 P5 _4 \. h  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
1 t7 b2 B/ m) l  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));' m1 B. j, ]& j
  printf("Root folder is %s\n", root_folder_name);- u' T: F& {/ E% J
  /* Scan through the root folder, looking for a folder called
% E; j9 p: I. S6 }; @) s: F     "Test Set Default Folder". If this folder exists, set it to be
" l0 R) ~$ s& P6 T- d     the default folder into which newly created parts are9 V% E6 ^/ i! X; D6 v( \3 Z
     placed.1 p) w  a+ m. _  S" i
  */
, ?+ q& B. ^6 i6 P( v. _  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));) e  ]+ r/ B" I0 k- B
  for ( i=0; i<count; i++ )
  A/ _  y9 ]( c. ~  {
* |' n) f- f* W/ x) y+ K    CHECK(UF_UGMGR_ask_object_type(folder_contents,
) b2 A, l- X% p5 ]3 t   &object_type));4 F. c. c! U4 W: Q/ ?
    if (object_type == UF_UGMGR_type_folder)& m' a' g: X" z) V
    {& c, s  e6 a- y- x; ]! K
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
" e( B$ o9 ~& T5 g' l2 J' ~  S      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )
& ?: `' R: W/ S+ Y      {3 l# e3 a! k. e& T1 g! {
        printf("Test Set Default Folder exists\n");. c3 p! v- e' u9 H# I
        CHECK(UF_UGMGR_set_default_folder(folder_contents));# T; N# l0 O+ Q: ~8 B' |8 A
        folder_exists = true;
, g0 O/ B& X( t: e6 O% B; l+ W- h        printf("Set default folder to %s\n", folder_name);' P$ R( ~* L: b7 Y% K! o: `$ _
      }
+ x& c+ T  J* m. ^/ t$ X    }+ _+ m* d- z' N0 c1 N
  }3 Y# R6 Q0 Z) a& q
  /* If the folder "Test Set Default Folder" doesn't exist, set the- v* F* y+ Y6 T* d
     default folder to be the root folder.! B! ~& P( n9 V. \+ N
  */
  ^! R4 R, ?8 _. {* a. e  if (!folder_exists)
+ k$ u) {: G3 g5 }  {, V8 D, z; [, l1 K- L
    printf("Test Set Default Folder does not exist\n");
" I' i9 s& @* _) n& W    CHECK(UF_UGMGR_set_default_folder(root_folder));
& k' @: e4 j7 ~$ I; f, y( c1 d    printf("Set default folder to %s\n", root_folder_name);- S( Y" X4 Z4 k4 i
  }  c4 D& ^0 D5 z
  printf("Encoding UG/Manager part filename...\n");
6 [0 Y$ t3 Z0 \! r- |  C; B, \  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
/ l) p3 i. ]* H$ J5 u# q part_file_type,
* t( M7 w- i- R part_file_name,
9 ~! c1 X& `( e; p$ H encoded_name ));
" V0 X/ ^0 I- [" Y. l4 j  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));7 k( N  j; D# y$ q0 X& M
  printf("Created part...\n");6 E; E. @8 {* I' W, ?( {
  CHECK(UF_PART_save());: S% E: r$ b9 y  |" Y8 p1 ?. y, ?
  printf("Saved part...\n");
* n1 c  [4 ^$ W5 [2 \  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));3 G  t* \& m* y3 r# z
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",
0 e* y+ C6 E' P3 U, ~! o! ?"Mk3 Engine" ));$ R: D5 S" B3 B; w
  printf("Set part name and description...\n");
6 r% W& u" _! t; R2 I" H; ?' ^  return 0;
2 {. H$ Y6 ?# x+ f! ?6 {. H}% v5 M/ \% V/ `' n% Y5 b. _
/*---------------------------------------------------------------*/$ X. _* c7 _  ^/ t
static int print_work_part_info( void )' I6 @9 f& ]; a$ p5 n
{8 o: N: S1 f1 c7 L
  char             work_part_name[MAX_FSPEC_SIZE+1];
% ]+ B6 r' A2 M  v4 x) {( g. c  tag_t            work_part_tag;
5 g' z1 N, y0 }5 M3 y* v& K  char             part_number[UF_UGMGR_PARTNO_SIZE+1];
! k& N$ J9 P# i. K5 `  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
2 k' l7 Y2 ]" s2 D, `& ~# o; u  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
, Q* J+ ~/ d3 w  i& n  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
* W1 b6 U6 Z  w: l( F+ \) Q  UF_UGMGR_tag_t   db_tag;" R  C  q/ I7 ~( s
  char             part_name[UF_UGMGR_NAME_SIZE+1];
" _* y' P+ I& K% E2 Z3 z" m* Y  char             part_desc[UF_UGMGR_DESC_SIZE+1];
; Z& w8 |5 ]8 X0 d  work_part_tag = UF_ASSEM_ask_work_part();
' C* A/ K7 V+ }+ a$ r  UF_PART_ask_part_name( work_part_tag, work_part_name );& z( {8 f# {# F/ D! \! Q) E' \
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
  G3 H( P9 m9 T3 c2 Y) _  part_number,; @3 H( p' W( h; s
  part_revision,+ y# R, E# Q! I  z2 W
  part_file_type,2 z7 P# T! `, Q' H) z# l
  part_file_name ));4 ~- d4 J8 g' Q
  printf( "For the current Work Part\n\n" );+ O0 x6 C; e2 w8 R  b0 q1 k
  printf( "  Part Number      : %s\n", part_number );8 M/ g# t9 x8 p
  printf( "  Part Revision    : %s\n", part_revision );
3 Z' B; X3 T5 Z# ]  printf( "  Part File Type   : %s\n", part_file_type );
" r* V- u" k9 a7 W# S# f: e  printf( "  Part File Name   : %s\n", part_file_name );
; {; A3 i. d: s CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
8 y4 f4 ~, M2 w/ |1 K  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
1 u& A# y* [. w* \2 W  printf( "  Part Name        : %s\n", part_name );
6 M, {4 {3 K* O0 c  printf( "  Part Description : %s\n", part_desc );
$ J) g. M& y) d/ R1 H. F  return 0;
9 e' B% R) e5 B/ p# b2 Y/ w. k}[/mw_shl_code]
- R/ w2 h0 `) F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了