|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' M4 h, |4 c$ I) t. B: x% ?7 S: U1 D
3 Q; b" y% T- V7 i, `. j% e
Teamcenter ITK二次开发源码分享:创建自定义文件夹
8 k$ ?! v; y ~$ S% T/ ?" e8 b! i输入的第一个参数是文件夹名称,第二个是文件夹描述。5 Z3 o2 v& Y1 U9 ?& s* d
0 F9 [. n! ?" v; C; U9 G
7 k# a5 O* Z, B% ^' B#include <TC/tc.h>2 i3 `$ W% ]: x7 U
#include <tccore/aom.h>2 R* v: h$ I a: z0 @
#include <tc/folder.h>+ w# ]9 t$ l* ^) P0 }
#include <tccore/workspaceobject.h>1 [5 a! \' y5 E: N
9 f% D' n5 Z5 h9 p
#define EXIT_FAILURE 1
# S" I& p0 t8 n( _# F$ e. R; N; c
( N" o$ Z$ d8 C! Y2 ?% Qstatic void report_error_stack( void )" _1 m4 p9 _) z
{9 W' B+ P* t2 t0 l- A0 p
int4 S" `+ H/ }; J# [2 C
n_errors = 0," A: B' k( P+ G0 `7 e% e' z
i = 0;8 F N! L3 i. G0 o r$ l
const int
. S, X( J- q% T0 _! a }7 @. j8 R *severities = NULL,
+ Y; E, [% q$ e *statuses = NULL;
, P Q0 Z9 q2 k: l' s$ \% U const char
4 h, Y. Y4 V% F5 C ?2 Y **messages;
) ?" ]$ U- u- q' |: l' l+ R% M6 X6 ]0 B
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );
. j+ C& U. E; }9 i printf( "Error(s): \n");
7 z# I5 o6 J& |5 S r; U9 h for (i = 0; i < n_errors; i++) % e6 F: f! D* R1 Z2 a( N) d! e
{
+ v% ?! X5 b. w( W printf( " %6d: %s\n", statuses, messages );$ D% ?& e; `0 A, d* ^' ?* j
}4 c" J _. ^, l' t2 M. W* U* Q. a
exit(EXIT_FAILURE);$ L: W8 |; {" e9 n U6 V$ m
}
: f9 M2 Y. _; F1 O4 E4 Z) n9 M) D
+ s9 q2 N/ M) T) g* _6 U* |int ITK_user_main(int argc, char* argv[])
( L; }4 P9 Y; ]9 b{) J4 \9 N6 l; L( W1 [7 ?' B
int
7 s. m: K1 p I Z, v5 n- r" P status;7 [3 I; q/ T: x/ p' ~! f2 k2 d
char
5 D/ a5 _* ]- y0 D folder_name[WSO_name_size_c+1],9 M' u. e- }7 C! @9 ?1 D) S! R
fldr_desc[WSO_desc_size_c + 1],
# ]8 t/ M0 Y/ O1 h+ [! Y* |9 ] *message;( O6 c5 V2 r5 X8 b5 {" c
tag_t
7 J5 g( Z, U% F# c new_folder;
5 A3 j, B/ f. E! j5 [! {
( Q& d6 M/ l4 A! H& G* z3 Q: D ITK_initialize_text_services( 0 );5 X$ ]5 P, w8 }8 i! w, y8 i9 t5 q; u7 f
status = ITK_auto_login();
5 g6 ` X9 p3 \& u5 T2 F if(status!= ITK_ok)& w8 L/ I+ ?8 L0 b7 K
{7 h1 O/ E$ z V4 Q
report_error_stack();
/ _8 H3 b8 \' K/ r+ _. L7 O }3 a! a' Y1 n4 _
else
$ v8 z* O( V% _3 L h {
6 G( [# D" C! `4 z4 E q5 t; D% J+ y printf("iMAN login successful.\n");
/ g$ G! `; K# v [ }
- F O6 }. p! j. u& n
- Y G% a* \7 `1 m" K ITK_set_journalling(TRUE);
* | N' t' D& B- T# u' W/ n2 X5 ]4 M6 B+ z; ^! d; m
if (argc > 1) strcpy(folder_name, argv[1]);
% L4 p) c/ D* @* O; _ else- f! ^3 R) d# C4 J$ {9 p
{
1 d6 M% H2 g7 ^& {$ w n printf(" Specify the Input in Following format : \n");4 B4 u; J R' t' {% R
printf("program_name folder_name folder_description\n");- y. d/ V% w, ]1 i' V, q* |
printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");" w4 m( v X7 W3 f$ L! d
return ITK_ok;
( w: h% y' M, \& f5 i/ k9 I } 8 j( k7 m# P$ s
' u" Z+ Z% m' `8 G! y. Q) n9 a
if (argc > 2) strcpy( fldr_desc, argv[2]);' H# p8 g1 Q: J& u s
else strcpy( fldr_desc,"");* |+ f$ v6 U4 {; d0 X
8 c% _2 R, ^$ c
status = FL_create( folder_name, fldr_desc, &new_folder);/ X% v4 ~, O# D: n, S3 g
if(status!= ITK_ok) report_error_stack();
" u6 T/ D! _9 D8 Q0 n% }9 f
$ J3 S% H) I4 l1 s status = AOM_save(new_folder);4 d! c( \4 D1 t3 I
if(status!= ITK_ok) report_error_stack();+ H7 V& |8 y0 u) Y
else printf("Folder '%s' Saved; ", folder_name);
+ y% B8 i! q5 ?* v) W2 q2 _8 Q; Q$ I) Y
status = AOM_unlock(new_folder);7 {3 v! w- R$ q9 {8 e( q5 b
if(status!= ITK_ok) report_error_stack();2 j. U$ m6 u2 m7 F& n
else printf("Unlocked; ");
. l" i; X$ j/ T* z$ ~) l2 V4 v: f: s* _, D+ c
status = FL_user_update_newstuff_folder(new_folder);
2 U" M! l& G' W if(status!= ITK_ok) report_error_stack();
1 i, _0 V4 X+ U, y# e0 P else printf("Put in Newstuff Folder.\n");
4 J. T' E! |( [! d/ R. J5 L D; \& V: ?
ITK_exit_module(TRUE);8 o5 `" H) w0 f% g7 G* `! Z9 u( {$ T
return status;
6 m- f+ @/ J( T+ a, Q}! D6 S: @( v2 \; s4 D3 J U
|
|