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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。
& H! j0 v$ o+ W  Z& W9 D+ U2 ~! a" u
, x$ Z6 o: U; h* ^( ]/ R0 z' k8 B[mw_shl_code=c,true]& n& s' I: P; c) U; a" n8 w9 B
#include <stdio.h>
$ M! m2 }* M" {6 D#include <stdlib.h>
; ~3 t. p% @/ L4 F1 J# I: t#include <string.h>
4 ~5 J2 a: |" g* D3 v; h#include <uf.h>
9 z; }) b3 {7 |9 [#include <uf_ugmgr.h>
9 P% f$ |% W3 V#include <uf_part.h>/ d& X4 {/ m; Z% Q5 W. O1 T
#include <uf_assem.h>
  N! c# o: c+ }7 Z6 }#define CHECK( func_ ) \' y0 R& b- |( q' O2 Z7 ]: ^. I
{ int  ifail_ = 0; \
9 K+ q1 b& ]1 V1 B( c; E9 ^  char message[133]; \
) b3 R% F% r- \5 V: e! ?) _  ifail_ = (func_);
5 u5 P1 t( s, C# u% g+ k. a5 n  if ( ifail_ != 0 ) { \
' a8 f. Z, d4 q. @    UF_get_fail_message( ifail_, message ); \9 p/ x4 s0 U$ \: N, o+ ]+ `: V
    printf("ERROR: %s returned from %s\n", message, # func_); \
! _2 R7 _) ]+ K4 E3 p; d    return ifail_; } }; P, ~9 A: n8 z% S1 z) I
static int create_part( void );
. n0 F7 A0 o% Z, ], L" @static int print_work_part_info( void );
- X/ x6 Q9 k' b- n5 |/*---------------------------------------------------------------*/
9 ?9 x. ~5 d, n. [  e+ Vint main(int argc, char *argv[])
8 W2 ^8 Q& L- c; k( _{
7 y  v- p: r6 H: N8 H( e  int  ifail = 0;
5 X% q  Y6 H, K5 ^" `; f  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
% h! k& g0 F& C" G1 i/ C  if (ifail != 0)
" e" s* W7 F& W& s  {
( ^- F& u0 Z* ^$ o8 v, P* I    printf("ERROR: Failed to initialize with error code %d", ifail);
0 s1 h) m  h$ m8 o& z    exit(1);1 s) h4 x' L4 ^. f4 i
     }
) G5 R0 x% `: ~- X$ x) G$ j create_part();
+ d1 J  p( i9 K0 v+ |1 a  print_work_part_info();
1 Z; j5 \$ Z" J9 e& [  UF_PART_close_all();: _7 s& b& U7 d6 p$ S! i- Z
  UF_UGMGR_terminate();0 P7 b! B) r9 H5 P
  return 0;5 i9 m5 |$ e$ z  z" o( ~
}6 _" K, e; {- `  I0 o  v
/*---------------------------------------------------------------*/
5 q5 [4 k! z- p  _, Estatic int create_part( void )' e) p: j: t; v( l$ a
{3 Q$ p& n9 t& c" z  D7 Z
  char*                   part_number = "600-A-wej-mk1-eng";
. x. d! g7 |) {8 s& Z& {& ?  char*                   part_revision = "A";, S8 Z1 `7 N1 T# n  X
  char*                   part_file_type = "master";( a$ ^' S! s/ E, f
  char*                   part_file_name = "";! p6 I1 C& @. P! C0 _1 @
  char                    encoded_name[MAX_FSPEC_SIZE + 1];
( d$ V# u" j% @, m* b  tag_t                   part_tag;1 p; t, _/ W0 _$ D9 v( q
  UF_UGMGR_tag_t          db_part_tag;# v: \, T1 l* L* E4 S; s
  UF_UGMGR_tag_t          root_folder;
0 y9 \2 W5 b7 s$ b7 B  char                    root_folder_name[UF_UGMGR_NAME_SIZE];& H2 y% k% j. r6 g! ?
  int                     i, count;
. L. y+ s$ ]* U* Z( f1 p, _  UF_UGMGR_tag_t          *folder_contents;. H& z0 N/ g' }4 x0 d; S- K
  UF_UGMGR_object_type_t  object_type;
9 g, T$ V9 z" {- O9 s7 h- e1 g% O% A4 D) Z  char                    folder_name[UF_UGMGR_NAME_SIZE];
: J7 _3 v9 `6 u6 ]% t# N  logical                 folder_exists = false;
2 R' m9 t2 |1 w* M2 ~  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
4 a/ d( o0 ]% T7 O0 s- K* F) [  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
8 `$ B% e/ Z) b8 P% ?3 g& L+ @4 F  printf("Root folder is %s\n", root_folder_name);: P6 Y( G' }( g* ]1 g; X) c  b
  /* Scan through the root folder, looking for a folder called" H' v4 ~4 R8 S4 M; M
     "Test Set Default Folder". If this folder exists, set it to be
4 R8 S( H: \+ W4 O' c* ~/ Y     the default folder into which newly created parts are
" [3 Z+ P1 B; |! ~3 _: O' q( D     placed./ H" `3 q3 e1 s9 [5 x+ _
  */
; r- N. S5 `- e5 x! d- s1 N: u  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
9 I3 k& a# n) _# m3 o8 T  for ( i=0; i<count; i++ )
# G4 G, O9 j1 U$ s$ d  {
7 W) a' D' s3 a8 C. G2 L- Q    CHECK(UF_UGMGR_ask_object_type(folder_contents,0 u' ?: r0 {0 f2 C4 J9 Q
   &object_type));
5 x. [& F3 A) G. I0 P0 t    if (object_type == UF_UGMGR_type_folder)
5 O7 ]4 y6 N; t: O" z, e" v6 H    {
0 I. F1 z" H7 j" G* w7 F# X      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
  D6 {0 e1 p1 Y      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )0 W5 U( v. V! X) U0 f& y
      {0 \, |4 X8 R4 }- O
        printf("Test Set Default Folder exists\n");4 E8 u8 C/ E# M8 r9 L
        CHECK(UF_UGMGR_set_default_folder(folder_contents));! t3 Q$ H9 y8 y# K% \4 U, J
        folder_exists = true;
3 i% L0 G! u) ?  L) k8 N        printf("Set default folder to %s\n", folder_name);2 O) z$ f4 ^# E
      }/ v- H- a7 U2 H* o7 ], Z& l6 c( ]; _
    }8 o/ O+ z6 J+ C6 U& M9 j
  }' Q1 M. p  ]7 O& g$ s
  /* If the folder "Test Set Default Folder" doesn't exist, set the( h) ]7 V9 ^  `( I+ v7 h, [
     default folder to be the root folder.$ D5 M" O4 ~* x1 }1 Z
  */2 G4 j6 B  a2 F
  if (!folder_exists)
0 [' A" w! f" Q- a$ F  {) G; q: L$ E- K. V
    printf("Test Set Default Folder does not exist\n");$ n4 g( \( d2 P6 U* f  ^
    CHECK(UF_UGMGR_set_default_folder(root_folder));
1 c& `; Q  a1 c( m& e+ ~7 W" w    printf("Set default folder to %s\n", root_folder_name);
2 j" ?* m4 M# i8 b  }
% L2 U8 O) c+ _1 z! g; H$ v  printf("Encoding UG/Manager part filename...\n");7 ~7 L; Y1 f. E* Q3 Q/ @1 f$ x
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
2 ?  U2 ^3 t5 V8 B' k7 y part_file_type,
# O  {, V" q$ D: ^' H7 s: s9 w  Y part_file_name,0 o% l0 Z/ s# L- O/ g4 f9 R' h' G
encoded_name ));4 {9 E$ [* z: _  V; y5 v* P3 z
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
2 M4 [  |9 ^" B* }7 u8 C  printf("Created part...\n");
$ F& T2 `. Z3 v  c  CHECK(UF_PART_save());+ g' \/ H6 }  S! F+ _' j; ?' F
  printf("Saved part...\n");
7 Y7 j* P, U5 H: a  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));6 L+ n( X, n+ v0 z- a. R
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",3 F; H7 n6 [0 \! w6 w
"Mk3 Engine" ));
; _/ {' I7 O# Q; a  printf("Set part name and description...\n");
& K/ }/ F' ^/ i0 }* z1 o  return 0;
, y* ]0 \1 _8 O2 y}
, S4 O. d' f+ U/*---------------------------------------------------------------*/5 V2 V. S$ {8 J& E, |4 Q
static int print_work_part_info( void )" ~' S  K" |  u' v
{* E( V' W% S% ?% N
  char             work_part_name[MAX_FSPEC_SIZE+1];
" q7 c6 `4 b6 _6 v  tag_t            work_part_tag;( R' P6 ]. r: n' @
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];( ^) Z! ?/ Y- {( I- b- R% V
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
4 V+ I2 t8 v& r  l% j1 C- a8 p  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];7 ?# D5 T' h% ?8 q
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];3 V$ P8 X! j  n
  UF_UGMGR_tag_t   db_tag;, I! a/ l/ h, B; i, i1 z0 U
  char             part_name[UF_UGMGR_NAME_SIZE+1];
  i. @5 f* U$ t  char             part_desc[UF_UGMGR_DESC_SIZE+1];/ W7 V& q1 Z: C% b4 a% k% O6 M
  work_part_tag = UF_ASSEM_ask_work_part();
) c' V! E) O- W+ _3 M" ~  UF_PART_ask_part_name( work_part_tag, work_part_name );
( [! L( ^$ u5 Y; h( m  CHECK(UF_UGMGR_decode_part_filename( work_part_name,% [. N& l( Q; n, W7 P4 G0 a% N
  part_number,
, Y/ c: Z6 O- A4 t* ~) {  part_revision,% |$ [/ [% L. I- _% G+ w4 s7 k1 P
  part_file_type,2 Y$ j: e  K/ k; }# @" X
  part_file_name ));
6 f: F( U$ k" j0 A  printf( "For the current Work Part\n\n" );
0 E) A( A* z* S$ |1 m( D  printf( "  Part Number      : %s\n", part_number );' X: d& I! V3 S
  printf( "  Part Revision    : %s\n", part_revision );
, e5 |1 c8 m- |/ d& J% n1 d  printf( "  Part File Type   : %s\n", part_file_type );- m7 x6 d  p) L/ b5 W2 [
  printf( "  Part File Name   : %s\n", part_file_name );
* y2 h2 Q. p0 N5 O CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
% J/ \1 _! ?( J  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));" W' Z0 }: @( Q8 @0 V8 _3 I  i+ N
  printf( "  Part Name        : %s\n", part_name );
" h* d# G! t! u8 y4 k( `  printf( "  Part Description : %s\n", part_desc );
3 D  X3 Q: C+ q1 S  return 0;% R$ `0 W) T$ n* H0 {) {" ~7 m
}[/mw_shl_code]
9 x. J  h9 y4 B% w, ]# b' X8 Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了