|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 K4 i% [# o2 m
7 c$ D4 ]+ F7 v1 y4 n; qTeamcenter ITK二次开发源码分享:创建自定义文件夹2 G) J% w) J; J h5 Z6 S
输入的第一个参数是文件夹名称,第二个是文件夹描述。
! c2 j3 g8 ?0 N4 `- H4 D8 m& w% }, H6 y/ t
1 t2 h4 a9 ?; w! O& z#include <TC/tc.h>4 l4 H7 T4 y" X8 L- p
#include <tccore/aom.h>
( j& } i1 h3 ]4 v4 @7 X6 Z# J" D, ~( \% M#include <tc/folder.h>
% @) L( z: K) n0 O% k#include <tccore/workspaceobject.h>' ]9 M' F% L/ Q5 @( |) ]% {
3 |; v# Z' C7 f( n% V#define EXIT_FAILURE 14 W3 V( @5 N( Y+ f7 ?
: a# G0 g x0 ~1 l Y! M
static void report_error_stack( void )
* r" \/ i9 q6 u/ B; d7 m: q- f+ A {8 u d: K9 O: U8 D% X7 ]
int+ [6 J5 h; Y8 `8 Q
n_errors = 0,# {6 ], {6 a6 l k& g; l8 S: j
i = 0;5 j# S: M0 X' [, V- Q# O
const int, F6 }) @$ O g9 l" _# J/ |* N2 y6 [
*severities = NULL,* [& [& O$ A( r4 \% }; h
*statuses = NULL;, M( N+ F& z& _" r
const char N; C# k. \0 y) I
**messages;4 I4 F A8 U* ?$ w/ A; |0 L
4 }. Y" k$ x4 h4 ~' q$ s% V$ ]
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );3 H `$ |1 C; s( q! v$ w: [; ?
printf( "Error(s): \n");
5 h, }& G5 R/ v4 N: @3 g( ?& ` for (i = 0; i < n_errors; i++)
& q4 T$ ?6 _5 ], {, V- G3 w {
& R* Q6 [$ K! @0 L& | printf( " %6d: %s\n", statuses, messages );" l. j# L' G6 U5 P& d
}
, }$ w7 x7 N; B6 O exit(EXIT_FAILURE);: I9 q' w$ }$ k8 A1 t
}
; ^3 b0 r1 h0 f, \
# G- G' s7 a/ t- U' t$ Gint ITK_user_main(int argc, char* argv[])' ~0 N n: }4 r1 u# O
{2 ]$ C+ o" d% `
int
" o. r% j0 L, O- K7 M3 h8 O# `9 t, I7 b status; D% W% `- i# ]9 i! D+ v& f
char9 V1 T4 u _* U. m/ j1 q ?- O
folder_name[WSO_name_size_c+1],
" p( q! k9 f. { fldr_desc[WSO_desc_size_c + 1],
& @ ]. `% x6 Y+ u *message;
/ V" ]! V @* | tag_t' ^5 @+ h" i; k1 F
new_folder;
7 ~5 ?0 v/ ^/ t- Q
2 L2 w3 \7 @2 y# m, S: e, [ ITK_initialize_text_services( 0 );
, R3 E6 P' u; M, p+ d/ y3 l& n status = ITK_auto_login();
' i+ H6 ~* V8 G& L A7 R; } if(status!= ITK_ok), v- E. L$ {- h+ H3 g' S
{/ R: _" w# m8 F( u# A$ _9 b$ r) g$ h
report_error_stack();$ J) p& O9 W8 L8 @$ T7 o
}
) l8 ]+ o0 s5 t else
9 B( D! R* w' ]: I# {# D; [ {/ x) T* d' r5 D) t! h
printf("iMAN login successful.\n");: a; k" r$ i. F3 x- i
}' L6 Z3 }0 g' l
3 J& o8 `! W% Y
ITK_set_journalling(TRUE);3 d- n9 l5 R- s- ^3 @# R6 n9 C
' w# B( ]5 ~+ C5 g; e if (argc > 1) strcpy(folder_name, argv[1]);+ _: k2 _! p( U m2 g6 T
else8 [2 ]$ q7 R" m, _% R* z- H# l: X
{
' e5 z9 t9 `5 w* V2 V) O printf(" Specify the Input in Following format : \n");
2 ^: I2 s; q3 r printf("program_name folder_name folder_description\n");& j( X- r* C% N' b0 }
printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");
6 K- f0 j, v: B$ F return ITK_ok;
0 N( h2 K/ }* _* j+ @1 S }
: ~9 q" U2 X6 N2 ~8 @! t7 f, J. i. d# w0 Q; l
if (argc > 2) strcpy( fldr_desc, argv[2]);; b3 P! x+ }8 G. R8 T
else strcpy( fldr_desc,"");
+ \, j7 v ?$ p- o4 o) B9 Q+ N4 n0 r! V4 s
status = FL_create( folder_name, fldr_desc, &new_folder);
1 l% r8 o8 b' ~5 c% M if(status!= ITK_ok) report_error_stack();
0 E% ?! a. P4 `' o: C5 U; U
0 {9 m0 J; ~# B( h$ R# _% O status = AOM_save(new_folder);9 E! M& F1 \. D9 L' k7 N2 |8 E
if(status!= ITK_ok) report_error_stack();
: a6 _& |0 B4 f% i: [( Q else printf("Folder '%s' Saved; ", folder_name);6 S+ Y- ?. e+ o3 B2 K& ]
, X6 Z4 _, ^3 A& k5 F3 I status = AOM_unlock(new_folder);
& ]5 Q+ O4 f/ g0 ^* y j# y4 T if(status!= ITK_ok) report_error_stack();7 e) Y! A1 y! y5 @' N. i0 i0 P
else printf("Unlocked; ");
/ i! Y: t5 n) ]. G+ e
1 p, ^# ^5 N. F* W3 O+ @9 l: s status = FL_user_update_newstuff_folder(new_folder);4 v# F" h2 j5 I2 G" g: H( A# o
if(status!= ITK_ok) report_error_stack();
! G: ^6 Z E7 E, `) ~ ? else printf("Put in Newstuff Folder.\n");
0 J% c! J1 D; X% M+ }6 a5 u1 V8 t! i& \# a0 _
ITK_exit_module(TRUE);: \! ]% g0 N' C( a7 ^4 R
return status;
% a; x8 F. L8 h5 o}' O3 k* F' l, C" b: b+ a& v. k6 ^
|
|