PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。& [* @! H7 j1 A/ f( u3 I: G3 w
9 @( Z( t- Q7 j* a# I- L. l% w- f
[mw_shl_code=c,true]. q2 l+ u2 c" S/ y. p- h. w: X  @
#include <stdio.h>
7 W& D! x1 D- y% c, J3 w% W#include <stdlib.h>4 x8 ], s) G9 Z9 s
#include <string.h>0 C1 |7 T: d$ b; n6 Y# V4 h' R$ t: H
#include <uf.h>, a# z, C. M! p3 M; {
#include <uf_ugmgr.h>
3 @0 J: v* Q+ E4 o  Q#include <uf_part.h>. v* v  {6 K+ M' [
#include <uf_assem.h>6 J- u2 M" A* f! c4 F+ p
#define CHECK( func_ ) \6 g4 D4 l3 z4 l9 j1 R- d7 y7 M
{ int  ifail_ = 0; \( M& H" j: l) Y. U, f
  char message[133]; \( |3 w+ @6 ?1 e' m, O- n
  ifail_ = (func_);
. `6 _/ G1 ^7 B0 P4 O# N  if ( ifail_ != 0 ) { \
% ~1 ~  A6 {+ C  {& N    UF_get_fail_message( ifail_, message ); \3 D, c8 g" K- z: D1 T) Y
    printf("ERROR: %s returned from %s\n", message, # func_); \* W$ ?* `- T' y* e4 k# W
    return ifail_; } }
/ A- C$ [+ ?$ A' v/ @" ystatic int create_part( void );
; L0 g4 G) g0 C" `7 r0 ostatic int print_work_part_info( void );7 I: f5 Y1 Z" P( I5 n5 C# D. D
/*---------------------------------------------------------------*/
9 w( b* n4 x; A/ h' k0 B" mint main(int argc, char *argv[])) R+ ^' F+ p+ G6 m  ^/ m/ U
{6 o- a' ~6 h( E% s% Q5 e
  int  ifail = 0;! E& e+ a3 j1 n( q, l! E1 C
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
3 p& A( \  H, x- u& X' y  if (ifail != 0)
1 s# N+ |- Z; I4 j  p  {) V. C- j. F. a* h1 O' ^  f
    printf("ERROR: Failed to initialize with error code %d", ifail);
9 ?& ]8 a; n( J+ u& \' c( n    exit(1);
- e/ R4 v. M# i2 H, X     }, y$ A$ z. n4 Z, r8 Q
create_part();5 s1 O+ V9 w2 L8 C% s% x
  print_work_part_info();3 b* ^7 R$ [# ~$ W" l# `
  UF_PART_close_all();
4 r9 O: n" k! a& u: T! B5 Y  UF_UGMGR_terminate();) U2 A5 i) O, A" E* ~# K- ]
  return 0;' y# ]$ Q( y7 o
}5 u+ ]5 s$ V- q4 S
/*---------------------------------------------------------------*/
8 ]1 @! H4 `+ j4 b# L; Fstatic int create_part( void )
* ^; ^+ S3 m/ `) N! Y0 b{
) W; ^, v' n& d; L3 Y  char*                   part_number = "600-A-wej-mk1-eng";+ L* u4 g+ ~8 I+ w# y
  char*                   part_revision = "A";  D6 m9 p" Z9 ~+ K; W" A
  char*                   part_file_type = "master";3 D9 z* g4 M; R
  char*                   part_file_name = "";( a9 R- P0 w& p3 R& A
  char                    encoded_name[MAX_FSPEC_SIZE + 1];$ g# M' F7 p$ u& \  X
  tag_t                   part_tag;
# {2 K3 R8 |7 m5 H% q3 r  UF_UGMGR_tag_t          db_part_tag;
$ e2 A" N3 b5 \) O# H6 c  UF_UGMGR_tag_t          root_folder;
8 C: ~- \7 r" N  [& W  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
2 }: n3 B- e" ]% v  l5 ]/ ?1 w0 j  int                     i, count;
) B9 _3 M' I2 _1 s$ w, ~. g) E  UF_UGMGR_tag_t          *folder_contents;* a+ d7 @. I( n( z  u! q, K
  UF_UGMGR_object_type_t  object_type;* M( |+ k( U" O/ _: j
  char                    folder_name[UF_UGMGR_NAME_SIZE];* N: F) L, A! ~
  logical                 folder_exists = false;1 w% F7 c. m' q/ o
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));) a; [) m3 B1 j% j- e
  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));% d* x) G+ N9 `8 H
  printf("Root folder is %s\n", root_folder_name);2 @/ y; F- R. h6 `# E
  /* Scan through the root folder, looking for a folder called
  @/ X6 s8 k" `" D8 z2 P     "Test Set Default Folder". If this folder exists, set it to be, H- j' [& H3 Q/ n1 f
     the default folder into which newly created parts are1 ^0 S2 D/ K( E. t
     placed.6 o# N  ^& h4 m
  */
7 }" Y/ k. c7 _& v. E  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
  o6 e! o, ]7 Z4 q  for ( i=0; i<count; i++ )$ Z  H) e( @: Y/ M
  {3 U# q! a4 y! S9 _0 @8 u
    CHECK(UF_UGMGR_ask_object_type(folder_contents,
) N8 s4 f. f. M   &object_type));+ K6 Y  H+ [( ^
    if (object_type == UF_UGMGR_type_folder)! Q& W/ K6 D6 K: ]# ]6 w
    {. H9 v# p& o! H, ^# V
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));4 J) j$ C6 R0 [
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )
) m2 j% ?. k1 L6 n      {
& z! G: G3 o* H2 k2 A% q6 Q# l  i        printf("Test Set Default Folder exists\n");
" C5 h+ ?# @$ ~# J) u, R4 W# `. ?        CHECK(UF_UGMGR_set_default_folder(folder_contents));* E6 B- @5 N3 J# L
        folder_exists = true;
) ?) n& O- V5 [/ a( L        printf("Set default folder to %s\n", folder_name);
/ ?$ r. \8 B2 {      }
4 v" I( t( p% N5 i6 w    }0 w; U& \# h! G  }
  }
# t2 I0 s2 ~* v( M$ {0 N% Y  /* If the folder "Test Set Default Folder" doesn't exist, set the' p& A( Z# e2 W
     default folder to be the root folder.
6 ]0 }" w; X% F* n  */
1 q' \: Y% J- k) `3 M. B& j& n9 u  if (!folder_exists)$ m. u: T7 p2 c5 V0 ^
  {  |) x  E* \6 _3 V- ~
    printf("Test Set Default Folder does not exist\n");
+ r0 N& ^1 L; H- L    CHECK(UF_UGMGR_set_default_folder(root_folder));
. P, @7 W, L7 @7 U    printf("Set default folder to %s\n", root_folder_name);- p3 B8 J0 `0 L0 P& o, ]4 a
  }( S& m0 t' U& E
  printf("Encoding UG/Manager part filename...\n");$ H$ f5 z$ t5 Z- y- c7 h7 |
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
2 p' S% \0 W- M9 D7 F part_file_type,
# K0 \$ V5 u, j6 Q" M part_file_name,; P; V0 I. M& [1 j. i2 G0 S
encoded_name ));5 j$ V% [+ U  b0 J7 e0 q8 e! a
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));' V* s  T9 E/ n% ]; }+ X
  printf("Created part...\n");. M. \, H; k5 ^! C6 y* M
  CHECK(UF_PART_save());3 |1 }: o0 V6 X  v7 T: r+ p! r! c3 B
  printf("Saved part...\n");
9 `  a: f, W$ _: _  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));' l' v# _3 n$ ]. Z; O
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",- O+ g1 v2 `4 z0 u: ?- d; F
"Mk3 Engine" ));
+ Q/ x% G  y1 j* ]( x% r  printf("Set part name and description...\n");
5 C4 x2 U) E& w9 R# F1 X( i  return 0;% G. K. o7 k) W( Y9 n
}
0 y% r/ I! {: W; G2 `6 v- B6 A/*---------------------------------------------------------------*/
5 D. I, f/ {" S! l+ |$ ^static int print_work_part_info( void )+ q4 i) }( @  x/ C
{
9 [/ k$ u% S5 v% u. \  char             work_part_name[MAX_FSPEC_SIZE+1];) `* `5 X' ]4 D, c$ D+ ?
  tag_t            work_part_tag;
4 f4 F8 x$ g3 f, v2 S  char             part_number[UF_UGMGR_PARTNO_SIZE+1];
$ X; o' e) }3 l8 g2 N0 c  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
0 p% Q/ k% h$ i# h/ H: ^  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];& P! ]  H( H( [' W& \
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];; v7 A) Z; [& |! Z4 H
  UF_UGMGR_tag_t   db_tag;) i/ `; L: [4 D/ V( `& Y
  char             part_name[UF_UGMGR_NAME_SIZE+1];1 `% F8 t1 k; P: a' B# J& M
  char             part_desc[UF_UGMGR_DESC_SIZE+1];) t; c7 [) Q! ?( z
  work_part_tag = UF_ASSEM_ask_work_part();
. p8 i8 O. R5 M  UF_PART_ask_part_name( work_part_tag, work_part_name );
5 \. _/ h' B1 n  Z4 J$ E  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
& p- q+ G# H( i7 r' ~  part_number,
+ N9 {6 A1 A) h8 o4 T' U9 U' a  part_revision,
' U6 z" m3 A! S  part_file_type,' n" Q  ?3 G( N8 m; Y1 ?
  part_file_name ));+ c5 a& h! |6 j) Q1 J, C4 p# n, {
  printf( "For the current Work Part\n\n" );
7 G. X5 S! g0 R% q4 B5 J  y$ ^  printf( "  Part Number      : %s\n", part_number );: r6 r1 V( V% j! ?, v0 Z
  printf( "  Part Revision    : %s\n", part_revision );
- ^! ]* V8 q8 C& _* X0 }, |  printf( "  Part File Type   : %s\n", part_file_type );
) G" U6 N5 q# i0 ]9 Y$ D* L  printf( "  Part File Name   : %s\n", part_file_name );* v: \' t2 Z8 o- Y2 L9 ^" Q+ u
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));4 S+ ]3 s# W5 z
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));5 O% b$ g- S( T/ B! A: M- m
  printf( "  Part Name        : %s\n", part_name );
! w5 y- x6 x* J$ V9 r  printf( "  Part Description : %s\n", part_desc );! J+ e8 f5 E+ n' ]$ a5 A
  return 0;
+ T# v( [% F5 k, e- T$ h* E- h}[/mw_shl_code]
' ]- o, M% n" x# Z- f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了