|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* W$ G( w( z) Y* J
) a" D5 N3 v6 n1 |
Teamcenter ITK二次开发源码分享:创建自定义文件夹% ]7 o9 g9 q% U" ?
输入的第一个参数是文件夹名称,第二个是文件夹描述。8 g8 P7 ^4 _7 v4 Q4 J
" w4 q( `/ k% l G1 g+ k
" ~! y% S4 U5 W: F9 v! b. i! U#include <TC/tc.h>
* p9 L3 w: L4 _2 P+ a7 u# Z#include <tccore/aom.h>9 l: f; u3 V, E+ U
#include <tc/folder.h>
6 r1 ?& h5 c: j x( f2 T#include <tccore/workspaceobject.h>( n' o0 p( R! I; v P. L6 ]
3 b+ Q6 D! b1 o$ f* r/ A1 f
#define EXIT_FAILURE 1
/ ^7 i/ P5 K" X7 r. D" k8 M: X4 O0 Z+ n8 }: }& q" y5 {
static void report_error_stack( void )
( x: m; D& ]6 U+ c# }8 {! i {
; I& {. q5 S8 e E: m; v' S int
; ?- w) O: O2 A3 }3 c, v n_errors = 0,! R Y# P5 J! c# `. B8 G
i = 0;
3 o! v5 v4 S" y5 i; J# @ const int
$ \8 _5 P$ o p3 X3 q *severities = NULL,
6 y: S: L3 |/ K/ L. L" i1 u/ m *statuses = NULL;
! L4 H3 E( J0 ~( u; S1 Y g const char6 k5 @, I$ m# Y& Q5 [
**messages;# y0 u# a `4 {* r3 Q
& D* \! r6 m p" W; P3 a! z
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );
6 l. t/ `" ]1 A printf( "Error(s): \n");
2 [0 v( q/ W0 E* ~ for (i = 0; i < n_errors; i++) , @; R% I0 v! V d. D0 o2 H
{$ ]5 n4 d: K7 N4 U
printf( " %6d: %s\n", statuses, messages );
) N ?( p" E; W2 z }! o- A, v9 [- ^! H/ h: O
exit(EXIT_FAILURE);
/ {, j% S5 L* D! ?6 { }" x' O' G" |7 L8 g+ u
/ @. O7 E. w7 q% g% jint ITK_user_main(int argc, char* argv[]), Q" k1 y, A, }# R% e s6 R
{
) m/ R: J% U1 _9 ~- Z' i' l) ^ int
9 a7 _4 A8 ^4 z2 y6 T status;
$ |2 P5 i& B3 _ char
8 W# L4 L' B% [+ z folder_name[WSO_name_size_c+1],
7 X* }% n6 |0 `4 B5 p/ c fldr_desc[WSO_desc_size_c + 1],6 P$ l8 L6 [: P# f3 t, [, ^! Y
*message;4 \! V6 c3 |2 J9 e
tag_t* I; X& x* j8 h5 T I! o
new_folder;: U* N& O7 C0 a/ e$ P+ g
. l' B( `) `' l5 o
ITK_initialize_text_services( 0 );; H& v3 \4 |2 ]8 |
status = ITK_auto_login();$ \5 ]4 z3 L. _( _- v) o0 _+ K
if(status!= ITK_ok)
) {) h' H- W) s {) S% _" U8 @. K" d+ L; P2 N3 F
report_error_stack();' ? ^7 y6 ^* O6 n+ c
}
+ M$ R/ h# [+ e else# j; p0 _* m& r) z! W% K
{
/ w9 }2 v; V3 W7 [6 u: A, R. H printf("iMAN login successful.\n");
0 v* z8 O4 V' Y$ E }* o) f" m- i& Z/ M4 m m
; s T9 k8 D) f7 [4 r ITK_set_journalling(TRUE);
; P. K% l1 |- T2 p3 O
4 [( ~2 P) }* G. Y if (argc > 1) strcpy(folder_name, argv[1]);: y. T9 n1 ]; S8 N+ D; ~* g
else4 J) {3 Q9 D3 ^* R
{
9 p$ W; A: v' v printf(" Specify the Input in Following format : \n");% Q; ?& w# e; d/ v" V6 G
printf("program_name folder_name folder_description\n");
0 ^- f, {" Y8 M9 j# K0 R( [+ n0 t printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");6 E# G: U- \; y/ [
return ITK_ok; 3 V3 T8 H2 x2 Z3 K
} . O! ~. @! W( H" Q9 G
) ~7 R7 g1 Z( n7 n
if (argc > 2) strcpy( fldr_desc, argv[2]);
8 ?3 F# J/ Y7 o) ^9 M+ K else strcpy( fldr_desc,"");" @1 I; r" S$ `: [" d; F* C
) X$ [6 C7 T2 G6 K status = FL_create( folder_name, fldr_desc, &new_folder);
s4 ]( h: h) v d- |) c if(status!= ITK_ok) report_error_stack();
! e3 X5 |( N" @- m& F& w0 V/ x |2 j+ V, K, I8 x. W
status = AOM_save(new_folder);
# i% U) d/ D$ u5 Y. j f if(status!= ITK_ok) report_error_stack();' I. o" a# y2 j+ Z5 e
else printf("Folder '%s' Saved; ", folder_name);
. l+ t( [. S' u* p+ i+ O' d
3 e- }$ @+ n+ h6 A! A status = AOM_unlock(new_folder);
* r2 t# L& |+ o5 [ if(status!= ITK_ok) report_error_stack();. l- `2 k( H/ b* p
else printf("Unlocked; ");
' U7 p' r E$ p9 O8 Y4 }' a" Q [
- @ X+ m) F3 _) W, n status = FL_user_update_newstuff_folder(new_folder);
4 o# N3 p* x1 _% s if(status!= ITK_ok) report_error_stack();$ R. d+ d: d& N4 U
else printf("Put in Newstuff Folder.\n");
/ W4 P1 | p' }: Q; N6 ]4 u: J! n6 H2 {- W4 h
ITK_exit_module(TRUE);
/ |( E ^0 }9 ]& |& X return status;8 J/ E) \7 v: H: {, @- X( K! |6 c; p
}) [3 ~* m* s6 C
|
|