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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。( G+ S2 x: p% I8 x8 K' Q

/ @/ I& I0 j( ?[mw_shl_code=c,true]
- N+ I: w+ @: k9 R6 R/ f9 S#include <stdio.h>8 J9 D: L+ J5 }8 s: [
#include <stdlib.h># n6 P& b& ~* J7 A5 n, C3 A& H' z; B
#include <string.h>, Q2 J0 |" T$ f7 l
#include <uf.h>4 q/ ?. s% E8 ^6 ^* [3 s- D
#include <uf_ugmgr.h>
7 q$ [5 ?4 u; g( R) a& @& k. _#include <uf_part.h>
$ x) ~7 N. J; Q6 q; A: Z#include <uf_assem.h>
' I% n  t: _% |#define CHECK( func_ ) \
+ N' L/ a6 c, n; @6 ?1 F& |{ int  ifail_ = 0; \) L/ V9 u+ {1 w% ?1 S! s
  char message[133]; \
9 G8 k( F/ U2 C6 S& ~1 s" X  ifail_ = (func_); 6 `9 ^- C( j+ P
  if ( ifail_ != 0 ) { \
8 b9 l3 U& x9 n' d    UF_get_fail_message( ifail_, message ); \' w( C6 V9 @4 b% h9 G
    printf("ERROR: %s returned from %s\n", message, # func_); \+ \2 W# ~% w7 o  @% G3 K3 e
    return ifail_; } }
0 p8 o+ |* D2 l" D# W/ `static int create_part( void );
( ?# U+ l; s, Rstatic int print_work_part_info( void );
; @# ~+ [0 ~% T/*---------------------------------------------------------------*/' k6 T! A% F) z$ o
int main(int argc, char *argv[])3 S9 c: i6 k1 {' U, f1 [
{' J. [  L+ n. U; j9 m' f) S& \
  int  ifail = 0;" k: Y5 q1 f! z0 d  {2 W2 `- {
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);% j) d0 z3 k/ }6 Q
  if (ifail != 0)
* L9 r' ~  H; @# W1 F( G3 A- Z  {
. x! k8 B+ j" w2 p& F% U8 ]    printf("ERROR: Failed to initialize with error code %d", ifail);8 u) C2 N; d: M0 I; n
    exit(1);
+ N4 |3 N# z7 a# [7 U- c+ y! p     }2 Z# H; L6 z, o$ f% ]/ M4 q8 k
create_part();, O, Z! T+ H: v! Z6 N3 e
  print_work_part_info();3 ~, N' T, G7 E8 r/ m  Q  W3 x# N
  UF_PART_close_all();9 l+ J/ O8 C) O
  UF_UGMGR_terminate();2 d, T( t- y- R' X
  return 0;
# v5 K+ d3 S& p& k5 T2 A' j}
4 i5 |- A4 [" F$ J! J/*---------------------------------------------------------------*/* {! V6 J9 N2 I: {' h4 e+ L$ U
static int create_part( void )
8 J) z7 `1 r( w5 \1 l3 i4 G{( c9 {6 K! f) n# R; T: {6 T
  char*                   part_number = "600-A-wej-mk1-eng";
# n/ J5 \2 v8 _- j0 y  char*                   part_revision = "A";) u' H9 D1 r* F" L
  char*                   part_file_type = "master";
% p9 E; P+ r3 g8 [; m2 c( E  char*                   part_file_name = "";
' L/ i; m/ E6 k  char                    encoded_name[MAX_FSPEC_SIZE + 1];" k/ J+ ^1 [4 |% D$ i0 Y# t
  tag_t                   part_tag;; p- b1 I! \) o- B$ x8 |
  UF_UGMGR_tag_t          db_part_tag;3 w3 p+ U% {6 N" A1 G4 S8 ?8 p
  UF_UGMGR_tag_t          root_folder;- Q/ C% \* X- ?# D
  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
$ Q7 Q0 u8 w: _8 x  int                     i, count;' e  R2 v  M) `5 Z) I: P9 V
  UF_UGMGR_tag_t          *folder_contents;
9 ~& o9 r3 \5 p  UF_UGMGR_object_type_t  object_type;
# V. R% u7 L$ P7 I  char                    folder_name[UF_UGMGR_NAME_SIZE];" g: K! Q5 v7 D, m% c. E4 e( ^
  logical                 folder_exists = false;8 {, z0 U; i2 |/ \, v
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
8 J& B5 @3 C, L! q  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));/ u. d  O" j$ H9 [% |5 W9 a
  printf("Root folder is %s\n", root_folder_name);* p! u- @9 k3 O6 a  ?% ?
  /* Scan through the root folder, looking for a folder called2 g' C6 w. ^" t. y$ V& t9 E8 ~. t
     "Test Set Default Folder". If this folder exists, set it to be
* r" J  r5 ^/ l/ s     the default folder into which newly created parts are5 Z' G* u. H  u, z4 p
     placed." s) k( W: G' g* S3 K2 B
  *// x) {% K. H0 u; s+ P
  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
$ L. {2 t5 s. D! V& k# O  for ( i=0; i<count; i++ )
5 c( l$ h; `0 t( m4 L' d& e  {
: R3 s  X* E+ e; j% ~& n. g9 k" Z9 j    CHECK(UF_UGMGR_ask_object_type(folder_contents,
: w! x0 c7 w0 v! \   &object_type));# n& b' E9 Q& w/ V$ u5 q/ c
    if (object_type == UF_UGMGR_type_folder)
- G- S5 h8 B6 P! Y2 w- I    {
) [, P$ R# B% V/ e* `7 {      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));+ U7 c3 e" v- W8 M* U6 H
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )! u( A! l5 \6 F* |1 q  m- ~/ C
      {- g- X% I5 G" y) @+ s
        printf("Test Set Default Folder exists\n");3 z0 b$ g% k) G' @6 j
        CHECK(UF_UGMGR_set_default_folder(folder_contents));1 R* T5 {$ b) B, n  Y1 t1 E% z
        folder_exists = true;
3 x5 @6 n( o( t  ~. w" p. x# V6 Y        printf("Set default folder to %s\n", folder_name);% S6 `/ |# a" g7 w5 `. E
      }: B7 L; O; a: z/ W6 }# F% s) v! g
    }
/ s! \) {1 `3 C& b* M  }
& [( o% m. f2 C/ q6 }  /* If the folder "Test Set Default Folder" doesn't exist, set the! J1 M( s. B+ h* u! c& b
     default folder to be the root folder.$ `/ V) c4 N0 F0 N: n8 m# E( R" ?
  *// k+ V3 t  C4 H! E
  if (!folder_exists)
% M- j) W' J$ d5 v" S" K' n; ^) N  {
: }; f9 o0 v1 M" T9 o* I8 A    printf("Test Set Default Folder does not exist\n");; b8 f6 z, F& b. f: L- T# a
    CHECK(UF_UGMGR_set_default_folder(root_folder));
) T& o- f' a, u( O    printf("Set default folder to %s\n", root_folder_name);
3 y$ ~7 }# H. k& ^6 n  }
/ e/ I+ \8 r- P2 M" e7 k$ a2 ^  printf("Encoding UG/Manager part filename...\n");
4 y$ M4 D( C1 e. D9 Z4 ^$ ^  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,1 Y/ W$ m: |- B. e2 d
part_file_type,
& R: o* n. P) a" d1 N8 M part_file_name,
# k" b/ s, A1 C1 G$ Z: E encoded_name ));
4 d0 O  S) G. r1 S* w8 p2 @& i2 t  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));5 B& Z* h7 c0 y  u* z. q
  printf("Created part...\n");( W/ A8 O. s1 |: T
  CHECK(UF_PART_save());
% g" q1 N/ _3 X8 i  printf("Saved part...\n");& d* ]6 G3 l! E. w
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
7 C& A& P) Z0 N) m% B# j  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",
8 ^- G- P# U( }2 i"Mk3 Engine" ));
$ C' V2 x# ^! Y% t$ [  printf("Set part name and description...\n");* d+ Q4 J/ s$ P. I/ I; M
  return 0;
- E( b/ d' O  H$ {5 x7 O- `( J}/ e2 K; t, N6 h3 [6 t( \4 `
/*---------------------------------------------------------------*/0 O4 ?: `6 r$ L5 \
static int print_work_part_info( void )# J' ?3 s0 Y# O9 I" ~7 N
{: W) D" `* i# U/ ~
  char             work_part_name[MAX_FSPEC_SIZE+1];- J/ E% W1 ], ~. L. [, R
  tag_t            work_part_tag;
8 ?6 ]7 [2 ~3 \/ z. g; g0 m& U  char             part_number[UF_UGMGR_PARTNO_SIZE+1];" t5 u: X* r4 V6 Z7 y5 z+ Z
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];
( m1 d7 a( L$ n  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];) b( W2 c2 [  N1 U3 ~
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];
" J7 B6 ~9 w; Q1 q* D7 r3 ]' p  UF_UGMGR_tag_t   db_tag;% O6 w; B4 H+ I. n3 I! x! z' V+ t
  char             part_name[UF_UGMGR_NAME_SIZE+1];% J2 S) G* _/ r& k* f# P( F) J
  char             part_desc[UF_UGMGR_DESC_SIZE+1];
0 F, M0 |  z) Q) T  work_part_tag = UF_ASSEM_ask_work_part();
# u: Y+ x7 G! w, m3 S  UF_PART_ask_part_name( work_part_tag, work_part_name );
+ r$ N1 u( u! O; |& c: x  CHECK(UF_UGMGR_decode_part_filename( work_part_name,
3 y5 ^: P: F& l7 \6 `# b2 A$ K* K! F  part_number,2 b% R/ \. Y/ p' t2 Z
  part_revision,, _- C8 u4 T* `1 c3 g7 ~
  part_file_type,
( e" S: w, y3 h3 c  part_file_name ));
  H5 t6 p6 Z; T6 O* N7 O. ~& s" b/ t( U  printf( "For the current Work Part\n\n" );$ G# |2 @) G8 Y7 o
  printf( "  Part Number      : %s\n", part_number );( n! p/ t2 w3 v9 F/ \' t( ~4 Q- |
  printf( "  Part Revision    : %s\n", part_revision );
  }9 }* I/ h/ O4 |5 _: h+ D9 `; D  printf( "  Part File Type   : %s\n", part_file_type );/ N& Z, z- t# P  ]+ ^
  printf( "  Part File Name   : %s\n", part_file_name );2 i  t: p7 A" a: d. a
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
- m6 u" A! o* k1 k/ H3 m. y  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
* I: E, I! f2 `/ \  printf( "  Part Name        : %s\n", part_name );
6 q2 ]9 d5 {2 T' f. `  printf( "  Part Description : %s\n", part_desc );+ C3 S* V# ?) M# ]: d
  return 0;* R" u( s) z; i2 K0 W8 Y
}[/mw_shl_code]
' N5 ?$ P) U- I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了