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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。- x. \! S- \( Z7 c4 D1 T. f

' N: v% f, O. v) Q! L* S[mw_shl_code=c,true]
, ~: {$ \7 p8 E/ |- W) h#include <stdio.h>
  @8 B0 d# x* ]6 r0 K9 v( z#include <stdlib.h>: f  }3 Z% w8 h) ^2 b+ C* ^
#include <string.h>
* j$ g; E, `+ q2 R0 g#include <uf.h>
6 Z5 K$ E  n; y#include <uf_ugmgr.h>0 J/ Y/ c4 q1 j
#include <uf_part.h>7 u6 G8 K! G. N, p% Q
#include <uf_assem.h>- ], Q6 F" o1 N; R
#define CHECK( func_ ) \
: B" R. [7 X" b0 G9 E2 w/ S5 \{ int  ifail_ = 0; \2 U- e8 X$ l1 o7 U  b% R6 z
  char message[133]; \
; p, |2 M. ]! y  ifail_ = (func_);
! n! T3 Y- J0 P6 I- P4 |9 C* t% H- ]; E  if ( ifail_ != 0 ) { \' a( ?3 M( s, G  a9 ^9 X; s5 f) E
    UF_get_fail_message( ifail_, message ); \% f; _( E( M; Q# w4 r* x
    printf("ERROR: %s returned from %s\n", message, # func_); \" {3 r: P/ g& i% O3 ]
    return ifail_; } }
  }: x' T# o  g3 z9 `0 }. sstatic int create_part( void );* g3 b- Q4 R* }1 W- z. |- l
static int print_work_part_info( void );  o, |$ g0 c  M! }% w
/*---------------------------------------------------------------*/
. W2 f5 K- ~& K1 o- _int main(int argc, char *argv[])8 O" x8 X1 n: B% D% |
{
2 _% n4 H& a- A# n* x  int  ifail = 0;6 g, e0 V3 O- G2 Y
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);. n4 X$ ^' S7 i5 p: c. h
  if (ifail != 0)
% {0 U4 K& F% @: \% Y4 U  {
; S. Y: t) Q- ?4 H* O" j- U    printf("ERROR: Failed to initialize with error code %d", ifail);
/ w9 X% V& a; A2 i! Z# \1 s    exit(1);0 @- n1 o, O5 q& w
     }  B0 z& l1 [9 n2 U! a: a# @* U1 D/ c
create_part();
% b# s' U3 b/ U6 q  print_work_part_info();
+ I2 l) ~: l  E* m, \5 G- M  UF_PART_close_all();
4 Y" q" K1 \+ {. n  UF_UGMGR_terminate();
8 U; p/ H4 f! o, V5 B( S2 b  return 0;& Y; ^3 X8 `) h+ n6 x1 H
}
, }1 d) b  l: k" V6 q/*---------------------------------------------------------------*/3 b( V7 I5 g1 h9 u7 j4 X
static int create_part( void )
+ M9 I+ p3 O# z6 B' {1 r{6 B5 s8 f9 p  j8 Q3 W5 ~3 C
  char*                   part_number = "600-A-wej-mk1-eng";
/ y8 Q+ Z  _/ W5 y7 g3 Y) r  char*                   part_revision = "A";
7 B6 G3 Q8 w  ]9 i  char*                   part_file_type = "master";
" p9 x+ y3 A$ s% E. r2 l( k  char*                   part_file_name = "";
& {5 o7 e# b5 v0 d: ?3 O3 T2 I! n; n  char                    encoded_name[MAX_FSPEC_SIZE + 1];
; e+ A' ^) n4 t% m. v7 T  tag_t                   part_tag;. @- s' ]0 j0 a/ _3 e' ?) P# ]" H
  UF_UGMGR_tag_t          db_part_tag;0 w) L+ ^$ o: T6 f) H+ t3 W
  UF_UGMGR_tag_t          root_folder;
! Q7 M- s) S* K) q) b* Z2 L  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
% k* e8 e, e2 E: O# A  int                     i, count;
( p9 W; S! P! o- _& {  UF_UGMGR_tag_t          *folder_contents;$ Z0 g+ ^; {8 C; F6 s
  UF_UGMGR_object_type_t  object_type;
3 I: R% D+ j" h  char                    folder_name[UF_UGMGR_NAME_SIZE];! m: q2 f* I1 S7 H* [
  logical                 folder_exists = false;" o. T+ s* }0 O* k, \$ Y
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
0 h! H- b% Q3 w& q3 f( J  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));$ A2 K" l+ q1 P6 C( @* |
  printf("Root folder is %s\n", root_folder_name);4 a+ u) y  [% j4 C; Z* X
  /* Scan through the root folder, looking for a folder called) o& e1 h1 g  K/ {
     "Test Set Default Folder". If this folder exists, set it to be# I5 h9 _5 S7 ?
     the default folder into which newly created parts are5 V% T% A) v: c
     placed.
/ Q0 x. {( h3 t- Y$ E+ y8 E* p3 ]  */
- \: ?) i$ n0 V% K7 E" f6 E  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
3 ^6 P$ N6 Y, N1 s) Z" y) v) w  for ( i=0; i<count; i++ )! o2 z' z: J! k1 ~2 V
  {( P/ S0 `( `$ \! i$ z
    CHECK(UF_UGMGR_ask_object_type(folder_contents,4 R4 J$ A; `8 }4 U/ ?3 r/ k
   &object_type));
0 r7 F  l& }+ k( P% k' A    if (object_type == UF_UGMGR_type_folder)+ m9 q: h) ?' O5 K
    {& T# u" v- i) q1 b; J: v& `. e
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));- c4 m9 u7 z# I7 ?' t% v! A! m
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )7 N1 D: P0 U1 c3 r
      {( e# ?: S9 r* F6 ]) b% D# u. k
        printf("Test Set Default Folder exists\n");
2 k2 Y1 f, O- {; s9 N9 o" I        CHECK(UF_UGMGR_set_default_folder(folder_contents));& ]" H  L2 U( n+ A, r, W6 l
        folder_exists = true;
' R# t' e* K+ o  ~" ^7 F+ I        printf("Set default folder to %s\n", folder_name);
7 o! G3 d5 W) d$ D      }- g$ H" C4 j3 ?( v1 T* s2 S
    }3 L, n2 c# g- z  k) z( ?$ B; U8 [, g
  }
/ a3 P9 s5 M- W9 Y- J+ _  /* If the folder "Test Set Default Folder" doesn't exist, set the' ^% G- o9 v6 w
     default folder to be the root folder.7 U# D, Y+ y6 p# q8 s7 l
  */
1 }) X8 g- I; X+ x. `% `  if (!folder_exists)
' w  R' c. m+ _  {9 u8 o% c% M( J0 ~0 P
    printf("Test Set Default Folder does not exist\n");
$ s5 M* |2 k/ z    CHECK(UF_UGMGR_set_default_folder(root_folder));( Z, r/ J# D: I; T% @
    printf("Set default folder to %s\n", root_folder_name);
9 e' y* v1 |0 ]7 V9 B* {& u  }
  Q9 z% C" w9 A  printf("Encoding UG/Manager part filename...\n");
& _4 d3 v/ y2 L3 X/ V, W- L  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
) n6 E5 K* S! A9 O: b3 ? part_file_type,
) K8 w5 [% ]6 E- A3 J; c part_file_name,) g7 ^2 m0 ^$ w- G7 L+ I8 M1 G
encoded_name ));
( G: x$ F& t5 u% k4 Q  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));1 ~0 u. ~, t) n: ?, M
  printf("Created part...\n");
$ n* E$ g8 ]- ^3 a2 h: v$ S; Q( x  CHECK(UF_PART_save());) h/ {; B, V& L2 e4 e* |1 @5 _
  printf("Saved part...\n");* B& x8 G7 b. L
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));* q; f% C8 K0 v( y9 N/ V
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",+ q& f" }  P: C
"Mk3 Engine" ));( r) y% Y$ b9 o6 L0 N
  printf("Set part name and description...\n");7 r9 l8 t+ X  O: r: O" r/ j7 b
  return 0;0 [: g' f8 X* J  }' _+ u- Q4 ^
}
( F4 X" E' h& S( [8 x* `/*---------------------------------------------------------------*/
' t" k; ^0 u! }0 F, Ustatic int print_work_part_info( void )# e, g4 n3 ]# M2 E  a9 A
{: d% P0 m. p: Q/ M, X3 E, K* u+ V
  char             work_part_name[MAX_FSPEC_SIZE+1];' O( m. \, m  q8 C2 \4 `( }
  tag_t            work_part_tag;+ v' a: m0 E5 }. r
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];3 l' B4 E- D, A4 @3 q$ [9 l1 j, p
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
' k! b% f, k* P2 h' U  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
; a6 j- {1 ]9 O: D$ t  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];) T- r" t) p. K% b
  UF_UGMGR_tag_t   db_tag;
% ]( a- p. e, F; a, {  char             part_name[UF_UGMGR_NAME_SIZE+1];
/ g, T0 k; D0 Y, U- L  char             part_desc[UF_UGMGR_DESC_SIZE+1];* p$ I; s: t+ ^1 l
  work_part_tag = UF_ASSEM_ask_work_part();' R1 O6 @4 Z- P- p7 M. }% }
  UF_PART_ask_part_name( work_part_tag, work_part_name );+ C! p9 w% m# _7 {
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
1 ]5 i% P, ?" c  part_number,
5 U& ^8 D" M8 b! P- @+ {( i% i  part_revision,
' n+ h/ t7 M# n: M" p  part_file_type,
( }$ P3 Z* T/ c  w' d  part_file_name ));
8 R: g; P* s, x) _( G* y! l5 V7 X  printf( "For the current Work Part\n\n" );" c8 J* l2 d# w* u
  printf( "  Part Number      : %s\n", part_number );
! p  r! O2 L( m0 ^- a! V6 ^  printf( "  Part Revision    : %s\n", part_revision );8 z$ k0 [% q: j9 Y
  printf( "  Part File Type   : %s\n", part_file_type );% l- `! b- z7 j: g9 K5 M2 b
  printf( "  Part File Name   : %s\n", part_file_name );/ ]3 ?) y( T$ t( J9 A9 |& D3 ]0 h
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
; p# C: P) t0 X, r' J/ e0 F# i  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));* B; \4 ^/ s! x) H4 J
  printf( "  Part Name        : %s\n", part_name );
0 J/ I. t) }0 }+ k4 ~+ |  printf( "  Part Description : %s\n", part_desc );7 C# Z6 h/ d$ B" j7 D
  return 0;
7 N% W4 g, {# p. f( u0 L}[/mw_shl_code]
( }+ W: P9 j" X! D* \4 C$ ?9 w; ]9 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二次开发专题模块培训报名开始啦

    我知道了