PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2017-12-7 11:22:15

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

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

x
UG NX二次开发源码分享: Teamcenter集成NX Manager开发函数常见的使用方法如下,不外乎就是找文件,找文件夹,创建文件,查询等操作。
' ~; _* r* t" |7 a2 }8 V2 Y0 H( U* f! d8 r$ t0 Z# n3 ~7 J
[mw_shl_code=c,true]
* Z0 V& X5 _. x% I, Q2 K#include <stdio.h>! G) ?; Z* ?8 `$ f9 Q* K
#include <stdlib.h>
* J# o' d: v4 p4 [- u: U#include <string.h>  ~8 T6 o- q/ a4 L
#include <uf.h>. m' ^5 ~. ?$ G. j/ G7 F  ]2 L
#include <uf_ugmgr.h>1 |! W; N/ m8 b, I) ?! j
#include <uf_part.h>
, g- N! ^+ x6 T& r5 n- R8 h2 h#include <uf_assem.h>1 m6 T3 v6 M5 _" S1 t$ S& `) V
#define CHECK( func_ ) \
/ Y2 N$ V9 D6 a: Y{ int  ifail_ = 0; \
0 f6 Q0 ^8 Q# n, c4 A- Z4 p2 S  char message[133]; \; j# G3 q1 ^2 Z! [
  ifail_ = (func_); : K) Z6 o6 z* |- R( n
  if ( ifail_ != 0 ) { \
( d& `; V  a. B$ P    UF_get_fail_message( ifail_, message ); \9 i% b3 u9 B, S( @9 t( M
    printf("ERROR: %s returned from %s\n", message, # func_); \8 g! ^" F" I& b( z. y
    return ifail_; } }
" L) s; p6 {, E1 R* \; Tstatic int create_part( void );
2 w0 `5 v. ~+ q7 H( Jstatic int print_work_part_info( void );
! D9 ?) h9 h* L3 b: O/*---------------------------------------------------------------*/7 s) o4 b: f; B' A$ f
int main(int argc, char *argv[])6 F5 \0 [/ m, g
{. t2 d. o# D# ?$ d9 w+ O9 l. m
  int  ifail = 0;
  `: o* j4 m4 a+ ~9 t3 T( P8 a  ifail = UF_UGMGR_initialize(argc,(const char**)argv);
4 P" q7 b, a1 d0 {' Y* N5 @7 ~  if (ifail != 0)
+ D' a# v+ l# k! f* `  {2 t- K2 I7 f7 H9 l  f# a% [
    printf("ERROR: Failed to initialize with error code %d", ifail);7 l3 w3 u; E/ @8 t6 C" R* |
    exit(1);: D; h3 E3 K  o" o
     }
$ R! h) R# f2 q5 N1 X* F. ~1 E create_part();/ H# Q3 h- ?( H1 z8 ?5 R5 d" ?
  print_work_part_info();
: ~* R! |5 h9 b  UF_PART_close_all();
0 Q$ {* J' ?! I) _  UF_UGMGR_terminate();% ~. U- V- j6 m( T, V* w7 i( u
  return 0;/ s0 I: o* v3 s1 Y: m
}
. w' q  a8 F# j5 N3 j% D  U! m/*---------------------------------------------------------------*/' e0 t) z& G, Z& C: y4 L: V
static int create_part( void )# D- H( K( ], H! B! b' t% Z
{2 F6 D  P/ x  v) J) ~: ^
  char*                   part_number = "600-A-wej-mk1-eng";
% C: k( U; m1 }; K( j  char*                   part_revision = "A";
/ V" E7 ?% K) ?5 G  char*                   part_file_type = "master";# W4 w; T$ d3 K  o6 {" j0 M
  char*                   part_file_name = "";+ ?! T$ z# v$ q: Z, [6 L
  char                    encoded_name[MAX_FSPEC_SIZE + 1];6 d7 \; p: W3 H; T6 O% U% i
  tag_t                   part_tag;2 Y' \7 C& T1 T9 v1 V. f- M
  UF_UGMGR_tag_t          db_part_tag;
. V/ a( f6 h. Y7 V* O5 }% ^; R2 j! T  UF_UGMGR_tag_t          root_folder;
& n# K6 s; i1 ~* j3 G3 l' C; q  char                    root_folder_name[UF_UGMGR_NAME_SIZE];
' b0 N% J$ H$ L  int                     i, count;
& s, |  ^* Z' J- _9 v1 Y  UF_UGMGR_tag_t          *folder_contents;: y' t1 X7 V/ @) Y% u+ [
  UF_UGMGR_object_type_t  object_type;. Q+ K5 o# L5 [: c& ^- I8 |
  char                    folder_name[UF_UGMGR_NAME_SIZE];0 g5 j% P! t' i+ d" o
  logical                 folder_exists = false;
! c$ F6 b& x! L7 d# Z. a+ Q  CHECK(UF_UGMGR_ask_root_folder(&root_folder));, n& A# r, Q5 p( J( H1 N" n9 G# d
  CHECK(UF_UGMGR_ask_folder_name(root_folder, root_folder_name));
" @0 I5 S; Z% k5 C$ P: J  printf("Root folder is %s\n", root_folder_name);
" ~* K5 P" Z3 G- y# l) S  ~  /* Scan through the root folder, looking for a folder called
: e/ A, d: h5 t& j8 Q7 F& X, h     "Test Set Default Folder". If this folder exists, set it to be
- ]9 v7 p8 `9 f3 _* y     the default folder into which newly created parts are  S- H1 {8 g6 x& D- S- G
     placed.9 R7 w! v8 }# i% S! P
  */
! v- ?7 R# K" z2 M- {- g  CHECK(UF_UGMGR_list_folder_contents(root_folder, &count, &folder_contents));
/ n& w3 ~; M" {" T, r  for ( i=0; i<count; i++ )4 ~" N9 T2 L3 S$ v9 M
  {
  w( U: M+ I6 w  l9 b) c! Q6 I    CHECK(UF_UGMGR_ask_object_type(folder_contents,
2 c7 W! n* X! m" n   &object_type));) M7 C- P% G5 m- |* k
    if (object_type == UF_UGMGR_type_folder)
% E6 l" c3 S& F    {
/ ]; v. D% J4 a      CHECK(UF_UGMGR_ask_folder_name(folder_contents, folder_name));: e% }/ d3 |  v3 a. J% N, l2 V
      if ( strcmp( folder_name, "Test Set Default Folder" ) == 0 )
7 P0 i8 B; \9 M" J( e& w      {) N" E* [2 m, z; m% Z: C
        printf("Test Set Default Folder exists\n");8 K$ l. O1 U2 `
        CHECK(UF_UGMGR_set_default_folder(folder_contents));  s& a" y9 r# b# I( r
        folder_exists = true;
9 B* S) P5 M) m0 s: O        printf("Set default folder to %s\n", folder_name);
% w; v( b$ l& a; ?. F6 g6 m      }& A0 \3 I- ^4 j
    }
1 E% ^1 v; _5 B- M0 @  }2 U( l1 J: Y: h6 c. L
  /* If the folder "Test Set Default Folder" doesn't exist, set the5 ?- N4 T# ?4 r" i8 s
     default folder to be the root folder.9 @2 i$ `- Y+ t' E) e' S
  */
/ L! q/ z' x% L, b  x/ \" k6 V; n  if (!folder_exists)
% z9 _& K7 E* s7 i- x6 Z  {3 s, ?% u" f6 _; n
    printf("Test Set Default Folder does not exist\n");
5 R% K' k4 M, V  U% h! R7 h    CHECK(UF_UGMGR_set_default_folder(root_folder));
7 X, E8 w) K* e& r    printf("Set default folder to %s\n", root_folder_name);2 S2 F9 Y& l6 @' g3 Z4 h
  }7 k# t% j4 X6 g1 n
  printf("Encoding UG/Manager part filename...\n");
; y  h2 @" e. e: V5 o  CHECK(UF_UGMGR_encode_part_filename( part_number, part_revision,
6 U( ]! d* Q1 J: I" t9 x" r: p part_file_type,
; A  ]5 ~; ?5 o/ b. @- k1 t4 ~ part_file_name,
% G1 G/ o% K$ X, m& c encoded_name ));
& t  Z: ~$ ^/ \: U  CHECK(UF_PART_new( encoded_name, 1, &part_tag ));4 ?8 m3 B+ k, `& U) q% r! `
  printf("Created part...\n");
' ~6 {& e. `7 E& j; L  CHECK(UF_PART_save());
, ~( `! a  h  e7 m7 f. [2 Q& {  printf("Saved part...\n");# ^) f" U. ~% x! Q% n
  CHECK(UF_UGMGR_ask_part_tag( part_number, &db_part_tag ));
9 b5 l5 n! u8 {  p; X& c  CHECK(UF_UGMGR_set_part_name_desc( db_part_tag, "engine"," V9 j8 F( ~& X% K
"Mk3 Engine" ));
% i5 R6 W( z& |  printf("Set part name and description...\n");) R' {, d+ g2 E& L1 ]: W: s, M% f
  return 0;1 }9 K- S, K8 H/ `# d( \
}+ A' e& O! T) u& M- V
/*---------------------------------------------------------------*/
  S( y! m4 E( N; M% c( ~7 `% Jstatic int print_work_part_info( void )( M6 u$ N+ H! w, Y7 V2 W  _4 a' B
{
3 L: g: }) p* l4 G  char             work_part_name[MAX_FSPEC_SIZE+1];
/ p/ J  E/ y  Y( Q- i  tag_t            work_part_tag;
% _4 \: ^1 T* d3 W  M0 j, c% I# T  char             part_number[UF_UGMGR_PARTNO_SIZE+1];
( b% c! S* j( ~' a0 P* W6 K, E5 F  char             part_revision[UF_UGMGR_PARTREV_SIZE+1];8 i2 W' P$ z6 d* x3 n; @
  char             part_file_type[UF_UGMGR_FTYPE_SIZE+1];
( B4 G, O. ~8 b: X( K- H  T: K  char             part_file_name[UF_UGMGR_FNAME_SIZE+1];7 l$ E7 N& t' T8 b# o" h- k
  UF_UGMGR_tag_t   db_tag;/ e) I, R: u* d% p/ Z0 @! f  F+ r
  char             part_name[UF_UGMGR_NAME_SIZE+1];
. J2 W0 C2 Q. A  char             part_desc[UF_UGMGR_DESC_SIZE+1];5 U( @9 V/ ^8 R$ ~! E  V
  work_part_tag = UF_ASSEM_ask_work_part();
( j* m8 z5 N( _% r0 O4 G  UF_PART_ask_part_name( work_part_tag, work_part_name );& y) h3 J9 n* j; c. m  ~' J# e2 `
  CHECK(UF_UGMGR_decode_part_filename( work_part_name,) G: g) x4 s* M  C# O9 {5 l
  part_number,
+ ~; j, J6 Y" q3 x  part_revision,# g# c5 a: p! G. m' U) E; Q4 h
  part_file_type,' X2 O2 O( E/ b" ?5 o9 {0 y8 x/ X  s9 h* H
  part_file_name ));9 ^' A3 f8 ?9 a/ m* ?9 o
  printf( "For the current Work Part\n\n" );. ~; e1 o3 J) d7 ?  j
  printf( "  Part Number      : %s\n", part_number );
7 A( [6 F# n+ C6 o7 {3 |( d' S  printf( "  Part Revision    : %s\n", part_revision );
( F! V4 T* S8 l8 z2 m  printf( "  Part File Type   : %s\n", part_file_type );
8 j) x3 h' V1 K% w) o! e. R5 W  printf( "  Part File Name   : %s\n", part_file_name );) q( a" u8 |9 N6 ~2 p5 z
CHECK(UF_UGMGR_ask_part_tag( part_number, &db_tag ));8 A6 ^4 }$ g/ n* e5 u, B
  CHECK(UF_UGMGR_ask_part_name_desc( db_tag, part_name, part_desc ));
/ ]- ?2 u' z$ b5 l$ O* T9 E- s3 S5 k  printf( "  Part Name        : %s\n", part_name );$ H' J) T4 s0 N
  printf( "  Part Description : %s\n", part_desc );: j/ i( U$ {/ v
  return 0;
- v  s2 d0 e, |. M8 h/ K0 l/ e, I}[/mw_shl_code]
: K- E7 Q# h6 v( @* t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了