|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
9 w3 T6 Y+ N* b9 I9 ?, O0 P) y9 x4 v
Teamcenter ITK二次开发源码分享:创建自定义文件夹
" D) s, L6 F' v, ~$ L( q4 ^, P8 r输入的第一个参数是文件夹名称,第二个是文件夹描述。3 `' }, [2 K$ U, Y' H; a2 X
; N$ a" U6 Q( |+ V; K. x8 d
1 f$ |. L3 V" X) D3 F! y6 n#include <TC/tc.h>
, E% d$ n$ f8 y ?1 c3 P/ K& a#include <tccore/aom.h>
; A) F0 Y7 K, a; D" O+ s4 L#include <tc/folder.h>
5 S6 P1 ~6 I5 v1 h#include <tccore/workspaceobject.h>
+ ^- O7 ^# B; s4 ` z- g4 y9 g4 R& w- W) O8 P. q
#define EXIT_FAILURE 1$ Y1 y+ A' E s
% K- J7 R/ d2 z- g+ }( U% ?
static void report_error_stack( void )
" M) k, }8 Z: X. h& c {
* e7 z! A( m! T1 H* G V* @ int% \0 Y! O5 k# a! ?9 L) g
n_errors = 0,
1 I* y9 Y8 O& H3 L; d# D1 \" E i = 0;
5 Q/ u m) Q0 e5 M const int
; G0 T4 `4 @8 C% u/ X+ u2 m4 K *severities = NULL,
: h( V+ u: j i) w2 L *statuses = NULL;' a+ `. d7 e4 L) W: T4 N% h- s2 S
const char
/ S) \3 K+ o8 ~+ p8 i! W; n **messages;( K @1 U3 \9 u: `( D6 g
. K6 h2 h5 N5 i) R2 j. s EMH_ask_errors( &n_errors, &severities, &statuses, &messages );
" M/ L9 D$ R$ v' k printf( "Error(s): \n");
( z q( C, Y5 ] for (i = 0; i < n_errors; i++) 4 y- t( e# v& [) o& P! n$ z( I" z* s
{
* a r& }. X/ }+ }# L printf( " %6d: %s\n", statuses, messages );
$ Z; g0 m' j' f1 a; n7 M }5 C3 V; D; L R8 r/ m
exit(EXIT_FAILURE);% s7 G5 C$ E! e9 L. l
}" `" A( W" [' ~# Y
; A9 G: ~, x* Y: I
int ITK_user_main(int argc, char* argv[])
) _" y5 T' p3 x{
% v" @; g4 u# H0 s( _$ o int
h) ~2 O0 q, b& m0 } status;( P) H; U" t: U6 R# y& } o& k6 G
char+ d! s1 m7 q2 q
folder_name[WSO_name_size_c+1],
- z- b% g3 B1 W: |& G# S fldr_desc[WSO_desc_size_c + 1],6 }- v) |9 P5 R5 B) p! G
*message;
/ F# ]/ V! Q' t1 u1 o# S tag_t
5 f. I, M+ g- @1 _# B new_folder;
?% I; p) r) s# I$ r
, U8 f: W1 E6 Z% m6 Y0 r) V5 r ITK_initialize_text_services( 0 );7 [& j9 m, i9 K1 {* X2 |5 {/ Y3 ~
status = ITK_auto_login();
& { Y& X0 g: v7 o7 H. d if(status!= ITK_ok)$ a/ n' P' v% B% Y
{& v. U2 v5 ^! s5 E7 l1 a2 c2 ?
report_error_stack();+ l0 ?' {. ~9 t2 k
} e+ [$ ~& M* a6 ~( h- w
else
$ p( y2 X: c$ `- ]! N {: Z5 [0 ^) B7 |/ p z
printf("iMAN login successful.\n");; v- Q( Y0 p1 k: O9 o/ F' l g
}% l; [7 n. i4 A$ z Y
. R: k( n! U" o3 A4 ?4 H9 i
ITK_set_journalling(TRUE);4 N! V$ |! Z* x/ y0 C" m- Z
/ I5 H' b& S( M- _% b if (argc > 1) strcpy(folder_name, argv[1]);
) C, b2 ~9 W) O' g1 q: _' ? else
/ ~- }( s) j# }& S5 m {& o+ B1 e) Y& V5 b) J
printf(" Specify the Input in Following format : \n");6 @/ k R# i+ ?# S
printf("program_name folder_name folder_description\n");% K2 c! T% h6 E, W% a: C4 u9 }
printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");0 R, q7 `& \1 i4 y6 T; j7 y
return ITK_ok;
/ `8 L& @- Y; ~6 a }
, s" y3 {( H/ i) s0 W" j5 ?0 }+ C' x; `" E( H4 F4 u
if (argc > 2) strcpy( fldr_desc, argv[2]);
/ |9 w5 N1 P% M else strcpy( fldr_desc,"");
) z9 g2 U* F- D& F* Q) G
- }* P, L: K' o) B9 } status = FL_create( folder_name, fldr_desc, &new_folder);
( }) w! y) M" r' R9 p1 G; x3 z& w if(status!= ITK_ok) report_error_stack();
( j9 y, p3 x7 f; m N
- _7 a. K% b: _ status = AOM_save(new_folder);
4 A8 x1 j/ B9 H. b: \6 P2 @ if(status!= ITK_ok) report_error_stack();* L/ M' ~% ^7 A' T+ y
else printf("Folder '%s' Saved; ", folder_name);
+ ~$ u- S' M- g+ A6 ]3 u% @- m; f. s+ R5 V* [5 I2 Z5 u: Z8 h2 V( T! `9 F
status = AOM_unlock(new_folder);
! y0 d, b! r& i, I( ?& ?) m if(status!= ITK_ok) report_error_stack();# a* g1 E, J6 G% l5 y" ]* q
else printf("Unlocked; ");" B8 @$ l6 A1 V8 Y0 v$ v7 e6 v6 d7 @4 d
: h; Z* i1 ^! |7 r
status = FL_user_update_newstuff_folder(new_folder);+ `* V: h0 i6 [. y6 Z, ~
if(status!= ITK_ok) report_error_stack();
+ v+ E# q1 B# i* Z- L. Y0 j4 ], T else printf("Put in Newstuff Folder.\n");, v/ l: e9 W0 s# }" K
( p1 _) ?$ F6 {7 A! ? ITK_exit_module(TRUE);
3 |. m2 P# c7 G( R return status;
# \" G: N* C' D( V; C5 {) A3 Y+ n}
5 k( }& Q d9 y |
|