|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% t' U( Z; |: d
6 R! q' G2 z' G
Teamcenter ITK二次开发源码分享:创建自定义文件夹; A$ U% J* X6 n8 R3 y7 u
输入的第一个参数是文件夹名称,第二个是文件夹描述。
, _3 P8 O; y5 K/ x- v# A6 l, Y7 r5 B% O2 ~1 @7 e* |
0 E7 D( l& Y, }. r1 h4 S, _0 t: ~#include <TC/tc.h>
4 q4 V" M V+ h5 O: Z5 Z#include <tccore/aom.h>
0 x, A3 ?( ~& Z1 h8 O#include <tc/folder.h>" E& B; Q1 ^+ U$ I! h, e
#include <tccore/workspaceobject.h>( _: k' Y9 J6 I: J- F2 ]" r6 q
3 }) M' Z" H6 c$ }* d6 q
#define EXIT_FAILURE 1
$ S9 }* h; _, M: U9 Z$ I% k5 Y' E& W' v: f. x8 C9 C7 z! }) U, l
static void report_error_stack( void )
5 Q+ {3 W* f8 J {
+ x8 r. A8 y0 z1 t& b2 |8 } int. M: t2 A2 U* L) W, @. ?& Q! F, H
n_errors = 0,
) c% Q9 g( W! R% }* n% }4 ]: T i = 0;
( Z1 _6 f+ t8 j; F! k const int) z7 C) t5 N0 O) T( |) N7 c! ~
*severities = NULL, l4 J6 c: t {0 ]
*statuses = NULL;
( H# F) N! |. t2 J; V5 R; j+ U" k/ F const char
9 W' k( X& ^ H) e/ W **messages;
- T6 x" Q4 l% G0 \) I+ _1 a* `/ F J& M& l7 p$ O0 @8 ^+ R
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );
, m$ y5 `/ M) Z5 { @8 w0 C0 Y printf( "Error(s): \n"); {( i/ o: n L$ H& v6 D4 D8 T
for (i = 0; i < n_errors; i++)
$ o* U# o3 H* j1 e" u4 P {) O8 ]* h1 Y% |; Q: u' c5 @" W6 r! {
printf( " %6d: %s\n", statuses, messages );: ~0 r. K: Y6 k, u# |; ?+ x8 t/ c
}$ i, M% c: i: t. ?% {: A+ }
exit(EXIT_FAILURE);+ T9 [5 G1 _9 V5 s3 j9 G
}
2 [' i% S% R, l/ ]: `( G( T& T+ b
7 r0 W& e% [9 jint ITK_user_main(int argc, char* argv[])
4 y+ p" E7 m9 c2 p{
9 e4 _% v) R8 t: l( Y$ Q* l int! N, H) D- h5 J# `- u
status;4 F! @: O4 j0 O* j- [" t
char
% C* ?/ V3 P: e1 h: u folder_name[WSO_name_size_c+1],
+ D$ a4 p1 b1 \ y fldr_desc[WSO_desc_size_c + 1],
0 g) A4 V) ?0 g4 J1 X4 v *message;
& D; s, i/ g3 z& a3 M$ t tag_t
; @& d' p3 m0 r6 a" A new_folder;
9 i& {2 F: m$ q4 U9 j( ]+ l. ~) @7 ^6 q5 N( Z! U0 d9 \
ITK_initialize_text_services( 0 );
1 N$ o3 e) M" q% W0 e, l4 K( A status = ITK_auto_login();
- ~( t" F% A8 I# K if(status!= ITK_ok)) j% r8 N9 z* \$ R u' g
{
- d. B8 U$ ^8 l& m+ L9 l* e" e' t report_error_stack();/ U1 J6 H% p" d! B
}* @# `0 f# h& ]0 K" i2 H8 e
else
4 J3 v( t. X/ C4 J$ c% i. s( j { D, p7 g& n5 L: w6 C, h- z
printf("iMAN login successful.\n");# u" k) t. W9 h( Q
}
/ q' J$ ^5 E2 e7 D
0 \ u0 V1 g7 y- d9 h: | ITK_set_journalling(TRUE);
6 O% ~0 Q* P O1 \; H- \; c& D
2 m) b! C7 C4 w- H9 A5 r" J+ S9 k4 g if (argc > 1) strcpy(folder_name, argv[1]);
- ]: u2 G3 E/ \4 Z) ? else, U% z+ k m3 h4 A; k7 q& R
{) M# ?# h; t) E7 d/ W$ Y7 C
printf(" Specify the Input in Following format : \n");
8 {+ R; Z( `! q4 ] printf("program_name folder_name folder_description\n");9 i M, a3 @4 G, v6 _
printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");5 L( [$ r3 z: |5 \% N; v
return ITK_ok; ' m# S" m, z8 V( h- ]
} 4 ?" B9 }$ e# l& J
8 b* c9 G" t3 f- y if (argc > 2) strcpy( fldr_desc, argv[2]);0 ]9 d: o4 Q# k0 h1 X5 |9 A
else strcpy( fldr_desc,"");1 q: o4 c4 J- N6 _7 T7 T$ \$ s
6 R; Y1 B$ F( D status = FL_create( folder_name, fldr_desc, &new_folder);
; T2 E5 @( C0 b w$ W if(status!= ITK_ok) report_error_stack(); , t, {; s# t: z% a' `
+ `3 ?6 a- |* Y% w
status = AOM_save(new_folder);, o: f5 _8 z: Z* z
if(status!= ITK_ok) report_error_stack();2 z6 i& e/ M6 O
else printf("Folder '%s' Saved; ", folder_name);
" c; ~1 M- p% S* y! g0 D$ g' R/ u( k8 Z0 u. O) ~& I7 k
status = AOM_unlock(new_folder);
' ^2 Z# j6 L6 ~) | S" a if(status!= ITK_ok) report_error_stack();
/ W5 ?' d! d7 k; M else printf("Unlocked; ");
* p8 S- r% z# u. g4 s; d3 b7 P% ?
status = FL_user_update_newstuff_folder(new_folder);
$ Z3 [6 X5 n2 A if(status!= ITK_ok) report_error_stack();$ u2 k( }. F# I
else printf("Put in Newstuff Folder.\n");# `# H5 Z7 ` C% f }4 D+ T$ k8 y: L
" D$ P( m; S1 d; D, R, y ITK_exit_module(TRUE);! {5 J. c% ^7 i
return status;
, h) l/ D1 T9 F8 e' r8 d% O9 x}
9 h+ T7 k/ C; D* Z% N' W9 A' R |
|