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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。
. ^2 B4 p" Y' R  p, |. E
; @. B, f0 `! P; F[mw_shl_code=c,true]
2 m7 P  \. W) K3 R$ X$ s' }#include <stdio.h>
3 W4 @  M$ b$ w% g8 ^1 b4 ^0 n#include <stdlib.h>3 k: b9 d/ f, M' r3 }: l# t
#include <string.h>
3 G9 o; w0 K4 P* x, q. J8 }  G#include <uf.h>9 H2 i- Q: I+ q% \! c/ m! l
#include <uf_ugmgr.h>
+ p1 z" F6 H& K: p+ A, M#include <uf_part.h>: }$ u5 `9 [: L( z
#include <uf_assem.h>
; B1 w/ ?+ U  N0 [4 s! ~# o1 O#define CHECK( func_ ) \. x+ T5 @% c) {: `; ^+ ~9 {4 b
{ int  ifail_ = 0; \
& o7 g% D1 K/ _: R6 w  char message[133]; \. x% Y3 a) M/ h
  ifail_ = (func_); % n  t  E! |- w/ C
  if ( ifail_ != 0 ) { \
' E9 U5 t$ `8 K& m% ]    UF_get_fail_message( ifail_, message ); \' X; A& p- O! V# j
    printf("ERROR: %s returned from %s\n", message, # func_); \) K8 f0 L: l. K6 p3 j( h9 l' I
    return ifail_; } }) W* p. `: u: ?/ `
static int create_part( void );8 f' s5 a4 ]9 X. k' r6 F8 v! H
static int print_work_part_info( void );/ R) N7 H, B) \' b  j, |
/*---------------------------------------------------------------*/  N2 @0 s- A; T; h1 P  O9 x
int main(int argc, char *argv[])
2 u, E  c7 Y5 l{
: y- o4 M+ U/ c+ l. ~8 s  int  ifail = 0;
) Z& V5 Q3 p% \# N9 i/ G9 ]  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
5 w8 f4 M0 e5 g5 o# w  if (ifail != 0)
& M* B' S7 O5 b6 Y+ t  {$ E' v4 P, b2 m& |& Y6 c$ u7 T
    printf("ERROR: Failed to initialize with error code %d", ifail);
: v* q: d$ S: ^6 `    exit(1);
$ E& u, K. m! G9 w9 S% q2 c     }) c* w2 s! n  O! w, `9 C
create_part();
5 w- }! r1 i0 v& Q  print_work_part_info();
9 y4 z6 U3 H& g0 F. L  |  UF_PART_close_all();1 ]5 W% [7 w& s$ k% I/ Q
  UF_UGMGR_terminate();
5 V" T2 T( F8 B1 H  q9 f9 d  return 0;
0 l  q: v! ?  _5 y}& _1 f1 c) L5 Q* @7 _4 L5 |9 ]
/*---------------------------------------------------------------*/
7 W. x6 O& q5 s, n! b& J4 Jstatic int create_part( void )! T" S! y. Y9 A
{5 ~) ~! X. X& a7 G# M2 X$ C
  char*                   part_number = "600-A-wej-mk1-eng";
6 J4 n6 C' q! j3 |3 P  char*                   part_revision = "A";/ a' t, [# c, z
  char*                   part_file_type = "master";
; h5 Q# p) q! u$ P  char*                   part_file_name = "";
0 P+ x) F. M2 d3 l  char                    encoded_name[MAX_FSPEC_SIZE + 1];
# [! x! _$ @# Q. Z% l7 A" @  tag_t                   part_tag;
0 i( V, }( j. p5 k3 P  UF_UGMGR_tag_t          db_part_tag;
/ T' E  e5 H  Z7 B2 _  UF_UGMGR_tag_t          root_folder;
) p- q, y7 X# A- c4 y; ]1 ^0 p  char                    root_folder_name[UF_UGMGR_NAME_SIZE];! ]+ o$ ]# ]+ ~; B" e& n, ~' b' m
  int                     i, count;6 m  \4 C: C& a3 {
  UF_UGMGR_tag_t          *folder_contents;$ h4 u5 x' H2 @6 A' M- p6 X* C2 W9 \* Q
  UF_UGMGR_object_type_t  object_type;5 i8 t  Z. i& S! ]% t& H- P
  char                    folder_name[UF_UGMGR_NAME_SIZE];
: z4 o& a9 e- A( G- s! k) r  logical                 folder_exists = false;$ F/ A) V& q; n+ ~
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));4 Z0 O3 q- D, q% z$ y7 e
  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));$ z  [2 {3 I# L* Z. a9 f
  printf("Root folder is %s\n", root_folder_name);
2 _! r, X% |3 s3 V2 h2 Z  /* Scan through the root folder, looking for a folder called
" l3 }  ]9 `& w- m* Q/ G; w     "Test Set Default Folder". If this folder exists, set it to be
+ M+ W1 h  ]5 U8 C9 t5 p' m" Q     the default folder into which newly created parts are
: @: w  C/ [+ ]+ n     placed.' }/ y9 R4 k2 V8 H- ~. x) l
  */
$ y! X0 @8 f( W( Y# _  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));$ Z2 ~5 J* [* @, m
  for ( i=0; i<count; i++ )
; J9 P% F/ r; B$ l  {, [* b6 t. U6 `) w9 ?' w
    CHECK(UF_UGMGR_ask_object_type(folder_contents,2 G; b2 V8 E9 j9 k* @0 S4 p* ~# D  V
   &object_type));! N: J0 k) P- b5 Q
    if (object_type == UF_UGMGR_type_folder)
5 ]1 R) N2 a9 z4 W) M/ Y! I    {. t) K, Y4 h0 V7 q
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));9 m! j5 z- E0 D
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )9 i0 `& O0 B2 I% R7 E
      {
6 E0 U0 ~$ K( l  Q        printf("Test Set Default Folder exists\n");
( N! F3 U. V% O) r% \" G6 p' t        CHECK(UF_UGMGR_set_default_folder(folder_contents));
* R- [& [9 x6 k  O6 |        folder_exists = true;
' J7 d' v5 _$ [" f- F        printf("Set default folder to %s\n", folder_name);
3 K: K$ `+ D6 R3 b      }/ h5 d' @# u: t% K; H' o
    }8 s6 g! M3 \# S, I0 J! \
  }" p. `; P) p- B2 W
  /* If the folder "Test Set Default Folder" doesn't exist, set the
! `4 R% H* X; Y# T  U- m& P/ C0 [$ y     default folder to be the root folder.
" n2 g* W  c. u  */
- I$ m+ T; N2 G. s% ^  c  if (!folder_exists)
/ E4 z) U+ E3 o! @  ~9 w5 H0 d  {* q6 |& ?* V1 b+ ~
    printf("Test Set Default Folder does not exist\n");
8 k, y4 N, w& k( ?) g4 g    CHECK(UF_UGMGR_set_default_folder(root_folder));7 A7 F: X2 c$ D
    printf("Set default folder to %s\n", root_folder_name);
1 ^, R+ @+ i( V9 g! s0 c7 |" }0 E  }( W5 Z2 E% z) ^& h2 K$ A
  printf("Encoding UG/Manager part filename...\n");1 t& q2 ]( J' x
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,. o/ W* N+ _. \; O
part_file_type,
% k1 [6 o6 D$ d# _5 ]' Y' s part_file_name,- m, D. ?! X+ `1 c! y
encoded_name ));& [1 X$ ^% X5 {7 w( o/ U- F
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
/ ]: \& _/ R- a+ C9 e% B% t1 O* @  printf("Created part...\n");
+ @1 V: Y- s# F5 Y, Y* W, f  ?  CHECK(UF_PART_save());
6 p+ \1 J' @" F3 D  printf("Saved part...\n");, e; o, l8 ~$ ^" O6 j: Q
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
5 T% c8 X( C8 n  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",# L: _2 D4 a0 r) }
"Mk3 Engine" ));6 s/ Y* \2 P' }  n. f7 E+ A
  printf("Set part name and description...\n");
0 _. }- `3 p% K. S9 O  return 0;9 ~+ m' Q9 z% G0 e$ u; i9 j
}
9 V/ }1 {( l  }8 G; F/*---------------------------------------------------------------*/
- ^7 G1 J8 k! t- ~4 ustatic int print_work_part_info( void )
! Z# Q# d' A2 g" [( ~{2 ^1 c& C% M7 P2 O( F# g0 p0 i
  char             work_part_name[MAX_FSPEC_SIZE+1];: z$ n9 _7 ?2 L4 C7 T. t
  tag_t            work_part_tag;
) M7 T& z& @, {2 v  M  char             part_number[UF_UGMGR_PARTNO_SIZE+1];/ m) Y: k0 p7 G7 a$ b
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];9 [2 `/ H1 h! J9 P2 k' @  O
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
/ l- _. S' S0 g6 x  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
- x" Q( ?, s- m  UF_UGMGR_tag_t   db_tag;
0 E& q6 G5 V9 t  char             part_name[UF_UGMGR_NAME_SIZE+1];- C* @' h( s% c
  char             part_desc[UF_UGMGR_DESC_SIZE+1];
0 n( C9 w4 s7 M+ A7 M& w  work_part_tag = UF_ASSEM_ask_work_part();
7 w* K& Q; \* g/ f) g' I9 ?  UF_PART_ask_part_name( work_part_tag, work_part_name );* Z9 m0 S6 T; b
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,3 [6 g2 _4 U4 ~$ f% d# N4 b( j
  part_number,# ]8 @9 ?; n; l. a: F' ]% Q3 S
  part_revision,
. w! _/ T' ^* h! l  part_file_type,% ^- w9 l. Z& _. A* h( J
  part_file_name ));
  ]6 i- q3 S  r$ p8 y  printf( "For the current Work Part\n\n" );7 A2 l  Z' L) T1 H9 b% X! a
  printf( "  Part Number      : %s\n", part_number );
6 s, M! Q  E- i4 `4 l  printf( "  Part Revision    : %s\n", part_revision );: M' T8 M7 M! y# o! u
  printf( "  Part File Type   : %s\n", part_file_type );
& u* o, L2 j0 j9 b  u  printf( "  Part File Name   : %s\n", part_file_name );7 J$ O* A9 Y4 |$ r8 X0 H
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));$ g! h4 |' u$ i4 z! Z6 m2 Y2 m& H
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
; g7 c0 c  z$ L: ~  printf( "  Part Name        : %s\n", part_name );
" e  C7 X+ i8 P: {/ T  printf( "  Part Description : %s\n", part_desc );
  f: N- w8 m( Q  return 0;
. E* O5 z5 w' B6 w* N# e7 u5 Z8 s/ U}[/mw_shl_code]
5 f1 _$ [* S' W8 d/ l! ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了