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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。
# j* J# N8 k  a% q, Y) L6 W5 |" {4 W+ Q9 M" ~1 I( @$ \: E0 w
[mw_shl_code=c,true]! b, [$ _* Z2 f+ k/ }/ i
#include <stdio.h>
" C. P; ]: U6 t. C#include <stdlib.h>
; n* O- H  t! ?+ b#include <string.h>
1 H: ^$ B+ }* q; H5 q! @- w4 A#include <uf.h>% U$ r: ^% f4 A, I' h  V+ R& P. S
#include <uf_ugmgr.h>
, ^/ x3 m0 u0 a: K. F#include <uf_part.h>
- {* ^$ c0 @) Y. o) p#include <uf_assem.h>
, M: }9 c' V5 l5 c7 V* w9 s& |- D5 s#define CHECK( func_ ) \/ g* v. ^) ?) |. G" f; s
{ int  ifail_ = 0; \- K: o/ E% \; y& Y
  char message[133]; \" f; Z3 O& f5 a" [/ ?& Z
  ifail_ = (func_); # W8 z0 I- Y' }
  if ( ifail_ != 0 ) { \0 H) P# I3 `, c  \. d9 T) _
    UF_get_fail_message( ifail_, message ); \
1 C4 O4 D/ d3 C. ?" t    printf("ERROR: %s returned from %s\n", message, # func_); \
2 w4 B, A3 G0 r    return ifail_; } }6 g! b+ |/ D7 u/ B5 Y
static int create_part( void );& S5 F" o0 }7 l5 X! [" p* X4 y0 `
static int print_work_part_info( void );7 w" k+ _8 Q5 w# o. r" C
/*---------------------------------------------------------------*/8 j. @! O" z3 t8 P  l
int main(int argc, char *argv[]). ~+ u/ U7 G5 ]0 w% S5 O. _/ l
{- U9 ?! W* d3 c$ h, K/ e# a( M
  int  ifail = 0;
& Z# H/ d- Y( A9 J* @6 A  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
5 X* W" [. N" ?2 ~7 }* S: p  I' D, o  if (ifail != 0)& u' H) ~: y; i! B* {3 e- E
  {  M- S$ a) U$ R9 F" n% M
    printf("ERROR: Failed to initialize with error code %d", ifail);3 k( M/ ?+ c9 a
    exit(1);
4 L5 n; G% J# ]# J$ x' m+ x" T- |     }2 Z" O. N7 K3 |8 R  `
create_part();# K: _+ R# P% j) X# @. x) f
  print_work_part_info();3 `% {( z& x" ^" A- t
  UF_PART_close_all();
: Z/ V& h( m# u  G, S" u  UF_UGMGR_terminate();6 t! [8 r, }! Y1 l; M7 Q* g$ ^9 ?
  return 0;
  ]3 o; s( c+ b- Z7 \}/ S* T# v3 a! b. ?. |2 `, I
/*---------------------------------------------------------------*/
  b3 F* @1 q: x; I) kstatic int create_part( void )
) V3 W2 f4 h; q' v{
! Y9 S; [; v, Z/ ^5 r5 Q  char*                   part_number = "600-A-wej-mk1-eng";) D# C9 Z9 W; j
  char*                   part_revision = "A";
: H+ m! _( i2 \& \: F  char*                   part_file_type = "master";; ^/ X1 S1 a$ K/ e1 F' W: W# w
  char*                   part_file_name = "";8 J6 ~6 b. N+ |
  char                    encoded_name[MAX_FSPEC_SIZE + 1];
& S4 H; |. v' E* H* c: z  tag_t                   part_tag;6 `6 U3 z$ P' _, u
  UF_UGMGR_tag_t          db_part_tag;
8 N7 A- }  a) _  UF_UGMGR_tag_t          root_folder;
( C: Q  M0 c9 t# y" F5 a5 ^; Z7 I( P2 J  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
7 L; s9 J% f% S: |0 {  int                     i, count;7 Q! i: j! I" b; C, I* L7 U
  UF_UGMGR_tag_t          *folder_contents;) [5 U$ V3 d* \5 z/ o
  UF_UGMGR_object_type_t  object_type;
; L) q' E& E  i& A  char                    folder_name[UF_UGMGR_NAME_SIZE];  {9 `- n! p* M8 l" u" t
  logical                 folder_exists = false;9 o) E) a! H! v: H
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));; J- l0 n2 q+ p, r: F% f
  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
0 y6 V! x, j4 y7 O  printf("Root folder is %s\n", root_folder_name);
- z/ t; [  D# D0 ~  /* Scan through the root folder, looking for a folder called, v3 Q+ ?! {) m; v. O% O
     "Test Set Default Folder". If this folder exists, set it to be
0 Z7 \( L7 M' H     the default folder into which newly created parts are% s" n* k. U6 o3 j* `/ }  |' K& R
     placed.! B# w9 D  |9 i
  */
5 h, E6 T- C  b: V( k  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
2 P& X9 h, T  d0 [2 M4 d  for ( i=0; i<count; i++ )
* f: J* W5 A# T$ R3 E  {/ \/ M3 F3 |% T' Q4 f1 j7 \8 L
    CHECK(UF_UGMGR_ask_object_type(folder_contents,
$ n, q! X" C( {* k6 r   &object_type));
1 F- W/ A7 |! z    if (object_type == UF_UGMGR_type_folder); k7 n; u0 v% _# G# B, K1 M
    {
; V* I  E6 w, K  e/ u* F      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
: T) i: Q( {) F+ V      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )& P! u- c, H3 O0 Y
      {( h0 I! A6 X  l( q; Z  }3 k  o
        printf("Test Set Default Folder exists\n");
) u) N5 V6 c  W        CHECK(UF_UGMGR_set_default_folder(folder_contents));
) m  A$ b. D0 V0 T        folder_exists = true;1 b4 t; o/ F1 }: Z5 P1 ^9 y  V
        printf("Set default folder to %s\n", folder_name);/ B9 X' x) c/ m/ x" g# k
      }( @; w! ]2 ]6 x. n. H
    }
6 m0 X6 r( `+ f* l& W4 x  }; N+ }1 r  A+ W
  /* If the folder "Test Set Default Folder" doesn't exist, set the
+ w# U/ A# N7 B, [9 n# o! c0 ?     default folder to be the root folder.. b3 I+ Y* \' S, @
  */
: y0 W& T, Z% t# ~  if (!folder_exists): c% ?- W/ ?& G: ~- u! b8 Q4 J
  {: y. s& [( x1 \) v3 m' ?5 B5 h  o
    printf("Test Set Default Folder does not exist\n");
4 k8 H9 }3 h) f: T% n: O    CHECK(UF_UGMGR_set_default_folder(root_folder));
& ^! F/ Q5 m0 ~  u8 p2 u4 {# f    printf("Set default folder to %s\n", root_folder_name);& A0 p. w$ |7 i, Q% Y
  }
7 Z8 J/ P  G; I' k- T5 @1 A' `8 b  printf("Encoding UG/Manager part filename...\n");- A, H! ]2 Z0 [2 c+ r' M
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
1 J6 F2 B2 ?/ t; m# j part_file_type,4 e  t- B9 M$ D9 G" r6 [* P
part_file_name,4 ]3 t& u; ^8 O
encoded_name ));
# S8 s& m# ~0 E: V7 }* A3 |7 w  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));% u& I1 m1 p3 T1 g
  printf("Created part...\n");
4 n1 u# g4 V" R0 J! n  CHECK(UF_PART_save());+ p* M1 S+ u. ~+ |
  printf("Saved part...\n");2 A3 o" G' {9 h7 I0 \- i  H$ E
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));6 A6 e8 m9 l$ T$ U# {2 `
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",% L2 K6 G! E  F( y# d( h
"Mk3 Engine" ));5 M) l. B/ Z( n- l6 r  ~
  printf("Set part name and description...\n");# ~8 ]6 n: D! v0 ^
  return 0;3 z: Y9 D8 T9 \, I
}
9 ~* v& ^; i9 z, [) N/*---------------------------------------------------------------*/
4 |1 ^) [' i6 Y9 b1 j* j- Ystatic int print_work_part_info( void )/ {; C, I- o% u
{) o8 t/ p. N& }: N
  char             work_part_name[MAX_FSPEC_SIZE+1];. X1 l- C- F6 Z
  tag_t            work_part_tag;! b! E- f0 j! h9 R/ ?* z
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];, J2 N, D$ w+ T; _
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];4 X. [9 g; D! ]# q; j
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
  X2 @2 P+ k! h1 |+ K# o3 e6 s/ F  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];2 M6 Y4 u; E+ `* Y% U% [1 D
  UF_UGMGR_tag_t   db_tag;' s7 S. ?8 G+ I- j7 p4 i% I' F
  char             part_name[UF_UGMGR_NAME_SIZE+1];; g; o: V0 m  h, w+ `/ v
  char             part_desc[UF_UGMGR_DESC_SIZE+1];
7 s2 d( ]; P& c& Q1 ~1 Y  work_part_tag = UF_ASSEM_ask_work_part();
& r" i* O% G' J  UF_PART_ask_part_name( work_part_tag, work_part_name );
7 O, |% M  s. H. u9 k2 P( ]& L  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
$ X& n: \" X8 g8 x$ o& D2 F/ c  part_number,4 @5 [+ G! n3 c! U
  part_revision,
# h& X" M/ `+ t# Y0 G  part_file_type,
- S# ]1 U2 I- ^# `+ P" p  part_file_name ));) L, V) P( h5 N/ D
  printf( "For the current Work Part\n\n" );- R2 U' K8 D5 g1 [3 f+ N# Z% {
  printf( "  Part Number      : %s\n", part_number );
* U9 x5 r, P0 J9 e% |. g  printf( "  Part Revision    : %s\n", part_revision );/ s; j5 J# v5 m7 h! x( C* |% p; ~
  printf( "  Part File Type   : %s\n", part_file_type );. {4 v" h( w+ k
  printf( "  Part File Name   : %s\n", part_file_name );
- U% m% C7 W+ K; E* X! w CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
, B: s3 J6 b; L+ c8 f1 @* \: ?$ B  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
! \& I3 m) O4 s/ Z1 y/ n/ a  printf( "  Part Name        : %s\n", part_name );( l$ k; s6 W+ X+ R. @, ~2 A
  printf( "  Part Description : %s\n", part_desc );
) E) c1 y: f& W- ~! o, i; m  return 0;
5 [0 J' D$ i- u! f% N% v}[/mw_shl_code]9 Q* g2 z  _" M% o, O5 O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了