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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。6 ~8 Z- J( u5 |& h: U: V
, B: _1 \* \; W
[mw_shl_code=c,true]
6 |8 h$ s$ j' u#include <stdio.h>  ]% d6 y) q1 s" j# G
#include <stdlib.h>
+ Q, o2 l  I( }+ u/ M5 |6 h#include <string.h>
' T1 Y1 F% a2 y, i2 m5 r#include <uf.h>3 v" R- U. q, D$ b' ]  L( I
#include <uf_ugmgr.h>
# l- A( P3 n! M& ~6 L1 f+ q#include <uf_part.h>/ g4 b$ @7 V( D
#include <uf_assem.h>. L4 X' n; u$ ?' [
#define CHECK( func_ ) \
0 x( F4 ?/ `# R5 d0 G& ]/ f% J{ int  ifail_ = 0; \
% C" B  |- Q$ X  char message[133]; \
4 K2 ]1 s$ m( p7 @, s5 R( L1 W( |  ifail_ = (func_);
3 a2 d: K; W5 _  if ( ifail_ != 0 ) { \% m. z3 G/ R2 W  O$ A0 d; @- a
    UF_get_fail_message( ifail_, message ); \
  z! P7 _' S- [" X0 H* W% a' A3 e    printf("ERROR: %s returned from %s\n", message, # func_); \4 T; e5 Q2 N8 o5 [9 T
    return ifail_; } }; @* z' X8 Y. V( w4 u
static int create_part( void );
. {5 d2 `& r: x" n$ j. Mstatic int print_work_part_info( void );5 f8 `* \1 v" X4 [, [$ u
/*---------------------------------------------------------------*/
) r+ V5 v5 i. ]4 i; Y3 Rint main(int argc, char *argv[])
" S7 z! @  Z4 k{
! |5 u& _8 K9 g# l) G% b* t( `  int  ifail = 0;2 T+ }% A! ^/ h  n( S5 M) \7 y
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
: G  d8 |+ W, o% ?2 ^2 n  if (ifail != 0)8 W7 O4 o6 q+ V  U/ z+ b+ S; L
  {
9 v/ F9 R* m" \7 r- @" p    printf("ERROR: Failed to initialize with error code %d", ifail);
* E$ u$ p! S3 x) F& R6 W! t* m2 `, s- T    exit(1);
. r/ p9 i2 q' t* H" G1 Y+ H( T     }3 q- s( b$ Y( U% u8 z
create_part();
' c* S( L) g: R# T* I% C8 z  print_work_part_info();" j9 A" K* t8 b8 V, B# t
  UF_PART_close_all();7 o" [* C; u2 Y% M$ [; k; S# n
  UF_UGMGR_terminate();
8 u( w( e5 h4 D! J! p2 Y  return 0;
8 @  n* `, B$ ~}9 ^; n# d) H9 V, h! P
/*---------------------------------------------------------------*/+ C: x- G! N. ~5 @5 O0 B: {
static int create_part( void )
8 }, B, m# o9 t0 X2 F* Y{
. J1 D3 }5 T5 r+ e  char*                   part_number = "600-A-wej-mk1-eng";
7 q+ g" \* S" v  char*                   part_revision = "A";) k* @. l& B! Y+ }( O6 C: @
  char*                   part_file_type = "master";# b7 U& Z4 w' [( d- x# U
  char*                   part_file_name = "";+ j2 L* d2 H3 v0 G8 [0 j# v
  char                    encoded_name[MAX_FSPEC_SIZE + 1];
) ?! z5 j0 l7 r( y  tag_t                   part_tag;0 W3 o( G/ \0 X
  UF_UGMGR_tag_t          db_part_tag;4 {( g- @* @3 F# d, R6 ?
  UF_UGMGR_tag_t          root_folder;
5 ~  p! Z4 Y, X7 ^3 ]4 B8 q  char                    root_folder_name[UF_UGMGR_NAME_SIZE];# \) ]" c( T3 @9 L. G2 c( B
  int                     i, count;$ M) B; K# j) R8 W
  UF_UGMGR_tag_t          *folder_contents;
  n6 C* V0 c8 T2 ]7 K' N  UF_UGMGR_object_type_t  object_type;, y+ I! r) e" k! v
  char                    folder_name[UF_UGMGR_NAME_SIZE];
" F5 |9 N9 _2 n7 H& J/ I  logical                 folder_exists = false;
3 `" }4 s! b0 @" G; i& w2 u6 s  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
; g+ Z' j/ [/ p/ y  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));9 t- H9 }' J2 l# H' T2 A4 P
  printf("Root folder is %s\n", root_folder_name);4 N! f! }! |' e4 l0 P
  /* Scan through the root folder, looking for a folder called
: N" X" x. |% M8 e* j6 T     "Test Set Default Folder". If this folder exists, set it to be
/ T6 l0 j5 S3 B; j& N/ s3 x     the default folder into which newly created parts are$ s  y% O& E" [& p- M3 `0 i2 ~
     placed.
1 P# r4 q( t/ {) x. ~  */
* \2 e7 r3 Z) h: X4 [0 N) _  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));+ f' C0 y0 a7 d6 b/ x
  for ( i=0; i<count; i++ )
6 `/ a/ D: w! Q( |5 Q4 ^( e. k  j  {
5 G# i" M3 ~1 S9 Q; w. G: s    CHECK(UF_UGMGR_ask_object_type(folder_contents,% g2 k+ b& P" ?. j$ ]4 c& n8 I; g
   &object_type));
7 Z7 _: Q& M  p! e: r5 I3 T( A    if (object_type == UF_UGMGR_type_folder)! y& n+ @( ?& T7 }+ J4 h
    {5 G; s: p* \- G1 k
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
, E: K& t6 c3 @& C      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )
! E  I4 a2 `0 L: W7 b) m      {
+ t3 d8 [. O, J' Z( a# Y        printf("Test Set Default Folder exists\n");
" h7 u# l, e' ^" C6 |9 |4 h        CHECK(UF_UGMGR_set_default_folder(folder_contents));5 w9 ]: |8 e9 L% W4 n
        folder_exists = true;/ m# I+ ~; W+ P+ z$ I
        printf("Set default folder to %s\n", folder_name);
  W8 b, V9 [; c' ~+ a      }" h( S) A/ j5 _; ~3 Y! f
    }% `4 j' ~# t, C+ t2 b/ M9 V+ V
  }
8 v9 C! N# v1 v" `7 `7 x  /* If the folder "Test Set Default Folder" doesn't exist, set the
! m5 t/ t) a7 Y) [0 b2 B( r     default folder to be the root folder.3 i2 ~, p2 l  e' T2 y; S
  */
7 i4 g/ ?- D( r0 R  if (!folder_exists)
/ B* d0 w9 x1 ~4 V  {
: S2 _) F6 \& f5 w& o4 x    printf("Test Set Default Folder does not exist\n");! c1 t/ ^2 I: u# U8 n4 t
    CHECK(UF_UGMGR_set_default_folder(root_folder));4 q* d9 v; Y5 @5 G
    printf("Set default folder to %s\n", root_folder_name);7 A2 k) X4 u+ @) s% o
  }
6 g, F- S! J/ s! j+ c% J' _4 ]+ c; ~* ^  printf("Encoding UG/Manager part filename...\n");9 s7 L  ^2 w; i3 E" {" d( [
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,8 s0 I# l$ M2 N
part_file_type,' ^$ }3 T; s7 T' h7 K" _2 o4 O
part_file_name,
$ Z/ I  ]/ G5 P/ [! E$ \+ }' p3 p% Q encoded_name ));
! f& d! o& h$ p6 r# P/ B$ z( D" j  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
9 ]$ M  I. G- k# r/ a* b; k+ h  printf("Created part...\n");
' `1 |* \+ R' p$ Z5 j  N% ~0 y  CHECK(UF_PART_save());3 i: W2 {% J! m: ]+ Z
  printf("Saved part...\n");  c" u+ `! w4 M! `8 u
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));4 O, {/ p9 v# @/ E& B( _
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",
0 j: Y) b8 K; V% E"Mk3 Engine" ));
$ M( p$ ^5 c8 S" p  printf("Set part name and description...\n");
% Y/ s. v& x% C8 p0 G5 y" F9 v# ?  return 0;
) b2 j$ q  ^5 }" o  `1 u}0 M6 t# W5 Y3 I8 ~; F9 l
/*---------------------------------------------------------------*/
" c/ V- _2 ^  {* H# Fstatic int print_work_part_info( void )+ h# g' Z/ S9 K
{% x5 W6 i) l& h* ?9 n, x5 p8 A* m
  char             work_part_name[MAX_FSPEC_SIZE+1];
0 v. z, C- X) F( |  tag_t            work_part_tag;( z  D5 h$ ]2 s* c/ N
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];" {* S" X9 \8 c/ E/ N: B
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
  ~8 {; S0 \  S8 D$ s$ X( p  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
1 c2 U! }1 u1 L6 H" i2 N" c  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];+ `$ H0 e$ c) Z% O/ h  j* H
  UF_UGMGR_tag_t   db_tag;2 ]2 A" b4 U" y4 {  w/ ^
  char             part_name[UF_UGMGR_NAME_SIZE+1];6 P# A) A9 Q+ `% A9 \. P
  char             part_desc[UF_UGMGR_DESC_SIZE+1];! o0 d" v9 J) \9 o
  work_part_tag = UF_ASSEM_ask_work_part();: J1 p9 F- V8 T7 c7 m! O
  UF_PART_ask_part_name( work_part_tag, work_part_name );+ q2 S: d* {) b' e. Q4 L
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
' ]2 \3 {% Q) w- r+ o) n; S- S  part_number,
& P6 x# j7 Y6 R& r8 F2 `  part_revision,) O' y. U  @! W0 D& m
  part_file_type,8 q" r! s5 @; \' k5 ^: ]5 _) d
  part_file_name ));( E* I6 p8 i2 k# ^+ m" C
  printf( "For the current Work Part\n\n" );9 B3 |$ p1 D$ r( U; v' ~, n
  printf( "  Part Number      : %s\n", part_number );
3 f; p1 q$ ?; |. b  printf( "  Part Revision    : %s\n", part_revision );- |! p7 y9 R( _5 ]/ W7 t/ u
  printf( "  Part File Type   : %s\n", part_file_type );
) q% `6 C0 r" b, ]  printf( "  Part File Name   : %s\n", part_file_name );' Y( d: X( C. e1 h; |2 l
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));3 z: j9 }8 B0 g, v
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
8 _4 |  X' A  s# V  printf( "  Part Name        : %s\n", part_name );9 |2 A( r9 `: |7 A* L2 b6 ^5 Z
  printf( "  Part Description : %s\n", part_desc );
* S) V# e  J$ s  return 0;
, @& ^/ C4 R. V7 o+ U; P9 c$ r8 E}[/mw_shl_code]
% A9 G$ A4 [( E# _+ u# o) o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了