|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
B% q2 |: v' o. s
+ P# m: L/ V/ UTeamcenter ITK二次开发源码分享:创建自定义文件夹( ~, \8 W7 N2 T8 e4 E: k7 U
输入的第一个参数是文件夹名称,第二个是文件夹描述。
, z2 c9 v7 g4 O* G# F! d r: M3 m6 U) v# u
" K F+ Q- V& L: W
#include <TC/tc.h>" }/ ]/ B5 m0 M( k2 D# n
#include <tccore/aom.h>
8 ^/ \% g3 I- `6 v#include <tc/folder.h>/ r$ y: i5 B; i0 u4 X+ D
#include <tccore/workspaceobject.h> O) I# K+ Z3 l# \, P+ \1 N9 ~
& T Z# X" s$ _ x( h; f3 W
#define EXIT_FAILURE 1
" P3 D3 Z, F7 N1 r
. m( F0 `- |% b8 {# Nstatic void report_error_stack( void )8 o: M; z* _" o k
{* ]7 ?+ E2 w( e4 `
int
# _ c4 K0 C$ J) @( P6 W n_errors = 0,
& Z( j' n% a/ A% q i = 0;) I2 a9 r" N! K3 `: N' O* U3 x
const int6 w8 s! @( M6 L9 Z+ P
*severities = NULL,
! k% }( S1 L: j7 {: ~ *statuses = NULL;0 y" @9 J" X' X
const char7 f$ b {* j3 S0 ^& ?1 r9 e
**messages;( H$ e, Z- H& }% x1 @4 m+ D6 Q- p
7 v% T6 H$ M6 V
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );
$ r1 S+ Q# N, ^( B m: d& ?( `. U% \ printf( "Error(s): \n");
% Z" B" K+ ^9 E$ e for (i = 0; i < n_errors; i++)
% F, ]1 {' p7 [+ z6 l% e {% m5 s* O, m" ]9 L" R
printf( " %6d: %s\n", statuses, messages );
7 ?6 X7 V1 M& D" p }) S7 y& l8 X! v! c4 |+ v+ d6 N
exit(EXIT_FAILURE);
% u; m# K7 h. m0 z }
1 |6 _. ~8 H. Y9 Q4 v, a# Y7 K% J4 n) S* }- T
int ITK_user_main(int argc, char* argv[])
$ L! d4 ~# k3 O* G/ p; _" N$ |{
! J' X7 c) ^5 u int- [3 {2 b2 |% O+ U6 ]; }4 |% O
status;
' L7 O) `# e$ u6 u2 H char9 P% q1 ~# K* f& V& \0 [ X
folder_name[WSO_name_size_c+1],* L6 r }5 p& i" \/ P
fldr_desc[WSO_desc_size_c + 1],8 P6 I* O4 p8 L6 O2 ]
*message;2 ~# S4 F( j- ]5 w' y
tag_t
- ^; C4 H, L0 E, H9 m new_folder;9 i) M w1 V" I6 {( J% j+ ?
# u, n6 z" a$ n, f R
ITK_initialize_text_services( 0 );/ r }' C# ~6 @2 ~# y
status = ITK_auto_login();2 Z& x2 G# c8 ?" ?
if(status!= ITK_ok)( `" k& K" {4 K4 ~
{
, F7 u" R: b, U2 s report_error_stack();7 J3 N" v& U+ f0 q+ g
}
6 U+ S u8 h& z( o else8 f3 V0 m3 Z- v j5 B; A
{) x# ?$ B A+ S M3 y/ B
printf("iMAN login successful.\n");( A4 }" z" x- v/ @; b! K% N- U
}3 d/ J1 S6 h% O/ K$ M+ U
Z8 U' A1 C6 y5 d3 b ITK_set_journalling(TRUE);; w8 P6 |* ~* h
" r+ i( h# m- }) ]( U, [* S+ y
if (argc > 1) strcpy(folder_name, argv[1]); k$ j( B8 [4 u$ m4 a
else( h$ M; s' @5 A& {( Q1 u5 m- V
{
% T+ Y. l6 M) j h! G printf(" Specify the Input in Following format : \n");
& O5 S: Q9 i* M7 c5 Y* ^ printf("program_name folder_name folder_description\n");3 w8 d1 g+ x2 E" O7 \
printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");1 B$ {% l. F$ g& w3 y
return ITK_ok;
& C* P/ F7 `) _5 G2 V' M }
: U& A3 `$ [( U, A
( C8 g9 u1 E! z, h( E* ^9 ? if (argc > 2) strcpy( fldr_desc, argv[2]);/ k5 ?3 G7 `) H' R( `1 C
else strcpy( fldr_desc,"");8 ]: q4 F! g; ?/ J/ b8 N# p
6 p7 \' x1 t1 E6 l4 r5 Z7 J( f+ y& ~
status = FL_create( folder_name, fldr_desc, &new_folder);
4 Y- `- S2 T( \: R9 q& ^9 K if(status!= ITK_ok) report_error_stack(); + V9 S3 w' y) h5 O5 D* T7 ?3 t
: C" a; I3 ~; M/ U status = AOM_save(new_folder);. K- g( `7 l c# x6 w& [) K% ^' |; n
if(status!= ITK_ok) report_error_stack();
( v& x3 D9 Y' e. _: L1 W& S9 C else printf("Folder '%s' Saved; ", folder_name);
* [% D+ i& r, s W2 |
7 x$ R8 b: s+ s6 k$ b status = AOM_unlock(new_folder);/ X y" P- B! F( y6 W D! L
if(status!= ITK_ok) report_error_stack();
3 y; c( }2 g. h) C) Q* e else printf("Unlocked; ");
! R$ P- Y; y, d- c- H" t. u/ i: V; l1 [
status = FL_user_update_newstuff_folder(new_folder);
' z7 x6 U% A/ A6 F2 f- C5 Z5 l if(status!= ITK_ok) report_error_stack();
0 l j6 c: V0 N9 r/ G$ C+ ^8 C else printf("Put in Newstuff Folder.\n");# h; u) h" }, v! c( @# I. Y; e
% E: f, x) E0 W0 e ITK_exit_module(TRUE);" N& P: [- H2 n6 x
return status;
: Y" y+ m. ~- i}9 z& [; ?1 ^! U, [+ }. `5 L0 P
|
|