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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。4 W9 E% A# W* R2 \
4 G1 U, s9 `3 e6 ~9 J% a1 `. j
[mw_shl_code=c,true]) ~/ |9 E5 n5 [- m
#include <stdio.h>
+ S: v9 G4 I+ y# n1 D- ~! b8 F! s#include <stdlib.h>+ Y4 d/ }1 b0 a9 s! f
#include <string.h>
1 q4 m: G9 z4 M0 n3 @#include <uf.h>
* \5 `8 x' O+ K5 W) j4 X#include <uf_ugmgr.h>
+ r. x1 L) k. Q#include <uf_part.h>
8 {, S: `! f% {- d2 _; V* ~#include <uf_assem.h>
1 f5 S# z" ]" \1 a9 e: f1 _; F#define CHECK( func_ ) \
7 s+ P+ `6 I8 Z) T4 n; d( y  N{ int  ifail_ = 0; \: g1 @0 H6 B6 d' O  D
  char message[133]; \
! h3 R+ P1 O" W; y. _. ?2 w: L  ifail_ = (func_);
5 x+ X& v4 D' V3 X  if ( ifail_ != 0 ) { \
& |: G+ I( g2 n/ F4 `* ~    UF_get_fail_message( ifail_, message ); \
% |4 a& c2 A( S6 }7 M; e* x3 v    printf("ERROR: %s returned from %s\n", message, # func_); \) r8 F  z- W* \+ o: S5 ]! [
    return ifail_; } }
5 G2 D$ o+ V8 N' A( ^9 p; |( B: Ystatic int create_part( void );
$ Y3 z! h" g( @, Q& B1 z! ]3 N' astatic int print_work_part_info( void );
9 ?* H+ z) q! L: Q2 E" p1 X" H/*---------------------------------------------------------------*/
# [7 B) n4 M- p5 S7 V, t  c6 jint main(int argc, char *argv[])0 x. b: Z2 C& n: D5 ^
{
, |  C1 f2 t6 |4 I5 |6 R3 a  int  ifail = 0;- I9 t! O2 a) `3 D3 C
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
7 E% I3 n/ W% R  if (ifail != 0)  ^" q3 g# x. \1 M! `1 p
  {
2 P5 y4 W( U) y    printf("ERROR: Failed to initialize with error code %d", ifail);( _" |4 b* Z& _3 n8 S& k1 f
    exit(1);. s; V. ~+ I( P; x9 V0 }, V& S
     }
+ @- Z( l6 j, A2 W/ ?) H create_part();' u# J- i0 W+ z# i
  print_work_part_info();
8 L5 |& L8 h! `: G' J  UF_PART_close_all();" n( @5 y- o1 x; o& ^& ^: F
  UF_UGMGR_terminate();- y  x- ?5 r6 Q& L
  return 0;
) z7 v& ]8 u  @: }- z& R5 W}( x; x; a. j( V2 y) r
/*---------------------------------------------------------------*/
+ m+ o- u2 u1 U! v5 N2 ostatic int create_part( void )
& ?) ?$ _2 o& W! P+ |5 y: P% P{
' l1 U" |( t' U% f/ h; x  char*                   part_number = "600-A-wej-mk1-eng";
& Q3 s! ]' q6 E% a  char*                   part_revision = "A";: I7 _0 H. f* u$ }
  char*                   part_file_type = "master";
# G3 j! ~& f  Q! e  char*                   part_file_name = "";
3 w2 u5 p2 |* J! O0 s; @0 z( [  char                    encoded_name[MAX_FSPEC_SIZE + 1];" S" l3 F) F' d% `
  tag_t                   part_tag;
  z2 h  c& v# \# u$ S' f) x; ?  UF_UGMGR_tag_t          db_part_tag;8 x: R$ q8 |* k
  UF_UGMGR_tag_t          root_folder;+ H4 u# W4 h/ k- Q# }1 h: P7 d
  char                    root_folder_name[UF_UGMGR_NAME_SIZE];! P, B2 C3 w6 q! m" x
  int                     i, count;& X" l! I) W# C4 h6 P& w
  UF_UGMGR_tag_t          *folder_contents;8 H, u% W* l  R8 e" ^* n1 Z# H
  UF_UGMGR_object_type_t  object_type;* D" K* A" ]% s1 ?
  char                    folder_name[UF_UGMGR_NAME_SIZE];
3 O8 G% I* l( y! G. X  logical                 folder_exists = false;( \% W& l% F1 q, e% ^8 e) R
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));' e" ^8 D& |$ A, |9 n9 _( ^: G
  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
- ]  z* ^1 A: U9 A4 }4 c2 E( X  printf("Root folder is %s\n", root_folder_name);8 K9 i3 b+ [. c. }* C8 F
  /* Scan through the root folder, looking for a folder called  `' o( ]. M+ x
     "Test Set Default Folder". If this folder exists, set it to be
  }4 [# C- Z$ X' \- H* p( x& A. ~! i     the default folder into which newly created parts are0 }* _4 b' ?6 t) p$ ]- m) a4 z
     placed.( e' |3 a1 }  A! {: }" N( `
  */- F0 l2 i" r( k2 ^) t2 ^
  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
, r: M% v3 t3 q8 L7 ~9 S/ c* Y2 T  for ( i=0; i<count; i++ )8 h6 j% U; X$ A5 C
  {
5 ]) o% R6 g  O    CHECK(UF_UGMGR_ask_object_type(folder_contents,
7 V3 k9 \. j8 e% u1 L$ W! Z' S2 E   &object_type));
1 p0 P# h1 z/ I# W& E" N4 C% K    if (object_type == UF_UGMGR_type_folder): o! R! \  p1 N1 M5 }" h7 n6 v
    {
# _) \. x6 i5 }- a9 n6 o      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
7 d5 ~  Q0 B0 b      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )% \- e% F; w) Z, i4 Y; n
      {2 D6 L$ Q# z  i! K9 Q
        printf("Test Set Default Folder exists\n");% u! ~: x; e, O9 x
        CHECK(UF_UGMGR_set_default_folder(folder_contents));
0 j* S7 a! U& m- ~, \/ A# A, V: u        folder_exists = true;9 ]4 c+ g5 p" g2 k( k  t
        printf("Set default folder to %s\n", folder_name);2 b, {3 A$ y7 M* F
      }& \7 ^. y: E# h; u' P
    }
- D+ M7 q+ r" q; f  }
' E. Z; R; i8 Y1 \  /* If the folder "Test Set Default Folder" doesn't exist, set the0 c( F0 P* g' J1 o' e0 F) r
     default folder to be the root folder.: J6 l7 I0 \+ l% |7 }3 m
  */, v( \  l* t6 U; n! _) C) A' Q2 _; G$ h
  if (!folder_exists)
8 R) G7 K! j' w" x  S6 [  {/ `7 u, [4 v, H# h! x  @
    printf("Test Set Default Folder does not exist\n");
8 C& {* j9 x5 ^" n$ f2 A9 \    CHECK(UF_UGMGR_set_default_folder(root_folder));
" R7 T6 ~6 s0 |1 ~  A& q    printf("Set default folder to %s\n", root_folder_name);
& T: ^. j3 y, a2 g6 Q& Q% e  K  }8 s- L5 K/ b3 y1 C/ g0 u2 r
  printf("Encoding UG/Manager part filename...\n");
- u/ Y) H" ?0 K# x! `; G  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
' E7 q4 K8 V5 U" f4 M part_file_type,, A% a; Q: T; i% i9 H5 M0 K
part_file_name,
; A7 W0 c# r7 g5 W! U encoded_name ));7 k6 ~4 B9 Y$ P+ k9 s. P! ?& s$ F
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
) i' |4 \% m. E+ u2 y& D. [( g  printf("Created part...\n");' _+ b- \7 `8 r+ T
  CHECK(UF_PART_save());/ y6 W+ d# P$ I( v& O: c
  printf("Saved part...\n");7 c0 n  N6 H+ ^# L5 h# O! {# {- y
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));8 ~4 u! W- ~  K. @
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",
% K) p- L; y" Y% `# Z% Z"Mk3 Engine" ));
- A7 \7 [0 N3 q4 n& D. a9 C( T  printf("Set part name and description...\n");7 C5 w$ `! M% p! q& |5 I
  return 0;* S# R) M! S1 l( N7 F) T6 v: i
}
: w: }4 d; r+ I$ b/*---------------------------------------------------------------*/1 Q$ N7 [/ F% r" a0 h3 C6 {/ u$ z
static int print_work_part_info( void )
3 O+ V2 Y0 ~8 @' }% w{
2 w! K- [( b3 m  char             work_part_name[MAX_FSPEC_SIZE+1];
; \- t5 K; S/ p/ C; d4 P( V7 d  tag_t            work_part_tag;
: t. u5 m$ o; k: t. U; a5 k  char             part_number[UF_UGMGR_PARTNO_SIZE+1];2 y* R% W" B! K% d: U5 N; K
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];% S8 V# d9 C2 @0 P
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];* w0 j( E2 d; U" L; P0 E2 [
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];6 c" k$ P, V; a+ K0 h( ?4 H  q) A
  UF_UGMGR_tag_t   db_tag;
; B/ a% P' H( M( ]# r  char             part_name[UF_UGMGR_NAME_SIZE+1];
3 T( s0 b. [0 L* I; O" J  char             part_desc[UF_UGMGR_DESC_SIZE+1];
3 J3 |  K5 _" `* g) \$ }! s; D) T. S! V  work_part_tag = UF_ASSEM_ask_work_part();: v. t% [  a4 \' v3 H
  UF_PART_ask_part_name( work_part_tag, work_part_name );& q0 H0 C  S1 y! r+ o2 C# T
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
; e  Z6 Y3 W: j, o" P) }  part_number,
+ f9 [& A: U: l5 m, `  part_revision,
) f% R0 y5 U! u5 O5 b2 R  part_file_type,6 K7 G' U. l/ J  t2 j$ ^
  part_file_name ));
* [% n. y( `' W  printf( "For the current Work Part\n\n" );, S% Y4 `" i2 A  P$ a" u
  printf( "  Part Number      : %s\n", part_number );
) ?* T2 K: a! j  printf( "  Part Revision    : %s\n", part_revision );
, \! O/ Y3 ^" p3 k  f+ [% {; w  printf( "  Part File Type   : %s\n", part_file_type );
* y" D1 R- _& k7 u. Q2 X- T( k: |2 C  printf( "  Part File Name   : %s\n", part_file_name );
/ k# Y1 ?3 A' \5 c* h CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));( l% L) p( \' N4 H8 f. n' ]7 {% K
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
9 x6 U  x: j* G+ c2 G- z  printf( "  Part Name        : %s\n", part_name );
6 L. i; M- e" f) v( N4 J5 p  printf( "  Part Description : %s\n", part_desc );5 g* P& r2 Q4 u$ d
  return 0;" l+ `9 I' J8 T1 D; P8 S4 ~- @
}[/mw_shl_code]& {' }% e, }# z3 N9 q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了