PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。# V# I5 C/ n1 N$ u
$ ~2 R7 W. {9 u
[mw_shl_code=c,true]3 \/ _" \( T1 P
#include <stdio.h>8 S/ ~, {0 J9 ]6 h* Z% Z  v* I( G
#include <stdlib.h>
2 v1 U: k' k. _2 E7 l#include <string.h>$ d+ ?, D4 ^% D( I4 U) s
#include <uf.h>
( Y3 |( E# a. H2 J#include <uf_ugmgr.h>
2 W/ a$ y3 h) ?#include <uf_part.h>* s) T0 d3 w0 k, J
#include <uf_assem.h>
5 c. O, \# p2 E, A& o#define CHECK( func_ ) \8 c0 u9 c- B8 |! Y/ e  a
{ int  ifail_ = 0; \6 [! `: [! j2 I
  char message[133]; \
% `+ l, y) c2 M- t( ~  ifail_ = (func_);
2 o- o8 P' A$ L' n, D  if ( ifail_ != 0 ) { \
$ o3 v+ [0 H$ i+ H    UF_get_fail_message( ifail_, message ); \3 y0 `- u- s/ }6 y( p
    printf("ERROR: %s returned from %s\n", message, # func_); \
$ c' n8 }) t* b: {6 r2 n    return ifail_; } }- H0 z! g) p" H/ {. H/ W
static int create_part( void );
+ q: G8 \; o" H) C* B- D# Jstatic int print_work_part_info( void );
8 C+ V3 z! g& o: W& e: w8 b/*---------------------------------------------------------------*/
6 D. ^6 u: s# d, K9 f) k2 k: eint main(int argc, char *argv[])
" m7 J( I% X% m3 \' N{
% s7 d0 ~8 q% c  V) S8 e4 W* d  int  ifail = 0;
$ I( H) o- k* C0 f- }' v" T! A  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
& H2 l( z8 _8 B" g3 G  if (ifail != 0)1 a' X; H" q5 Z; z8 t$ ^
  {
$ T$ j! m5 ~; f: w$ A5 A2 \    printf("ERROR: Failed to initialize with error code %d", ifail);
9 S0 _) x4 [/ v* R6 I5 T    exit(1);% S: d8 g* G7 g" G
     }. }8 Q2 }6 c6 g) i7 i( Z
create_part();
& ]2 N6 }0 j! a: M; g/ a4 B# D  print_work_part_info();, W/ S5 T, f6 \, T
  UF_PART_close_all();
% w* o6 u; c5 S& m0 ~1 ]$ |* v  UF_UGMGR_terminate();
  j: q2 z$ `) C! N+ D  return 0;
3 c  w& }  ~2 {$ s, x3 ~% v}" U& J- E# u9 K/ G7 W
/*---------------------------------------------------------------*/( ^  C9 c* W( s) D8 q  ~" R" |
static int create_part( void )
( u: D/ C9 r* R6 p{. i' w$ s" _8 A; d) S
  char*                   part_number = "600-A-wej-mk1-eng";$ d! P' y; m5 i* {# {& w4 w/ f9 l$ y0 ]
  char*                   part_revision = "A";2 @$ E3 x3 x( I8 Z% F- x  u
  char*                   part_file_type = "master";
: e* ~# s4 |5 L- g0 N" f# j  char*                   part_file_name = "";; n% L' o4 P# M9 I0 b: \1 p; j
  char                    encoded_name[MAX_FSPEC_SIZE + 1];
, P  y" B) ]5 o9 X  tag_t                   part_tag;
  v: O1 B9 s/ K4 K/ {8 ?  UF_UGMGR_tag_t          db_part_tag;9 w# |/ j( A7 m  g/ Q
  UF_UGMGR_tag_t          root_folder;  X% K% J$ @$ K: j0 z9 t( I" w
  char                    root_folder_name[UF_UGMGR_NAME_SIZE];1 F7 @  `. B% J8 Y5 j" T- K/ G
  int                     i, count;. x9 u# G. _- n) N; k* `
  UF_UGMGR_tag_t          *folder_contents;
& z. I' _& w9 [/ W1 k3 ?! f2 L  UF_UGMGR_object_type_t  object_type;) h: W6 x/ `  k
  char                    folder_name[UF_UGMGR_NAME_SIZE];
1 Z" P. }/ h0 x1 y  logical                 folder_exists = false;
) t$ a. m! U1 l  CHECK(UF_UGMGR_ask_root_folder(&root_folder));) P. Q0 b" S& t# X7 t3 G
  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
* _' ~) z4 d  V  printf("Root folder is %s\n", root_folder_name);: n, o, X. Q; d/ \2 b$ k
  /* Scan through the root folder, looking for a folder called% F$ i! _, ~# ?  u' P
     "Test Set Default Folder". If this folder exists, set it to be
$ e9 o( t2 U% G' H. k! M' E     the default folder into which newly created parts are& t6 }' o  b, G$ l
     placed.
2 N$ K# ~# T2 V- m4 |: V  */
/ |8 e6 K: S* Y9 I# f* v9 X/ B$ C  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
! [/ ?+ w( M/ S2 P9 a. y  for ( i=0; i<count; i++ )
2 {+ b- I+ R# C0 y# ]0 ?  {
  z. K' n( I; `* {, t    CHECK(UF_UGMGR_ask_object_type(folder_contents,% V+ ]/ @6 w; C4 T7 l
   &object_type));5 D$ x3 w" U2 C6 j5 @2 x
    if (object_type == UF_UGMGR_type_folder)
# u& Y1 f5 z' r4 O, h    {
9 I( T$ G6 Y# e6 t9 a' E$ t      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
6 C2 n  d8 j4 @4 x6 r) l0 H% H      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )  E8 R/ B2 R( v. W) H
      {
3 [1 c1 ^  Y3 O        printf("Test Set Default Folder exists\n");6 N; k  X$ o( x6 W4 N% y
        CHECK(UF_UGMGR_set_default_folder(folder_contents));
, K- k1 u: |( R  W        folder_exists = true;# l/ O  O. i4 k+ f! W( b7 u0 n
        printf("Set default folder to %s\n", folder_name);/ n9 a5 B4 u  f# ]/ F4 ~
      }
( S5 P7 W4 L1 c- |3 }  j    }8 l. K( K9 l8 l
  }
7 Z' ?$ `$ D9 y- O. F0 _! R  /* If the folder "Test Set Default Folder" doesn't exist, set the" ^" u  e5 c* f& l7 T: ^" t
     default folder to be the root folder.2 ^. t5 h7 J* R+ ~3 y" g4 h0 Y) P5 k+ F7 d
  */
* N/ ]3 N: {$ R  if (!folder_exists)
" u4 j3 C4 e8 E: u3 C  {  H' R4 P# d( W
    printf("Test Set Default Folder does not exist\n");: O% B5 e- |1 N. |
    CHECK(UF_UGMGR_set_default_folder(root_folder));5 `1 l. W6 y. f
    printf("Set default folder to %s\n", root_folder_name);
6 A+ X* A, l, T' R+ w  }
& @. p; S, w8 ]7 R( k$ O  printf("Encoding UG/Manager part filename...\n");
0 y% u) i  y6 O  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
& w+ u$ |2 }' {+ O8 c5 I0 n1 a part_file_type,
& w9 Y  D$ l9 Q3 R2 [, d  d5 T1 B part_file_name,
! ^7 U; w) u' e4 i- v$ H encoded_name ));
$ ~( z% {0 b. I  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
5 h8 R. e, B4 U  printf("Created part...\n");
* [4 {& B; L) c+ d! a7 ]- s- e  CHECK(UF_PART_save());
( a: `& b4 R4 k; h+ e9 \8 W" Z  printf("Saved part...\n");5 m3 Z, H, M% c2 q
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));, W0 K& n9 c; k8 }+ ]$ ]
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",0 y6 y8 C% D8 K0 D
"Mk3 Engine" ));( P& e" L  Z4 {' I( Q% H2 ~
  printf("Set part name and description...\n");
) ?3 z$ S2 Q! x) X( a  return 0;6 O& }4 b) g, C' G3 ~# ~
}; u- h6 D0 {5 G3 B1 f
/*---------------------------------------------------------------*/7 h$ D; c2 V$ t" s" }
static int print_work_part_info( void )
4 C9 \1 t. w( o; S$ A" f% p{
2 L9 x! r. M, K7 b9 R( Q  char             work_part_name[MAX_FSPEC_SIZE+1];
8 \; j) V0 G4 f  tag_t            work_part_tag;7 P- u( [/ L9 ]1 d' R! m4 I! `& K9 o& a
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];; ?/ t( ~+ T) b% r5 H( [# u$ O
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
8 C2 K4 j/ G& ^$ I. G9 z% s  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
/ J, B. F/ K  }4 C/ f3 I9 @5 h5 R  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
$ P4 F/ f+ x( u) l* \& B  UF_UGMGR_tag_t   db_tag;
9 Y0 [- p) s) S  R2 o- n- |  char             part_name[UF_UGMGR_NAME_SIZE+1];  E7 d+ R+ B8 a0 N& I9 {' I/ b
  char             part_desc[UF_UGMGR_DESC_SIZE+1];  U. D4 f& Z/ ]. T0 _
  work_part_tag = UF_ASSEM_ask_work_part();- T: z# O$ Q+ H# n  u
  UF_PART_ask_part_name( work_part_tag, work_part_name );" y8 ~6 B: h6 g
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,1 [# p  A6 {  z3 {4 w+ l
  part_number,
# y- H9 X+ `0 e$ v" Y  part_revision,  T- L0 p5 k: u" w, W
  part_file_type,4 U. o# W% f5 a# _0 c
  part_file_name ));) e6 Z6 [4 C' I1 G7 l
  printf( "For the current Work Part\n\n" );. m/ v! \$ P/ ~7 o' A
  printf( "  Part Number      : %s\n", part_number );! k! ^. y: V' H, }; m
  printf( "  Part Revision    : %s\n", part_revision );
, d; a' f5 w5 `& D- `  printf( "  Part File Type   : %s\n", part_file_type );
$ |1 ^" B( B1 _( W  j  printf( "  Part File Name   : %s\n", part_file_name );
- ^" p. X# T9 R$ g; O CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));  B. S" V% B" l- P4 b) o: s# q7 n
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
! W+ ]/ y: U% \; A6 F) O  printf( "  Part Name        : %s\n", part_name );
$ S. ~: Z4 ~" d1 s7 C  printf( "  Part Description : %s\n", part_desc );
( l# l* w4 M7 a  return 0;
, s+ P% m' ]. B5 w* O8 b}[/mw_shl_code]
6 ?$ ~, \. ^" ]2 w4 W
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了