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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。, o/ j5 b* ~/ o( n+ F  ?
2 y# }& u( ]: U8 q
[mw_shl_code=c,true]' r4 D: L) ]5 r: W) v
#include <stdio.h># B0 o) `1 X" W2 w
#include <stdlib.h>, Z3 n1 ~/ w" }  ?+ |" b
#include <string.h>
) \; r& s, ^$ O: h) t/ ?#include <uf.h>
+ b' b. L+ G# x' n6 C#include <uf_ugmgr.h>* [1 e' N# T& t% D+ W
#include <uf_part.h>
2 ?. D* z# @7 ]- b" X' t2 O0 h7 s* x#include <uf_assem.h>
6 H! W! ^2 U4 q#define CHECK( func_ ) \
! g- {1 h# E3 l+ P( r{ int  ifail_ = 0; \6 l2 I; q9 P% {( ~0 k+ B
  char message[133]; \  f! r7 {9 w% D8 ~/ S; r5 Y; z
  ifail_ = (func_); ) |4 P* T+ g' M" q$ ~0 q! B  O
  if ( ifail_ != 0 ) { \7 w" u+ i2 r2 T. x
    UF_get_fail_message( ifail_, message ); \% u# E9 L  c; e4 t4 ?7 O$ j
    printf("ERROR: %s returned from %s\n", message, # func_); \
/ y! R7 C" E" h, S' @0 m9 d* d    return ifail_; } }5 x  }- G! e" M3 u
static int create_part( void );6 V; e, ^  p2 B$ j$ b- k
static int print_work_part_info( void );4 O6 r8 z8 g6 ^8 u3 G8 b/ A
/*---------------------------------------------------------------*/
8 b+ _9 c+ I( h: B/ a  ^  d+ oint main(int argc, char *argv[])" L8 ^7 j% G+ D1 o" q  K2 l- }9 B
{
" G3 k# s( d6 m  int  ifail = 0;
1 b# Q5 j$ D7 v. f& }7 J  ifail = UF_UGMGR_initialize(argc,(const char**)argv);8 B- r" X& |/ R- z' g5 @$ k
  if (ifail != 0)
9 X) ~7 p8 p+ b& E  {
# I0 n9 F6 p  U6 G( B0 r8 ^    printf("ERROR: Failed to initialize with error code %d", ifail);) B+ s& M# X" p5 y+ w% d2 i% P3 `
    exit(1);9 Z! w/ N9 h3 Q3 d9 h
     }
' P2 Q$ g+ @& i# y9 Y create_part();
! K7 l' r0 D/ d2 q8 M% b  print_work_part_info();
  ~+ u9 h! A& p/ P9 D8 g; W/ n( h  UF_PART_close_all();3 A/ L# n2 I* L- y0 f; F
  UF_UGMGR_terminate();
( \! ^# P4 w  x  return 0;$ Q+ P* p; L2 n6 h: k
}
" M" @9 P& W( t2 s" Q/*---------------------------------------------------------------*/
; }( n0 }% m9 }: Sstatic int create_part( void )
' w& Z# r" K3 A  y: U$ Z$ l! Y: F6 F{
0 v9 x, H( M1 W1 C/ v0 _( `+ z8 \  char*                   part_number = "600-A-wej-mk1-eng";3 N5 }! H0 x* a& F4 p1 `
  char*                   part_revision = "A";
# r9 n2 m, t0 l6 I  char*                   part_file_type = "master";
9 x: m4 s5 Y! r- \- P  char*                   part_file_name = "";
8 y9 y0 k# }5 g7 }4 p; A& d  char                    encoded_name[MAX_FSPEC_SIZE + 1];
: A8 N5 {7 R7 O- E, b  tag_t                   part_tag;
/ R( Y- h2 Q- d# c3 h0 x& H' X! p  UF_UGMGR_tag_t          db_part_tag;+ a8 M3 K2 G: a: d
  UF_UGMGR_tag_t          root_folder;! V6 J; t+ L/ \7 Q( {
  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
9 C: [. k2 B- I/ Q4 H+ e8 k  int                     i, count;
  a8 u4 h+ t% t( d( g6 d  UF_UGMGR_tag_t          *folder_contents;
4 s' W8 M& S. u  UF_UGMGR_object_type_t  object_type;
0 M) R1 T& I) N! p/ |  char                    folder_name[UF_UGMGR_NAME_SIZE];7 |1 a7 |4 W% c- K8 Z; D
  logical                 folder_exists = false;
& I4 @4 S! f4 a0 @6 A, v  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
& X8 @% F0 Y* @5 Q! L% _& O5 X  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));4 U0 Y2 Y, h7 a0 W/ V' ^
  printf("Root folder is %s\n", root_folder_name);9 J1 q/ P# R, h, ?
  /* Scan through the root folder, looking for a folder called
( a9 \$ s0 J) v9 J9 }  `1 D     "Test Set Default Folder". If this folder exists, set it to be$ N! U7 I$ h, A! k
     the default folder into which newly created parts are2 u1 Y8 Q- N0 Y
     placed.5 k% f* V* k% B5 n( Z3 R
  */
5 C, R" j) @. t, ], o  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
  `. y9 \' f, N+ L( M  for ( i=0; i<count; i++ )
+ ], x  O/ B2 E  {6 @& D* ]: E( S) E' w
    CHECK(UF_UGMGR_ask_object_type(folder_contents,
8 O2 Z! A. S- o; ]0 N   &object_type));5 @2 ^8 @5 r5 f/ n; u+ v: v
    if (object_type == UF_UGMGR_type_folder)
0 {1 U7 h5 z. q6 V3 h$ z    {6 ?7 M' R0 F1 X) p2 x
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));
: |/ l% a6 O3 w/ x4 U      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )$ V) M6 E+ F& D, B3 b
      {
. C# \1 {- N  a# a3 n4 Z8 i        printf("Test Set Default Folder exists\n");( R+ G, j" [, `- J$ t7 X! J( D
        CHECK(UF_UGMGR_set_default_folder(folder_contents));
; h, V) `( p6 d) G+ G        folder_exists = true;
' w7 ~2 _1 \& u! p) d: e        printf("Set default folder to %s\n", folder_name);! `) o/ f8 D+ A1 j; v
      }' a9 Y8 k+ Z- r* f
    }7 \* A5 Y3 g9 B$ f
  }4 _: o* e7 Y$ e+ B( K
  /* If the folder "Test Set Default Folder" doesn't exist, set the* o3 H" ?/ f) E
     default folder to be the root folder.4 n" e( U+ ~( z; A4 t, a
  */
+ O  R) |: s0 q: T% k/ I$ d# L  if (!folder_exists)
, v! p! Z4 q3 k7 p" M+ v4 e9 C  {5 R, @/ J" F0 e0 P3 Q& f- ^
    printf("Test Set Default Folder does not exist\n");
( @; K! ^% U  M& B8 n2 S    CHECK(UF_UGMGR_set_default_folder(root_folder));
" S& m- Y3 T9 z" v    printf("Set default folder to %s\n", root_folder_name);
+ S5 y$ k6 C  h# t7 ]  }4 B! ~8 a" l3 X
  printf("Encoding UG/Manager part filename...\n");
, e: ~: t5 |& L  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,3 Y0 _$ \6 c  S/ }; R. B, Y
part_file_type,! K' R3 L) r2 @8 c3 r0 a- Q
part_file_name,' H% ^+ O$ \/ J9 y! U' c! ]
encoded_name ));8 u! D! ?3 Z) q: x9 o
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
2 @, q  E, S  D$ U% J* }' k  printf("Created part...\n");
9 W. J6 j) C0 m  T& v  CHECK(UF_PART_save());
; g$ \9 f( w2 \  printf("Saved part...\n");5 c6 `5 W/ B6 D
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
5 N/ ]' {6 m4 ^" J$ {2 u; H! ]  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",$ g& O6 d5 \9 x1 f% }
"Mk3 Engine" ));
+ t# }0 M' `, y, v+ D  printf("Set part name and description...\n");! L9 f+ e( A4 r- F! m& \3 N: h% A7 \
  return 0;
0 W: \2 E: n6 w}
( s0 Y! l! X2 p" \- u' @& i4 w. F/*---------------------------------------------------------------*/' g/ `/ ^* C' r8 @2 f( `2 v4 }
static int print_work_part_info( void )
. _6 }/ r+ l2 C" n' K{
" K* {1 N" ?5 J/ _* k/ J; l# F  char             work_part_name[MAX_FSPEC_SIZE+1];
/ Q( _% F$ }; n. {  tag_t            work_part_tag;  }$ i1 S5 i+ ^5 R( o' H
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];
: y& S0 F5 O- b5 j2 ^' I' l  Q# J  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
$ k+ r4 ^9 @8 n8 r  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];( A0 W% X: [9 O& b3 s
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
2 p  b1 ^6 x7 B  UF_UGMGR_tag_t   db_tag;7 b. k0 Y3 p. a1 y, Z
  char             part_name[UF_UGMGR_NAME_SIZE+1];
! ]+ v* L# T* G3 C  w) A  char             part_desc[UF_UGMGR_DESC_SIZE+1];1 ~# u9 I1 P  l, C& L
  work_part_tag = UF_ASSEM_ask_work_part();+ ]  u: k, T% o: e
  UF_PART_ask_part_name( work_part_tag, work_part_name );( E* e( `' j; c- s8 s( p
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,; C! l3 M+ `2 m+ e' ], Y9 k
  part_number,
3 e$ J; ]8 l9 Q; v2 X2 F  part_revision,7 I; _: O! J) _9 R0 @' r
  part_file_type,6 T! |; k- d- A' S* w# [* S0 ~8 {
  part_file_name ));% Z( ]6 Q1 h* b5 @3 L; {/ W6 N  ?2 B
  printf( "For the current Work Part\n\n" );
* K1 z- t2 J6 h) z  printf( "  Part Number      : %s\n", part_number );
+ [( `/ N8 K' j9 M! n$ l% U" x  printf( "  Part Revision    : %s\n", part_revision );
, B' W( _" N( t8 p  \* I  printf( "  Part File Type   : %s\n", part_file_type );
2 y3 I6 k6 \2 L/ L: E# ]  printf( "  Part File Name   : %s\n", part_file_name );2 m% d+ `( w$ u4 z8 e8 ?& V9 ~
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
. G3 T  N8 I4 }5 n) A5 c  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
0 L. o8 x& }0 l  printf( "  Part Name        : %s\n", part_name );3 A: F9 a! s8 ]) h) Y$ ?/ u: Y
  printf( "  Part Description : %s\n", part_desc );
- L3 n* d4 \- x& E1 l  return 0;
9 k" ~% [3 {! D}[/mw_shl_code]* `/ O5 P8 D; J' {- Y: f" K" z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了