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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。) D4 N. E$ g8 |7 @7 ~$ Q

: D9 E# E4 q/ F. @; e3 s7 ?7 G1 e[mw_shl_code=c,true]0 r: s: M1 a4 h+ y" @" |
#include <stdio.h>7 X: x/ @& Q: W# ?; R" y
#include <stdlib.h>
; e# X7 I, S6 @2 a. ~! R" h2 L#include <string.h>7 u% v. V" O2 F" [, s
#include <uf.h>& v; w! z0 ]6 B0 l' Y: G
#include <uf_ugmgr.h>
7 p2 y" x3 t8 l#include <uf_part.h>) `1 j9 Z/ ^+ R- B3 C  C7 A+ ~; G! l, W- r
#include <uf_assem.h>
" f2 o1 q7 \, [/ a+ x1 t' J! |7 H  n#define CHECK( func_ ) \
, K0 V2 m2 `! |) I{ int  ifail_ = 0; \5 X6 Z4 y, @* M. \2 G$ p
  char message[133]; \5 D5 ~! _# R5 z: U  }
  ifail_ = (func_);
6 r& e3 C+ \7 o% a% ^; Y  if ( ifail_ != 0 ) { \
+ W, g4 r* q" `# g/ V; Z    UF_get_fail_message( ifail_, message ); \5 f9 T+ f/ r( D$ _8 C7 [' I
    printf("ERROR: %s returned from %s\n", message, # func_); \
, r9 U/ S% a/ m. w7 m! I2 P    return ifail_; } }% c- C. y$ G9 L0 L1 }% l; o* i
static int create_part( void );
" m. f0 q# g! }static int print_work_part_info( void );
! E, k( u# W: C* j1 F, q/*---------------------------------------------------------------*/
+ @$ E5 T/ p# C$ gint main(int argc, char *argv[])
1 Z0 K* g3 O5 T( ~' o{
# s/ E& L% _" q& \4 `  int  ifail = 0;6 @: G4 _# c3 u/ K3 b6 v: X% B
  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
: o7 o1 h; T: t( L/ R( Q  if (ifail != 0)/ g! g- A: j9 H$ Z! _+ [
  {
/ o) h) T- O, ^  W7 h! |# t    printf("ERROR: Failed to initialize with error code %d", ifail);
7 @9 w$ k3 u$ E# U% |8 v* p    exit(1);1 e1 B5 R( \( L
     }
" g" t# d# v' M  s create_part();' ?" f0 _% N. S- T; G7 [
  print_work_part_info();/ d, @& O: F8 q3 @* U% o- _
  UF_PART_close_all();
8 w* n- Y5 U+ N" H1 o% E  UF_UGMGR_terminate();& ^/ ^6 K! U% T+ b$ u7 q
  return 0;
3 H1 e7 F) M, w; b7 T8 ~! A}: q  f! o. k/ g; o' {- R& ^7 y& v
/*---------------------------------------------------------------*/: I3 r; D8 P1 H) w* d
static int create_part( void )
. F8 T" p, ]& `8 U! {{
4 [5 F# P: s; n6 _  char*                   part_number = "600-A-wej-mk1-eng";
6 S% L7 ?1 O* H6 ^5 C  char*                   part_revision = "A";( ?8 I9 e4 X& W  U, B# z
  char*                   part_file_type = "master";5 I. W5 }! }6 e
  char*                   part_file_name = "";: Z5 E) B/ z' H% h  _
  char                    encoded_name[MAX_FSPEC_SIZE + 1];) g  l2 {. S% Y6 e2 T2 d
  tag_t                   part_tag;; ^; Y* B% ^0 \8 i
  UF_UGMGR_tag_t          db_part_tag;, W+ p+ Y# T8 c& w, Q& J% z! c: E
  UF_UGMGR_tag_t          root_folder;
) ^% T) L( {: r+ j. c7 i/ T& j8 @: U  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
9 B' @7 z7 Q, w$ R% k; u: B  int                     i, count;
- x, @4 Y$ }$ h9 i  O; x- Y( S: j  UF_UGMGR_tag_t          *folder_contents;% ~) i5 I' @# G6 C  v& D% S. K
  UF_UGMGR_object_type_t  object_type;* N* t& c6 d8 ]8 P/ {. [
  char                    folder_name[UF_UGMGR_NAME_SIZE];' Z: k8 W' _: F& K3 G
  logical                 folder_exists = false;+ O. f! X9 G" |3 V) J# M
  CHECK(UF_UGMGR_ask_root_folder(&root_folder));
% r' F* L; |# b- D; `  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
- ?- ], P' t) h3 d  printf("Root folder is %s\n", root_folder_name);
/ l. {: y4 }6 o. o4 O' I9 ]2 b  /* Scan through the root folder, looking for a folder called/ b9 T8 l7 @; |1 }& O% A
     "Test Set Default Folder". If this folder exists, set it to be
+ D$ r' b( J& Y& x     the default folder into which newly created parts are+ w$ }! z) G) H# |# A9 {' h
     placed.
4 q" i  X* k5 |. _0 j% t+ L- x1 m6 g  */; Q1 q. k" X% x5 d2 [5 e3 n6 s
  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
3 |4 J# q2 K% r. l) |6 ^0 C6 n  for ( i=0; i<count; i++ )  h: W( \3 e6 [% ^9 K* {6 X
  {
3 V, _, A- T. M0 v    CHECK(UF_UGMGR_ask_object_type(folder_contents,+ |7 z2 w) H& f: v# G" W2 `2 {
   &object_type));
3 z& S" H1 d# P% X$ H    if (object_type == UF_UGMGR_type_folder)9 u4 A' Y  t' H8 j
    {/ S/ d' M1 _- r1 K& u
      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));9 e* g2 k. M0 P7 Q( H9 R9 w
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )
6 ^  f3 [9 o# S* m/ y+ B& }      {
! F& I$ y5 K) o        printf("Test Set Default Folder exists\n");
: U7 u. H6 c( t# B( y. U! p        CHECK(UF_UGMGR_set_default_folder(folder_contents));
0 A1 U4 _) v& e3 c% ?4 D' q$ ~* v1 v        folder_exists = true;
. a& {/ [) C( K# a        printf("Set default folder to %s\n", folder_name);
1 d6 R# w$ B: |, w% Y      }
* ?* |& _( t( u0 R8 {    }
1 V3 q- A- m$ D9 Y! s2 k! w9 a: f  }* v% R0 g! m3 S0 q8 T" p4 x  {
  /* If the folder "Test Set Default Folder" doesn't exist, set the
& I8 Q7 ?# L& |* F5 l7 i; S+ d; C     default folder to be the root folder.' p7 H- q" }* w& Z& H) z- ~) c
  */
# W, D; T4 u$ `9 e2 P  if (!folder_exists)
3 G% g/ ]$ m. @" Y0 j, ?/ ~( {  {
/ \2 E& h3 R: ^/ ~, y6 m    printf("Test Set Default Folder does not exist\n");1 p( B3 h2 z6 e5 J0 _8 q3 A
    CHECK(UF_UGMGR_set_default_folder(root_folder));1 ?9 B* _( |7 g7 M' V
    printf("Set default folder to %s\n", root_folder_name);
! K8 }! M1 \& Z6 R4 J# c/ j/ P" ^  }/ z$ ^! w, f, f/ l, n6 V6 E& {
  printf("Encoding UG/Manager part filename...\n");5 O$ _3 X% N8 a! S  F5 c* [7 i. S
  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
/ @; N' v) b% k  \5 Y" Z8 _' m part_file_type,
7 s3 C- q" w* g" q, p: B& z part_file_name,
- C: g/ t& \6 I& a- F$ z4 o encoded_name ));3 I+ b: V7 e- ]  i% n# |) w: Z$ N
  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));
/ |& M! Y1 ?; H( p: L1 l* }  printf("Created part...\n");
- d( e  @& x) b1 }9 O! Y+ a  CHECK(UF_PART_save());  B/ l  D: {* [. q1 t# d
  printf("Saved part...\n");( I/ U3 K/ J$ B
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));- k1 x6 u8 p/ Y
  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine",
4 l) H  r# |5 N& h' O- A( `"Mk3 Engine" ));
: j: [1 r( [. ^1 J  printf("Set part name and description...\n");* P+ ~- _4 {0 g" t, d- s
  return 0;! A! Z5 K" g+ f) s3 Q
}
2 j# a6 C; S( C% S/*---------------------------------------------------------------*/
- [) p6 }. Y$ N) y1 m. t2 istatic int print_work_part_info( void )5 p/ Q$ \$ E, |* r) z+ a3 ?
{3 l5 {( ^4 {4 X2 I
  char             work_part_name[MAX_FSPEC_SIZE+1];0 |. h( G* _* P! r7 t
  tag_t            work_part_tag;8 u: a, X* f& \: n7 v# d" f) `# `% h
  char             part_number[UF_UGMGR_PARTNO_SIZE+1];2 ^/ W$ N2 I! D  W. ]
  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];7 H7 R9 T: b7 z
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];0 V; u6 e# \0 R$ F$ `( c
  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];, D- S% M# E, i
  UF_UGMGR_tag_t   db_tag;
8 z# D% U1 C9 j* H+ u  char             part_name[UF_UGMGR_NAME_SIZE+1];* B. L/ ]8 P, t& {( ~
  char             part_desc[UF_UGMGR_DESC_SIZE+1];
" e) J% w1 w! [/ q) t2 Y  work_part_tag = UF_ASSEM_ask_work_part();' r, I" P9 E% X* z; X  z
  UF_PART_ask_part_name( work_part_tag, work_part_name );4 ?- ~: n/ d* A8 ~& j
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,  P+ t$ v7 p* f  u
  part_number,
* r+ ^' S' L1 ^+ A, U; B  part_revision,
8 t4 ]. E( Q- K  part_file_type,$ D$ M0 O% n- ?2 {' G: T
  part_file_name ));7 @  p% b9 t( a& `
  printf( "For the current Work Part\n\n" );! b& h) R+ S% {
  printf( "  Part Number      : %s\n", part_number );- k% L# {! C) k
  printf( "  Part Revision    : %s\n", part_revision );  q# V: p! Y! C8 P. s6 m$ Q- o
  printf( "  Part File Type   : %s\n", part_file_type );9 O* r6 X0 N/ f
  printf( "  Part File Name   : %s\n", part_file_name );& c+ Q7 Z: P, E- ]+ O" X# y
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));
' e1 o) Z, Q  w8 X5 Q$ M" v; y  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
, r7 e4 T4 |! s1 D/ [/ I  printf( "  Part Name        : %s\n", part_name );
/ R' @" P! S) ]  printf( "  Part Description : %s\n", part_desc );0 r4 U3 v, E. \) S
  return 0;; S% f, k1 Q% ]
}[/mw_shl_code]9 m3 J! N/ r0 W3 |5 N: c& ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了