PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2017-12-7 11:22:15 | 显示全部楼层 |阅读模式

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。
9 C7 Q; Y5 U" P$ ^/ |! Q) p, `, V
( T3 B. Z) E7 |* Y[mw_shl_code=c,true]
, P3 q7 o# D' _& h: X#include <stdio.h>
- x9 \: \2 y" [* J8 C+ r#include <stdlib.h>3 X3 ~0 g' a7 ^9 D8 {; c( T3 K
#include <string.h>( Y- z$ t: j, d' _* l: @9 }# t" z
#include <uf.h>% w0 C) q+ {4 |) f: K
#include <uf_ugmgr.h>; p9 g) l& k2 m( ]+ \9 @& w
#include <uf_part.h>
# ^4 p( @/ Y: z; m5 J#include <uf_assem.h>
( g/ G- _+ f+ ^4 D+ ~" s+ J% b1 j, q#define CHECK( func_ ) \6 x0 e1 C3 d5 R, S# R
{ int  ifail_ = 0; \0 V9 J7 j3 V* h  e! A
  char message[133]; \
0 _  _" V" y* ?  ifail_ = (func_); , ~" K$ b1 l) f8 E
  if ( ifail_ != 0 ) { \. W2 ?* [+ i9 ?4 f. p1 C
    UF_get_fail_message( ifail_, message ); \7 Y: C& O0 h8 J, u( `9 r" B" `
    printf("ERROR: %s returned from %s\n", message, # func_); \
" N: S# @2 y4 W6 a7 r6 ~1 [    return ifail_; } }
) [, e9 g7 C0 j2 ~: Wstatic int create_part( void );
  r# m4 z2 A% Hstatic int print_work_part_info( void );
( c; y6 s7 k. w) S/*---------------------------------------------------------------*/
% N9 A' d  B) w" ^, D. @3 Xint main(int argc, char *argv[])
( k6 K# G9 o# W9 @* a{5 H0 O0 M6 r  w6 S6 h
  int  ifail = 0;9 x# f# o% o9 c8 u
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);9 a+ P' w: N5 l
  if (ifail != 0)
* n7 ~- T% ~) i& h7 |  {5 A3 v2 q* g- b4 a; ]
    printf("ERROR: Failed to initialize with error code %d", ifail);- I( J! T2 e. |! A
    exit(1);3 F: c5 p& ^! h; r
     }* V2 N- y* a. N' c: Z3 k1 Z0 \1 _% p
create_part();
# G( J" H3 z8 S" C' k8 C  print_work_part_info();5 h! s3 a) ^7 U5 u7 e. K8 x& V0 W+ n
  UF_PART_close_all();1 y2 Z; ~) i. G: v% F
  UF_UGMGR_terminate();
$ Y# Q+ R5 X8 s, V6 c  return 0;+ P' E& N: s5 B  a
}
  b) g$ j& Y8 g6 C; ^$ u/ d8 c3 H% k$ o: t/*---------------------------------------------------------------*/
9 C& y# y; L4 c! e. X9 d* rstatic int create_part( void )7 E( a' z9 |3 U" W5 u- U, {
{5 Q9 O& i/ z4 n0 o+ E9 E7 M
  char*                   part_number = "600-A-wej-mk1-eng";
( R* F; t# Z4 p" d  char*                   part_revision = "A";
0 C8 }) h2 d" _  char*                   part_file_type = "master";
6 V0 J- U& q! |  E# P6 _) P  char*                   part_file_name = "";+ @. E- }# _2 J/ h6 G; g4 d
  char                    encoded_name[MAX_FSPEC_SIZE + 1];& f" H  _* S6 [; H- ]* j' m4 f
  tag_t                   part_tag;
0 H* t. R/ w; Z+ _4 e7 s9 i  UF_UGMGR_tag_t          db_part_tag;- S# a- Q; v8 W( w
  UF_UGMGR_tag_t          root_folder;) B$ C( C6 J* ]  b4 U" C' C, f) q' N: u
  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
! R/ I  `, R" t8 v  int                     i, count;: s- W5 K9 c7 Y6 O% @5 A7 s: c& I$ n
  UF_UGMGR_tag_t          *folder_contents;. G" |) B5 a! F0 G5 G8 Q9 V
  UF_UGMGR_object_type_t  object_type;$ X" Q# j* X: e6 M
  char                    folder_name[UF_UGMGR_NAME_SIZE];1 r! h2 A/ k) W' {5 L, `0 r
  logical                 folder_exists = false;5 L1 |5 K! h+ U' X+ p
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));2 ^6 Z; ^: H) D9 j* H: [
  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
% o' s: \# h6 L8 `# N$ s# m3 b2 h  printf("Root folder is %s\n", root_folder_name);
: b% y; y( y9 h! ^* T  /* Scan through the root folder, looking for a folder called
3 c6 s% a: s0 p3 T* I, A     "Test Set Default Folder". If this folder exists, set it to be
8 X) H* w4 N% l7 H7 `: Q     the default folder into which newly created parts are: c+ C- T7 f5 o0 _
     placed.5 N% r) O* Q/ g6 x) ?; t1 G" [
  */
& Y6 A7 j7 c- ^5 V* M) k, [0 l  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));0 ]+ \- Q8 `' s7 J
  for ( i=0; i<count; i++ )
% R* L( O. o2 T3 B  {# Y7 Z9 a: V8 t$ [
    CHECK(UF_UGMGR_ask_object_type(folder_contents,6 H) K# o8 G* X7 w0 K( {0 P0 z
   &object_type));
. D4 [6 G6 @1 E0 o4 W$ i    if (object_type == UF_UGMGR_type_folder)+ S$ d& G) R0 f$ f' w
    {
' `7 y; a3 D( s% ^( e. ?$ x      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));+ P3 U# z: r& \3 t
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )5 F/ i8 t+ s: {: c- Z3 U9 w
      {
& a6 u: N6 d( J7 y5 _0 t7 k        printf("Test Set Default Folder exists\n");
2 P1 W/ R  \4 s# m( v2 Q        CHECK(UF_UGMGR_set_default_folder(folder_contents));( l9 w0 ~; @# o* M, l2 U: [3 g
        folder_exists = true;
6 j* g; P* q& h4 g$ i        printf("Set default folder to %s\n", folder_name);) I0 O/ ^, M& F
      }. T$ Z" S2 F( Q( J) r) [# n
    }" l" d8 j  ]% o/ }
  }5 z, E7 j# T" w; U- f
  /* If the folder "Test Set Default Folder" doesn't exist, set the. B7 q! {% Q6 K6 }4 \0 a; ?
     default folder to be the root folder.  F2 a4 g8 r2 f+ M" I6 o
  */
5 q8 L! ^7 A! b& f) k" J  if (!folder_exists)3 }9 w6 s0 b! ?  E6 ^
  {
: x" h0 c" I5 C2 Q; T# i    printf("Test Set Default Folder does not exist\n");
  j, c, ^* ^# G- \    CHECK(UF_UGMGR_set_default_folder(root_folder));
3 X; o: X6 M0 _1 v    printf("Set default folder to %s\n", root_folder_name);
3 ^+ \* m3 g0 c! x3 p  }
3 d% `2 {. ~# m7 A* C# A' m* c  printf("Encoding UG/Manager part filename...\n");
! D0 g  p' K  j: A- _% m2 p( G+ q& X  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
, y: x; C3 b* S9 H6 Z( j' o% f+ L part_file_type,
+ j. }5 V, o  S" e part_file_name,
' Q5 _& W% Z# }# U encoded_name ));4 v( f/ L$ z" [2 J$ V
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
0 i+ T8 u3 l- c  printf("Created part...\n");1 U2 a  p+ k4 j4 l8 Z
  CHECK(UF_PART_save());
; Y/ u% s2 ~" A7 K) @8 ~. }# u  printf("Saved part...\n");
4 z5 ]7 f( |/ N+ H* @  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));% C7 Y" s% W7 u# S& z) `
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",1 \3 b2 ?8 M- f
"Mk3 Engine" ));2 Q' C. E, K) U$ y2 q" J
  printf("Set part name and description...\n");
; c5 I  `! j+ i' t/ N  L: Q  return 0;
# a$ [: h4 S# X9 c3 T) ~}( \8 D) X( G# v
/*---------------------------------------------------------------*/
/ j3 Z8 o6 U# w% c& n+ {) W8 Rstatic int print_work_part_info( void )
8 P4 V* m1 x: c4 f{
3 h# i# q: `) ~  char             work_part_name[MAX_FSPEC_SIZE+1];' H( y; g; S) T0 ?$ k5 O
  tag_t            work_part_tag;
4 d6 ^; A' J6 W2 L' F5 R  char             part_number[UF_UGMGR_PARTNO_SIZE+1];. s5 }0 l! j- M1 \- {: C. @4 }- v
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];$ I1 w; I' M9 q
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];4 Z5 |% K; v% g0 {' O! @, h  M  C3 D
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
) D0 w+ C/ K8 L  e" x, g  UF_UGMGR_tag_t   db_tag;
+ \9 `! C# L+ y6 z# y7 P  char             part_name[UF_UGMGR_NAME_SIZE+1];
2 ^2 y. G7 r# r/ n; e  char             part_desc[UF_UGMGR_DESC_SIZE+1];
/ p3 J3 [/ P( @4 @3 y2 P" U  work_part_tag = UF_ASSEM_ask_work_part();
' n6 ?1 g6 r" o( l8 F  UF_PART_ask_part_name( work_part_tag, work_part_name );- N# J& |4 Z1 c1 q. b3 |  ^7 v
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
, i: |# j1 v. m* Q  part_number,1 l4 v0 n/ P* p$ [2 V0 z
  part_revision,# n; h& C; j/ v- I
  part_file_type,
9 r8 C  \" a9 o$ ?( W8 _; v  part_file_name ));
6 x6 V+ Y+ C* Y9 F; d  printf( "For the current Work Part\n\n" );' \: j/ k1 g8 j8 `% t
  printf( "  Part Number      : %s\n", part_number );
, g; m8 v7 A2 j* K, N  printf( "  Part Revision    : %s\n", part_revision );
: V2 s' I% z" A* N. x* Z" _  [  printf( "  Part File Type   : %s\n", part_file_type );* P  B6 }6 Z! `$ q
  printf( "  Part File Name   : %s\n", part_file_name );; M. @3 ?4 B2 }. W7 _
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));* S& ]/ Q4 h1 x1 E
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
$ q: N: L# T& o8 @! ^) u& c  printf( "  Part Name        : %s\n", part_name );
7 b  n0 F% b( `! i) i: F7 j  printf( "  Part Description : %s\n", part_desc );' O$ n( J6 l# S5 g# t
  return 0;9 d% \5 ?9 p% J3 L
}[/mw_shl_code]
1 F. f) Y) j8 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二次开发专题模块培训报名开始啦

    我知道了