|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
" p# Y' Q' P- h- k, A( c
, ]9 m* k) v; }# ]- qTeamcenter ITK二次开发源码分享:创建自定义文件夹( n; N8 ?, \& K- t
输入的第一个参数是文件夹名称,第二个是文件夹描述。7 Y, M+ T; q0 _/ f3 Y5 `+ y* D. ]
# G( F; G- t6 T9 E3 G @! Z0 c/ c+ P! U: ]7 C6 b' ?& Y
#include <TC/tc.h>, N; [' N0 A* {
#include <tccore/aom.h>9 L. r. U7 {6 z% \2 `5 a9 X4 F
#include <tc/folder.h>
; {0 \% i! R% n6 {#include <tccore/workspaceobject.h>
1 q" l- z+ w# N3 t' \& `$ x6 l* ~% T; G2 r2 h3 w' _
#define EXIT_FAILURE 1
' }0 i+ @+ h" n) W/ U& E: t! g
4 V, N$ F1 I' f* @+ k0 f5 M9 [static void report_error_stack( void )
* K* y1 f$ w" u {9 b) b0 g& B$ i4 t" Y1 e/ B
int7 l) O; |5 p6 e! Y
n_errors = 0,
5 z: F& `" [# O' _/ z# l' }7 M7 _ i = 0;
: P8 k+ J$ K) E' ]6 |0 s) Y6 Y2 T const int7 b: x6 l7 d! e/ j. Q4 B
*severities = NULL,
! ^& V! Y o- ]* M) d *statuses = NULL;
( Z- X( g2 z* v1 D const char
) c; T) Z# A. A$ d) w8 j **messages;
Y3 C% P* I; r0 T8 Y1 l8 S# l! R: \$ o$ A
EMH_ask_errors( &n_errors, &severities, &statuses, &messages );
. G7 m$ |! y$ O _6 Z2 {& c printf( "Error(s): \n");
& v9 ^. f; Y! {& R for (i = 0; i < n_errors; i++)
1 E T, U* c9 X# b {
0 d8 ~+ T" v3 P8 ` printf( " %6d: %s\n", statuses, messages );
! W+ N' L) ^4 y1 Y5 s }" L9 b$ J- H# h' o, b- v
exit(EXIT_FAILURE);# s' G$ `; v4 A0 H( P Q* B# o
}
4 R9 `, t9 @* I- v: D/ x3 a; ~+ h3 B; B( ]) s. P
int ITK_user_main(int argc, char* argv[])( g+ v T. _* A, ~2 P5 X
{
8 ? D) l8 C3 H1 n8 _% R9 E int% q+ S& b( d+ j
status;
4 w: A C0 e5 o7 c+ } char
9 [' I; F1 o/ o0 n- F$ I folder_name[WSO_name_size_c+1],- X5 U% D4 O2 w6 b/ f4 M ?% b
fldr_desc[WSO_desc_size_c + 1],
% P3 u& o+ S! f3 |) q *message;
7 M% N/ a! Q* p% n tag_t5 Z/ V1 |$ W3 {; \ t! u% K
new_folder;
$ i3 r; f* ^$ D/ | g( o" o; ~2 B
- b: O# a$ J' t0 l ITK_initialize_text_services( 0 );' A1 T3 J1 A1 |3 E4 u
status = ITK_auto_login();* A! T5 Q% [# {( A
if(status!= ITK_ok), O4 R7 K$ ]! H4 i8 G% A0 ~9 Y
{
9 E! `1 K% q9 ~ report_error_stack();
$ M! N+ P9 Z: I+ ]# I& U( S }* s' r, b0 n' I0 I0 w
else
( O* D# z C# U {$ D5 v& v9 Q0 W# d6 F% `
printf("iMAN login successful.\n");6 W7 @& E# `9 @5 x/ O$ m1 U/ z
}
2 v+ Z1 k: r& L2 x0 x" t( K( d3 y4 e/ ]* q9 e" l
ITK_set_journalling(TRUE);3 j* L, x8 D0 }" v6 N
. ^# ^4 k8 Q$ W) ^
if (argc > 1) strcpy(folder_name, argv[1]);
# [ U/ U( G! I6 b5 B else
1 k! B' {/ `! }: l3 f4 ? {
- G- Y) R' t( d% @ printf(" Specify the Input in Following format : \n");% G; [8 Q8 X: a' P; `! q" e' A( M
printf("program_name folder_name folder_description\n");5 K* O* w: _0 O# ~4 ]$ t
printf("E.g. create_folder phase_3 working_folder_for_phase_3_items\n");- J3 J) w* e9 K6 ?) P5 t* z7 E4 ]% L
return ITK_ok;
. ^% d2 B# k0 M6 {+ E% N } 4 ~: W- S1 S3 y2 \
3 R8 H8 K7 O) i7 x if (argc > 2) strcpy( fldr_desc, argv[2]);
$ a; x! X7 X) e# i6 [& C else strcpy( fldr_desc,"");8 z Z$ {$ i9 Y7 J8 i
+ B& @+ e9 ^8 ?- x2 U$ D; i status = FL_create( folder_name, fldr_desc, &new_folder);
# f# p! R! [& b1 C if(status!= ITK_ok) report_error_stack(); ; s3 B+ p0 G: W0 N. o8 Y
- `6 D3 [4 y2 B7 z/ U# Q, p$ W w
status = AOM_save(new_folder);
: [' }& o9 x: h# w/ @. ^' G if(status!= ITK_ok) report_error_stack();
) c( N" b& V' J0 _$ o& t E else printf("Folder '%s' Saved; ", folder_name);% N( L. b A/ t0 D4 _
' } s. m; [5 { status = AOM_unlock(new_folder);. x' h; m; q6 o0 q
if(status!= ITK_ok) report_error_stack();
L% G b9 G2 M0 [5 { w else printf("Unlocked; ");: ^( n5 H' i; |# U$ Y
( E+ E* @" q2 e: ]
status = FL_user_update_newstuff_folder(new_folder);
3 b6 b3 O: b3 g' Y, p. M! ], s4 p if(status!= ITK_ok) report_error_stack();, B, l/ v4 {. ?+ c3 K
else printf("Put in Newstuff Folder.\n");
7 D/ W; |( }: o
3 F7 T* s" l& W7 D7 {" O ITK_exit_module(TRUE);
# L* l1 l9 y2 @% X9 i& \0 P return status; W1 ?5 E- `" u8 U. H& D
}
: P: r2 P9 \# b4 b |
|