|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. L+ I/ n% k" ^' T, b. I0 W/ V2 C& u5 ]; B& m
Teamcenter ITK二次开发源码分享:创建自定义文件夹( L$ {# G. U8 Q- H& W
输入的第一个参数是文件夹名称,第二个是文件夹描述。
( v) Q% C0 g0 Z v& B/ Z3 D5 B' F- k1 N4 b
% _9 u6 t( B# X/ p2 |' G
#include <TC/tc.h>4 W) W, Z- J F# ?
#include <tccore/aom.h>
, G" x/ [9 R- r% V$ q9 d# x, L#include <tc/folder.h>- T/ \6 q* \7 G
#include <tccore/workspaceobject.h>
3 b/ ], L2 c. O1 ^/ z$ R+ |2 k) H# f( G: d4 `$ l/ W
#define EXIT_FAILURE 1
( P' C0 \6 ?% I5 V: P3 _9 F& b E2 ~
static void report_error_stack( void )8 R0 ?; P7 Z' C( l X9 ^$ I
{
: l; @. r6 M2 D \. Q" J int
( j0 ~# o" q" K. @ n_errors = 0,
* @3 v+ b1 P. a- v$ }1 p0 f i = 0;; ?; T& o `9 o6 f
const int
0 o/ a L$ C, C, W- _ *severities = NULL,' l, @8 W2 r/ P9 I
*statuses = NULL;: Z- G9 m" f: @
const char
# Y2 f p# O0 X **messages;
: R7 {& v. T* Z( `4 x$ e
3 K( D, ]' @! r' m) f EMH_ask_errors( &n_errors, &severities, &statuses, &messages );2 u- H5 R& i) ~, R
printf( "Error(s): \n");
8 Y0 A& d& k4 D. p8 ~ for (i = 0; i < n_errors; i++)
3 P6 x+ }% R4 ?8 G8 L' B8 z {; {8 ~. A% }" Y. B( c5 _. D
printf( " %6d: %s\n", statuses, messages );
$ z5 ~, }6 d. a9 H8 w: a' t0 z. l }6 v2 O1 z- v- C( }0 T8 \( Q
exit(EXIT_FAILURE);
5 T( V/ u/ ?- ~' A0 Q1 \2 ^! { }
5 w2 z7 ~( ?( {$ m+ Y7 H
: q5 i, A" F: x; i1 `int ITK_user_main(int argc, char* argv[])- L7 S6 X& Q+ C4 s
{6 x7 @6 f3 a! ?% V8 u
int$ Q2 Z$ x- t6 w4 J5 ~
status;
6 E3 i* ?6 n2 W char
# ?' m. m r3 G* J folder_name[WSO_name_size_c+1],+ G4 D& N- T2 K$ ?" S) e7 S
fldr_desc[WSO_desc_size_c + 1],; w0 P+ V+ y4 B' W5 f' @& a. Q
*message;
7 y& G3 Q& r% g3 o tag_t
' S- x& m! p& A+ H' R9 p& u new_folder;
# v6 W5 i9 _! I! o* w' p7 f2 F! ^( V, L. H+ ~
ITK_initialize_text_services( 0 );; D O4 e8 s8 @( ~! {
status = ITK_auto_login();
) }" u# X& J: d: l if(status!= ITK_ok)
$ \3 u2 R! ?, | {
3 h2 A; V4 z0 b( @ v report_error_stack();7 G, k) g: N7 t! p4 Y' ?
}
7 O! w; R: Z0 J1 ]6 m else ~4 o- U2 I* w; Q! j8 U$ p0 H
{
9 y K0 T5 u( y1 v printf("iMAN login successful.\n");
- u" d7 c _ u+ T3 | }
* N( M. a6 `" }2 F3 l% @* Y) V- P& o4 u5 h7 [, d( G- s1 u. k
ITK_set_journalling(TRUE);( T5 W6 }) r* d* x- x
! Y! K- |/ p8 T# R+ Z
if (argc > 1) strcpy(folder_name, argv[1]);
5 I1 O4 K6 H* E% `* P: Y else
' N3 Z5 U1 [8 ~4 R, t+ x K9 R3 k {
; g; M. O" u1 V2 b, G- \ D printf(" Specify the Input in Following format : \n");8 Q4 H; D7 Q. t# U$ r: D6 r( ]
printf("program_name folder_name folder_description\n");
; u; l9 c& z7 m9 V printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");5 [9 S( N8 {9 r7 @. ]
return ITK_ok; ; Q8 n6 |" {7 O( _" ? m
} ; `( n0 h% w" L3 ~" l# H4 ~# N2 h+ }
* N/ h! s* J6 B- ~ if (argc > 2) strcpy( fldr_desc, argv[2]);
0 C" j' l, P3 @! R* K4 i* `( U else strcpy( fldr_desc,"");" Y* R& d9 f; O9 H0 n
( B/ h! [7 x/ C5 h5 U3 o4 ^ status = FL_create( folder_name, fldr_desc, &new_folder);
0 ]& c4 z, n; w7 u if(status!= ITK_ok) report_error_stack();
+ Q2 E" F9 t& R! x1 {
! A1 [2 s: L$ A, f- M. A! L status = AOM_save(new_folder);& c6 E* S0 L( y3 W
if(status!= ITK_ok) report_error_stack();
- |8 s; u0 n3 ]8 M Y# ~3 Q else printf("Folder '%s' Saved; ", folder_name);
% S) Q9 x: d9 c- o4 `+ U' V9 o. O6 _* _7 K8 J
status = AOM_unlock(new_folder);$ D) }4 P9 B* a4 M
if(status!= ITK_ok) report_error_stack();; ^; g% F6 e. I7 X, d
else printf("Unlocked; ");4 _+ ~' p0 @: k2 a! h8 D
; Z; [9 ^7 O; W
status = FL_user_update_newstuff_folder(new_folder);3 R8 Z+ b" d4 A6 C8 B
if(status!= ITK_ok) report_error_stack();% w4 m4 f2 f+ _
else printf("Put in Newstuff Folder.\n");
, P- M. b2 }8 m8 u
0 S) U9 i" Q3 ]5 t; c ITK_exit_module(TRUE);- D6 {2 v6 t1 r. ^* n
return status;
7 a- K R3 l; l}
' o: |9 X1 |* `' _ |
|