|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 U9 q! B5 z2 p, e' F o% V! K+ P+ l- R
Teamcenter ITK二次开发源码分享:创建自定义文件夹! A" Y& k; L, P! E: x4 H& d8 i
输入的第一个参数是文件夹名称,第二个是文件夹描述。3 K! Q$ K1 l8 ?& ^0 X" K
9 M& {' e: |! u+ Z0 n
+ l# `) F5 C7 [/ D- P3 s* M6 W#include <TC/tc.h>
# M1 A/ I6 G; |: j' J#include <tccore/aom.h>
9 _" @. [) i0 w; |* Y9 x#include <tc/folder.h>+ M9 _6 ^' `& Q! {1 \4 k
#include <tccore/workspaceobject.h>/ T5 W! B' a* m9 e' i6 V
6 m2 @5 ^0 d8 v: } m/ s' j/ q9 I
#define EXIT_FAILURE 16 h% D( ^/ v! R7 E5 L6 l9 Q
% y+ g N E0 Z8 @- E
static void report_error_stack( void )
+ G) N0 m, x: ]) V {
4 d( O, p: B% u. G' b" s int
& V, K* Z' d5 k4 a9 \. G' f n_errors = 0,
! y5 G4 e- o% c i = 0;
( Q( y9 V, e2 p( x$ D const int( E# D9 }* V& C: m
*severities = NULL,; }3 U2 z: Q; N1 l: v% y
*statuses = NULL;
- V; T- z6 l3 _3 X7 E* q const char
; j7 L' T j- ~) K( O8 [ **messages;1 j: D4 X6 J ]- w; T$ `
3 L/ M3 m- {5 y5 ?* [1 S) h
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );, x' b3 ]0 b2 M6 M# {
printf( "Error(s): \n");: `+ ~: P @3 F$ g/ P
for (i = 0; i < n_errors; i++)
9 W, [* c/ a7 T1 ?0 E9 m {: a8 _8 C8 u" g" I2 @- e
printf( " %6d: %s\n", statuses, messages );4 F4 [# @; G% y) k& n
}8 c/ @2 ~3 Z; D3 d9 y
exit(EXIT_FAILURE);! i1 n$ w" W7 j
}
: L J" Q4 {/ l C( d4 [1 g6 W* V. o7 s6 ]" k5 N
int ITK_user_main(int argc, char* argv[])
: W6 D. V$ Y% C9 H4 `/ \{
$ s) t8 C8 @. l) \$ D3 R int
3 Q% G! k {' m status;
m- ^ u7 J' Z! h* E char) m- ?2 j- H3 N M, N
folder_name[WSO_name_size_c+1],/ d" }( j: E$ ~$ ~
fldr_desc[WSO_desc_size_c + 1],* V6 Z/ ?: p8 L8 Z
*message;$ `; D, i8 a5 _
tag_t; R. Q: D$ ^; P: p `
new_folder;
, Z7 p/ `- v& h2 U5 c& ^/ y; q% S2 [6 P4 m, E
ITK_initialize_text_services( 0 );
& o: }+ _' m' Q2 } status = ITK_auto_login();% i! c' G% \, u
if(status!= ITK_ok)0 ^. |& q- ?, W% d9 ^% \
{9 I+ d6 f% m" f! K0 B
report_error_stack();5 x) K( `+ c# R2 T+ ^3 I
}8 K8 V8 N3 h i u% j, _
else! K% Q5 Y* G$ B, [
{. R6 O G' h$ {5 H2 [
printf("iMAN login successful.\n");9 ?2 [0 v L& s' v3 L% E+ r# |
}4 Q6 \; k0 r& z& x
% L! Y6 x; D- g8 g* ?' Y" j
ITK_set_journalling(TRUE);
% b. z+ b4 z) F4 o0 D6 L2 \. t! S; l
/ P @6 [+ x" v/ J3 Y if (argc > 1) strcpy(folder_name, argv[1]);+ Y9 L: w& w: \2 O
else
, t5 w! l" q5 U, A# a {8 @3 Y2 b" Z! g1 W H5 W6 b# G
printf(" Specify the Input in Following format : \n");
- F- o# P0 X2 _6 W" L$ p7 k8 U printf("program_name folder_name folder_description\n");, m6 W2 a0 A2 ]4 o# X8 N- u
printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");
/ P Q" B' X: i# g% b5 K return ITK_ok;
! _. R! `( `& p; s, L. S }
+ A& U: } Q1 f' i- B: G, h9 i& Y& O5 h$ X+ J$ r4 i
if (argc > 2) strcpy( fldr_desc, argv[2]);0 l/ ~' U% G5 A8 t) g) C: q2 x
else strcpy( fldr_desc,"");
& T$ u. K- b" ]6 U# o6 Y# h2 A8 Y( S; A; ]' l% N
status = FL_create( folder_name, fldr_desc, &new_folder);- s* {7 N& d/ G' |+ y
if(status!= ITK_ok) report_error_stack(); / T( G2 k0 e/ u) U4 c V6 C
4 H7 h7 X/ a2 ]& F
status = AOM_save(new_folder);) N. n3 i% T% B5 P% z% |
if(status!= ITK_ok) report_error_stack();7 }% w8 t) u6 M
else printf("Folder '%s' Saved; ", folder_name);/ w- `4 F9 @0 I/ P( z# t$ x* D! i
/ w* y: s/ J8 \- L- Q. a+ n status = AOM_unlock(new_folder);
$ _! I* h9 h3 [' C if(status!= ITK_ok) report_error_stack();9 t- I( e: i' W6 ]# p8 c& u
else printf("Unlocked; ");5 a" i# f, Q- F5 G7 ~6 S
+ G& c& E: ~( \- r w
status = FL_user_update_newstuff_folder(new_folder);* B7 q: M& n9 D: v2 X V7 {0 i
if(status!= ITK_ok) report_error_stack();. o; m: P0 r8 _
else printf("Put in Newstuff Folder.\n");
5 N! y) L( y' f: V8 `5 {# [7 M0 Y+ ?+ J. J M8 D: L1 h2 _
ITK_exit_module(TRUE);
, I) ?, u/ ~4 W& D* p" }$ ?! f return status;
. C+ E) x3 d2 O' O6 h}
1 y7 V7 O6 E) J& Q. R% X% E2 B% H |
|