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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。$ M2 W% G1 H7 t& U! ]

$ c2 D7 k0 X4 k' Y! w2 I[mw_shl_code=c,true]
% H3 a5 U' s, B, f$ P- s2 `& {#include <stdio.h>2 }6 j5 z- Q# J! A# K# l
#include <stdlib.h>
3 A& s2 D0 b' V: `: a' j#include <string.h>
& U/ `8 S9 y+ B# U; v) c2 X5 E- E6 b#include <uf.h>- W( [5 Z% y7 K1 q4 \: S) D( n% |
#include <uf_ugmgr.h>
/ t, |! r: I' q- N5 X) t#include <uf_part.h>9 I+ b5 `$ `% E; x- ~7 X
#include <uf_assem.h>
/ {4 ]- x: v+ @+ F5 o" `, g3 ^#define CHECK( func_ ) \8 u. M+ {6 n7 M7 V! _( m
{ int  ifail_ = 0; \7 i0 u9 b0 ^) K- {. v. S8 X! [
  char message[133]; \
) N( F4 W$ v2 o2 S! T  ifail_ = (func_);
* e4 T/ f0 F% ^( h  if ( ifail_ != 0 ) { \
  O2 P& y0 ^$ l    UF_get_fail_message( ifail_, message ); \
$ g% B; {. K* C/ X5 ~6 k- c* E    printf("ERROR: %s returned from %s\n", message, # func_); \
" _2 C( L& l" S7 M    return ifail_; } }- h* ~: Z5 ]7 r0 Y' Q4 F
static int create_part( void );) V" _0 P. b$ S/ k& j7 ]
static int print_work_part_info( void );
8 \9 M9 [  v3 ]4 C+ T3 L* a; _/*---------------------------------------------------------------*/
+ s8 T5 G! n$ x& y+ {2 L6 m1 Zint main(int argc, char *argv[])
8 S8 l! n+ a! G9 p: _{5 R8 [' ~; @# t% k$ H
  int  ifail = 0;( C" i% w: a4 o3 q2 S
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
8 M! o4 O, K4 e6 X- G( j; u  if (ifail != 0)) s" x; e6 Y& w% t; O) x
  {
4 {: \7 a* I7 }- P8 }    printf("ERROR: Failed to initialize with error code %d", ifail);
% [7 ~+ x! O7 |% [- D. V    exit(1);# \( Z$ H" Z" x4 N) K0 n# [: e
     }
/ u4 V. U/ v" b4 ^5 A2 R create_part();
1 I) F, k5 E  L3 k- J3 _  print_work_part_info();! p0 O( [6 w' W3 u" L, V& C
  UF_PART_close_all();
& \1 B% F+ [  I  UF_UGMGR_terminate();
1 a1 Z0 k! h+ A/ b  return 0;2 X0 k0 _$ Q; n) m* {% s
}7 z8 c; H$ U* `& D9 C8 ]6 |
/*---------------------------------------------------------------*/
4 B0 Z# Z- _( U: m( m) i, u* _static int create_part( void )
6 r1 n8 P5 E2 }4 m. Q! ^4 D{
* K3 g' I3 E* w# B  char*                   part_number = "600-A-wej-mk1-eng";
& d. n9 J# X3 i( D  char*                   part_revision = "A";
0 R1 H; M  Q) i0 N6 T4 d  char*                   part_file_type = "master";8 r" {' u% L7 @! S
  char*                   part_file_name = "";
" N; e4 ~- S  Y1 e( y! V$ r# m  char                    encoded_name[MAX_FSPEC_SIZE + 1];
1 h# V4 W& F' `5 Q! a  tag_t                   part_tag;  W! n& X7 Q% |; D# J3 ^
  UF_UGMGR_tag_t          db_part_tag;
  q6 \4 r/ A& I$ k/ E2 v  UF_UGMGR_tag_t          root_folder;# z; d/ w8 ~7 B) y
  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
/ X7 M# F4 G. G( _. `- M4 V  int                     i, count;; [- @3 [3 h1 Z' u) n, m* d3 s
  UF_UGMGR_tag_t          *folder_contents;
2 b- o% Q, ]* M2 \7 S  UF_UGMGR_object_type_t  object_type;
& D4 B8 U6 J5 ]8 M) s2 z1 z: V! v* |! W$ {  char                    folder_name[UF_UGMGR_NAME_SIZE];! A) ?% l5 C4 x# U8 s
  logical                 folder_exists = false;: a7 @, v7 E  O/ B+ O
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
2 C3 {0 S$ B& Y: j! w; l  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));0 P/ p" Z3 Z- Y% T
  printf("Root folder is %s\n", root_folder_name);7 o. z0 ?) R) x- X
  /* Scan through the root folder, looking for a folder called5 S! |% A1 [9 g' ?; V% H) w
     "Test Set Default Folder". If this folder exists, set it to be
0 V7 V0 G$ F$ h: k     the default folder into which newly created parts are2 @2 n9 X' B8 |9 a9 ^
     placed.- B( X7 \% \  g
  */: T  E, x1 V# v. ^; J; J
  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));( T/ ~; _. R: y$ l8 ~
  for ( i=0; i<count; i++ )% l3 @5 R8 s& @, _
  {3 ?* Q, F' q/ s: v0 G% ?
    CHECK(UF_UGMGR_ask_object_type(folder_contents,
! p+ t2 x0 T; Y$ f4 V8 o- q   &object_type));/ U5 t6 s; w" x( c6 A7 X+ c
    if (object_type == UF_UGMGR_type_folder)
: O1 ]' ]+ g1 `+ F& i    {
# B, W4 a7 }  e/ n6 G% [3 D      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
! l0 A! V+ o+ A7 N* ~      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )3 s# V- {- O$ J" {8 L; w
      {
4 ]6 j0 H* ~. H- Z        printf("Test Set Default Folder exists\n");
" k" `1 y* n/ H0 m+ F; j        CHECK(UF_UGMGR_set_default_folder(folder_contents));; D# Y& @8 `& ]' `6 ~
        folder_exists = true;
- v  ^. J7 h8 V) F- ~        printf("Set default folder to %s\n", folder_name);
% _" P) Z, l" j# A      }/ D& E& `+ U6 _; S  w
    }
7 ^1 Y2 \1 ~* O9 S  K  }) S6 j- M" @- n  ^# S( o9 c
  /* If the folder "Test Set Default Folder" doesn't exist, set the/ r. ^6 n( a' p5 g  f5 l1 A" D1 I9 I
     default folder to be the root folder.  S0 a4 G/ d7 z) m7 m/ Y6 B# }
  */3 R6 a% \" i; k1 a+ v- K
  if (!folder_exists)) e( h5 t; S2 N( Q( w3 [
  {' H3 C& [6 V! k! K+ n: K' i
    printf("Test Set Default Folder does not exist\n");
  y5 z' @% t% f  r    CHECK(UF_UGMGR_set_default_folder(root_folder));
- x+ B8 O9 K; g# t( h- ?: ^    printf("Set default folder to %s\n", root_folder_name);
1 ~9 a7 ?6 @6 ^7 n& p  D  }& ^( F6 ^* L: }8 ^' ?" I0 r' l4 D
  printf("Encoding UG/Manager part filename...\n");
  P/ y& @, d" B, }  ]8 b  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,* O, s* o) R* r/ F* w3 G
part_file_type,
! x* ]+ l  J8 }+ { part_file_name,
; g: e* `" W( [) r) Q% W encoded_name ));
, I" Q' [/ L" G" |: T  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));7 r" R5 R0 x; |6 g, X$ {) o
  printf("Created part...\n");/ `: |; f$ Y+ l% Z% j. Z
  CHECK(UF_PART_save());
7 X0 \$ }+ G, E; A& n2 L) d  s  printf("Saved part...\n");
- q9 S  b2 [$ s  A: r" s  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));" l( o' G& s3 I1 m* l3 x
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",, Z$ z' I: W; m# S( I- |+ o: ?
"Mk3 Engine" ));1 `2 }" [+ C1 b  K7 M
  printf("Set part name and description...\n");/ b& E0 P1 T3 F2 B& D$ |. Y  k. Z
  return 0;
9 |5 q: i6 x# t: ]2 o, b; z  p1 g  f}
. V( \2 P6 S' J; T/*---------------------------------------------------------------*/- h! E) p' x/ P6 h$ N
static int print_work_part_info( void )/ Y- v# U+ u& r5 T
{
, y8 l  b/ y5 D! h; M- ^0 r3 z0 l' F  char             work_part_name[MAX_FSPEC_SIZE+1];
! B1 X' W' B: Y. I' H' x6 k  tag_t            work_part_tag;! c7 X! z" c( w% i" Z1 \2 Z
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];
. G  O+ N6 P9 I- \* y( v3 ?  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
( r" k; p& c( Q+ Z2 N- F* o  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];. s( z! u/ J0 N# z$ ?, ]% h
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];: j) v! t5 ~: x
  UF_UGMGR_tag_t   db_tag;  C$ `, K! ~& }1 `
  char             part_name[UF_UGMGR_NAME_SIZE+1];
, a! \6 L8 c& x+ H  char             part_desc[UF_UGMGR_DESC_SIZE+1];6 H- n2 k0 i% V3 N2 I" r4 |
  work_part_tag = UF_ASSEM_ask_work_part();
* q; `, Q: L2 y8 ]" }8 w& F7 c  UF_PART_ask_part_name( work_part_tag, work_part_name );" z- N) y: r. B1 O8 {
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,4 \4 a) p: G9 Z8 B
  part_number,- w/ M. a( X) I' W/ z
  part_revision,/ v- {7 O: ^& C* n% A* d) G% U
  part_file_type,
7 Z; c8 X  P/ z1 M  part_file_name ));
. X4 |* G+ A: `  printf( "For the current Work Part\n\n" );
  f( ~4 W6 W: ?  printf( "  Part Number      : %s\n", part_number );+ k  F5 _. }) {5 T
  printf( "  Part Revision    : %s\n", part_revision );
1 ?! w$ \; B6 Q4 _$ n  printf( "  Part File Type   : %s\n", part_file_type );
3 p. R2 L0 X$ x' q  K  printf( "  Part File Name   : %s\n", part_file_name );6 N, V' {" v: d& t) I' M+ r
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
' l4 ?4 I# W* J" P3 ~8 M+ W  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
' _# _) h6 B' h  printf( "  Part Name        : %s\n", part_name );8 }( W# @3 ?0 A! y5 g$ D2 _2 ?7 f+ J
  printf( "  Part Description : %s\n", part_desc );
7 e& A% L- T7 x( Z, P- n  T  return 0;( S: C3 t2 X- c# W8 q
}[/mw_shl_code]7 @* ?! C' ?6 s3 r& C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了