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 2515 0

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。
) u2 j# l. b: J4 w0 S; E, M
& Q; o' H3 g; O% ?0 W& }* L/ h' Z[mw_shl_code=c,true]
+ c# \' M6 ?; O6 h+ n  t#include <stdio.h>
) w* z+ J9 d/ y: M7 c. {# }( _#include <stdlib.h>
" z: H: G' U; j, f8 H% m( Y/ g& y4 R9 B#include <string.h>
" i, z  T3 _6 O. i#include <uf.h>5 x6 `5 c9 n" F+ Y) X
#include <uf_ugmgr.h>
6 ^. W0 W# R+ }; E  X7 ~+ D#include <uf_part.h>% w9 `' b& \+ x. i! P/ e
#include <uf_assem.h>9 l+ W  ]: `9 b* L: s
#define CHECK( func_ ) \# \, F. e: O  C7 R# U
{ int  ifail_ = 0; \
; R+ ?, l4 \* e. l$ R: P, P0 ]  char message[133]; \! N9 t8 P" I6 L
  ifail_ = (func_); 4 ^. L& _- W% G/ K9 O
  if ( ifail_ != 0 ) { \
% r+ K& n" D' k! T2 n/ ]    UF_get_fail_message( ifail_, message ); \$ {" W( r+ \" O1 e# B% E
    printf("ERROR: %s returned from %s\n", message, # func_); \% i( d$ W2 ]6 D. x
    return ifail_; } }) ^& J  H7 ~4 C+ X( S& @( U, j
static int create_part( void );. c9 K3 Y; G6 z; Z& Y0 K# }. m
static int print_work_part_info( void );. G' k2 ~  l( p
/*---------------------------------------------------------------*/* l: M/ W) U+ K+ }7 g* I: s
int main(int argc, char *argv[])$ `! }/ k0 `) o' Q! C2 C$ N+ N. ~
{
& w: N3 B+ |2 W4 U- t1 P6 Y2 \. O  int  ifail = 0;
  K0 G4 O0 x* a  ifail = UF_UGMGR_initialize(argc,(const char**)argv);( k6 @9 v7 E' a2 w
  if (ifail != 0)2 H: b! W+ v, Z' Y
  {
$ O2 R) D, k$ C    printf("ERROR: Failed to initialize with error code %d", ifail);
8 U# K. Y; ]4 x; S- K7 a    exit(1);- O  ]: c& j+ o+ W
     }7 E6 k/ h+ p* B4 P2 G
create_part();
7 G1 m9 B# p& r+ Y2 u  print_work_part_info();
" b# S( X1 ^4 _/ d/ S1 ]' ]  UF_PART_close_all();! z6 T5 }3 O' z5 C2 R0 ?: v( m: P  `
  UF_UGMGR_terminate();8 x4 N# a& O9 c. V( Q
  return 0;
  i% q! V- f: ~: w}" N  L0 u7 l& F/ X9 x# j/ n
/*---------------------------------------------------------------*/# |) q8 [% y4 ~* A# c# `  x  z
static int create_part( void )
8 m1 p0 C! K" V8 \( u6 h5 }{
2 o7 A2 T* d4 Y  char*                   part_number = "600-A-wej-mk1-eng";2 @1 A6 G5 F" N# X5 v' ], t" m
  char*                   part_revision = "A";, {0 Y" }% p  g/ g2 H$ t
  char*                   part_file_type = "master";
& e! y& n- D( I& F3 x  z( l( R  char*                   part_file_name = "";" u0 e+ w2 o: E: L) C5 ^/ z
  char                    encoded_name[MAX_FSPEC_SIZE + 1];+ A7 C% r9 _, l& s4 |
  tag_t                   part_tag;& K/ \* c& X- F4 ]
  UF_UGMGR_tag_t          db_part_tag;
, r& o4 X6 ?) H, e* y  UF_UGMGR_tag_t          root_folder;
1 @6 ~+ y! Q. }+ l  char                    root_folder_name[UF_UGMGR_NAME_SIZE];3 r9 U, ]8 Y: a) N/ R
  int                     i, count;3 `, S: p+ s) C7 X
  UF_UGMGR_tag_t          *folder_contents;/ X8 U, ^$ `: n
  UF_UGMGR_object_type_t  object_type;% x+ l" L8 |! _/ Y0 a
  char                    folder_name[UF_UGMGR_NAME_SIZE];. V8 T6 |7 i5 |4 X1 W: {2 ~/ A
  logical                 folder_exists = false;! r9 L4 A5 W- Z' _# Y# N
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
1 F' u1 K5 m5 p4 _4 z  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
7 d+ }  U  V3 `& u; I* L  printf("Root folder is %s\n", root_folder_name);
" {, _( M5 i7 m. Z  Z2 j* b  /* Scan through the root folder, looking for a folder called0 `/ G" {" O3 \* h
     "Test Set Default Folder". If this folder exists, set it to be
- N+ T" \9 l& c# x/ _     the default folder into which newly created parts are8 P3 z$ W) ~2 ~; S
     placed.
0 v' U  }) s4 `# U% O/ M  */1 e7 e5 a) ?6 n$ k* M
  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
$ S5 Y3 R; M: |, g  {2 x/ K  o  for ( i=0; i<count; i++ ); l  k9 e; x9 L3 T# U+ a2 |
  {
7 C4 A/ ^/ L. f% e' h7 _5 C: }3 {: g    CHECK(UF_UGMGR_ask_object_type(folder_contents,6 l: c8 ?6 a7 N4 x; T# \* A
   &object_type));0 m5 w2 v, ^$ I+ P
    if (object_type == UF_UGMGR_type_folder)
. W- T& C% i$ ]! ~; ^! e    {
" b0 W. b1 A" l/ p$ d      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));0 e2 @, v5 ]7 y9 [
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )8 F9 y: X/ l* n% X1 p+ o5 k0 k) f
      {1 L/ y5 t6 A, ]! z3 P! l  p. R% q3 s* l
        printf("Test Set Default Folder exists\n");
, V( s# a8 h2 q: ^& y! F! p        CHECK(UF_UGMGR_set_default_folder(folder_contents));5 J) }4 S8 B' y. A( ^0 A
        folder_exists = true;  A5 g  a' K/ r4 c
        printf("Set default folder to %s\n", folder_name);
5 E. Q- R; J) U* q- j- W. h      }8 L/ }" [7 {+ X- J  T
    }6 E" h  b" ?7 [1 ?" G% U0 i4 W8 r
  }
) k  `, d! u  @7 e- G" n  /* If the folder "Test Set Default Folder" doesn't exist, set the
$ l# x- ]& l7 n     default folder to be the root folder.
: U) u2 ^2 f4 B" V7 @  *// @! S/ J7 s+ x# W  N, F5 ~& U. y
  if (!folder_exists)
/ M: a4 f. r) e4 H. U! V( K: S9 n# d  {+ v7 `: h* |+ c% r: c
    printf("Test Set Default Folder does not exist\n");% k: F% V, ?) v) V! c  m
    CHECK(UF_UGMGR_set_default_folder(root_folder));% t: Z* h9 \1 H; v0 Y$ ?
    printf("Set default folder to %s\n", root_folder_name);! J7 ]# H8 I! U  `1 s/ y0 X$ ?
  }5 o3 \+ [9 b6 I, K) N& z+ _
  printf("Encoding UG/Manager part filename...\n");+ S+ M1 z; d7 Z/ k1 O, c
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,# |# ^% l) O8 H4 ^% o0 x7 s
part_file_type,! @( [2 W- y& X# W% f
part_file_name,' k6 b8 a( a! ~' g4 X  S
encoded_name ));7 O4 ]- H) R, y) o0 a6 i: w
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
! x6 C8 |/ }6 G  printf("Created part...\n");
1 {( Y1 W- D* `" S  CHECK(UF_PART_save());2 v% n8 k8 k& x  }. J6 e
  printf("Saved part...\n");) n; c7 J8 ]( t- @
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
5 t$ H; \3 \! k! l7 x1 n; F( B  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",
( V0 A9 \) X* n7 o. z' k6 K"Mk3 Engine" ));  F' i, L; v5 z& s+ R( r2 a; c6 E; ]
  printf("Set part name and description...\n");9 Z6 Q" S& {! s. e' m
  return 0;% @+ R- _9 _0 w2 k7 H/ |/ t
}0 V; @% W% W% m  N% c8 L
/*---------------------------------------------------------------*/& G' U, e6 U4 G" }# H# ]+ j% z. Q
static int print_work_part_info( void )2 J' J' S2 X. t( v: C
{- F5 T/ r7 p9 Z! Q; L/ J1 F$ {
  char             work_part_name[MAX_FSPEC_SIZE+1];( R( U" W$ g9 F; j1 _" G/ H
  tag_t            work_part_tag;
% Y/ S/ ?' a( D6 X9 y! C  char             part_number[UF_UGMGR_PARTNO_SIZE+1];
* y0 Q) w' [+ {  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
) n( o* t6 k: I8 Q  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];; Y7 L5 v- _& m, O/ t+ E$ c
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
* A- F5 Z' {8 G  H' @. z  UF_UGMGR_tag_t   db_tag;4 q: f7 G" r, W* c3 }6 D4 ~
  char             part_name[UF_UGMGR_NAME_SIZE+1];' J) Q  J6 C, @7 H: H
  char             part_desc[UF_UGMGR_DESC_SIZE+1];
6 O$ m: N2 r- S# T5 a+ x: t  work_part_tag = UF_ASSEM_ask_work_part();
3 j# A0 l8 _; ~9 J2 E& E  UF_PART_ask_part_name( work_part_tag, work_part_name );
' Y# F6 Z9 g3 j, z5 g& U  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
) {8 O! `# ^4 V0 L7 U  part_number,# z& p4 i& G1 d. z+ @
  part_revision,7 ^5 }' |) D' {" ^! j4 S
  part_file_type,( U+ [- R/ H( Z
  part_file_name ));
8 I& n! q% n4 L  printf( "For the current Work Part\n\n" );
% D+ I7 @& U+ d6 R6 _% A* m8 O  printf( "  Part Number      : %s\n", part_number );8 t8 c8 c  e' g: O' p7 V
  printf( "  Part Revision    : %s\n", part_revision );4 v# ~9 e: t, \: ~, t% m7 b
  printf( "  Part File Type   : %s\n", part_file_type );! L4 E  Q* I% J3 a$ K
  printf( "  Part File Name   : %s\n", part_file_name );
, x7 U. F0 z* @2 \+ d- a3 x CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
" U, S4 @7 c9 V7 d/ c5 B* S  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));  w2 R2 h. J/ S; g6 O
  printf( "  Part Name        : %s\n", part_name );
7 I2 v7 {" i' c* `  printf( "  Part Description : %s\n", part_desc );
/ H! ?3 J+ P* L! c/ K  return 0;* Y+ d+ {- Q8 i- w
}[/mw_shl_code]$ t( u4 w3 U- N4 ~2 }4 N: N# \, @( v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了