|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- k& S; J! Q0 y5 A* v B
8 E+ a; F, z6 Z+ t1 D
Teamcenter ITK二次开发源码分享:创建自定义文件夹
y1 ?. C$ Y0 y/ e. Z输入的第一个参数是文件夹名称,第二个是文件夹描述。, v% y4 V: D, v8 K+ i, C
8 ?2 w4 Z& M' L- t m) v, A, Y& g3 J: p1 X8 j+ \
#include <TC/tc.h>. U% d# V8 O( g
#include <tccore/aom.h>; c1 B8 h, G3 N' x9 ^
#include <tc/folder.h>
" A; u5 l3 P5 d' k7 s( ]7 A#include <tccore/workspaceobject.h>
& @5 M: I0 ~% y+ j% V. X# f( U, e5 c5 o+ U# g
#define EXIT_FAILURE 1
0 l% t4 d; ?% }1 X
5 E2 i3 `/ Y" }7 E: Z4 q4 _static void report_error_stack( void )
* W: i1 S! q" H, x {
% p' n5 W# v3 m; r: G. q int3 O7 p8 x2 j# N0 `" V& U
n_errors = 0,
- I. }- `% D5 r; j i = 0;
0 ?! W) @8 |& ^$ B# g5 A const int G7 K3 [7 g7 G
*severities = NULL,
8 } L3 U. c* b2 U: s3 [ *statuses = NULL;
: X2 o1 z8 |! n! r3 t const char& d( a# L) C% M5 o- U t4 b
**messages;# f0 s: w# A. D
2 H; \) v: J, `' ]7 Q# a
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );5 e: X4 F; t6 \
printf( "Error(s): \n");( w, p. h4 N' T' L9 l
for (i = 0; i < n_errors; i++) + A; c; o" o" H' c) f' J, l5 q
{
v# ~9 `1 G$ N% ^( R+ \ printf( " %6d: %s\n", statuses, messages );
9 V5 ~! C, d8 Y }
# j8 e2 N( w) J3 h exit(EXIT_FAILURE);
/ Q% E! u+ n' f: V7 Z- H }' H2 J* q2 x1 O- i5 i0 E
1 y7 I' q1 Y( m$ ^. }int ITK_user_main(int argc, char* argv[])3 T) s' \& f2 O9 B6 r5 Y( j" m2 Z
{# t7 R' `8 I/ t3 ]
int
7 v* S6 f; C$ B, ?0 K status;# h3 B5 P c7 T% M
char5 Z( ^* Y* r* s& ]
folder_name[WSO_name_size_c+1],: c' o6 v/ `% [
fldr_desc[WSO_desc_size_c + 1],) I+ Z& x6 |9 m# c8 A5 b2 E5 q2 e
*message;
* i; d9 ^- s' T$ m5 A tag_t6 O2 W) M) Y( G" }( V6 ~. j" P N
new_folder;
5 ^0 b" T4 l: k8 Y# ]' J f$ F' x+ I3 v/ ]
ITK_initialize_text_services( 0 );' N' k. D/ \! B. Z1 U7 y
status = ITK_auto_login();
* u7 G, |0 M% o if(status!= ITK_ok): s2 t" [" ]2 g2 O% K* i
{( R; O* W* ]- ]
report_error_stack();( q3 z. b9 Y1 o! g5 V3 G8 j+ j
}8 V3 u. ?* E& ?9 k; s6 E) Y3 z
else
" {8 O/ V0 K+ X& g4 I {
) T5 _9 |. } f printf("iMAN login successful.\n");
4 R0 }+ t ~7 P' t }
4 Y- D" Q8 G9 T
/ `8 \' {! @, a% }0 p( S, Y ITK_set_journalling(TRUE);
x" `! E) W$ D& f6 m
" |! d+ @$ N2 z: n if (argc > 1) strcpy(folder_name, argv[1]);
# n! j/ w5 d% y6 Z4 q% t0 |& S: \ else L7 [0 z5 n: n) w( \
{
& h! M7 Y4 w1 Y1 y- { printf(" Specify the Input in Following format : \n");
z+ |! K+ i1 z% |. L' z2 o! R3 s printf("program_name folder_name folder_description\n");
4 P# g4 U- P3 g! q, b( C( } printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");( f( a9 A0 N1 a! E3 @0 n# k& s
return ITK_ok;
- [0 g, h ~, r6 K$ ]4 T* @ }
) d0 f' P" V* v9 Z& A' d
( Q N D" ]3 c0 }! S( h7 M if (argc > 2) strcpy( fldr_desc, argv[2]);) ^; W* Q" E. a* [ {; z) M6 w/ L
else strcpy( fldr_desc,"");4 H K$ `7 j8 N5 U( T
8 x/ \" w1 G, o5 [1 T. c3 h
status = FL_create( folder_name, fldr_desc, &new_folder);
* {- @+ @* h& M3 ~ if(status!= ITK_ok) report_error_stack();
) }7 o" T7 M: t! r" K* U
7 I2 l3 C( i- t; p/ d! i _6 a status = AOM_save(new_folder);6 W( U% c# a8 Z4 n& ?/ Q" {
if(status!= ITK_ok) report_error_stack();6 R, }( m$ L5 u; K
else printf("Folder '%s' Saved; ", folder_name);( A3 x) V& b f4 ?% {
% G5 E# L2 M/ }4 F ?+ b: k( a! W# W
status = AOM_unlock(new_folder);, k4 M5 d( W2 S- p, v6 k
if(status!= ITK_ok) report_error_stack();
6 M* a% ]2 M/ T+ S { v else printf("Unlocked; ");
9 o0 O8 N: }* ^" {$ b
" d( K1 j% }% }$ M# U status = FL_user_update_newstuff_folder(new_folder);
7 l) c: `( e$ {2 A if(status!= ITK_ok) report_error_stack();/ c- F: m5 I6 M. M
else printf("Put in Newstuff Folder.\n");/ w5 a# I3 ` b4 B
7 u2 s, a0 s8 q& h
ITK_exit_module(TRUE);- f) \7 i4 K. \' f7 t9 O& G
return status;
% c8 w- c0 j4 @4 x$ N3 J2 R! r6 H}, I) y# @" J7 `6 M' w" N
|
|