|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
( o6 |' x3 p8 N+ I7 j) x/ S% C1 |( a
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures, a, x7 f5 ] Y: w+ t7 q3 D6 L
6 p a" V- t. d( w
- #include <stdlib.h>
9 L# E. j0 _) g( S) u - #include <TC/tc.h>( Y! }0 a+ F+ w% Z- N% A, J
- #include <sa/tcfile.h>7 T6 ~6 H: L3 x# M. e' s5 a
- #include <tccore/workspaceobject.h>" l- f6 S" p4 M, q, B/ E% N* D _
- #include <ae/ae.h>
5 R7 f h1 h7 m* [6 N/ j, O# b - #include <tccore/item.h>; k) v9 x# i; C
- : W$ ^5 s7 D( F p2 i' l
- #define ITK_CALL(x) { \( E W* g1 d' Z7 @" b( _
- int stat; \) v) ?& J! U# ^$ w& z
- char *err_string; \
& x% ?( X4 N" q3 h L! k - if( (stat = (x)) != ITK_ok) \
- P* X2 k! w( ~ R - { \
) D" O. I7 C( q- a+ ` - EMH_get_error_string (NULLTAG, stat, &err_string); \$ i# f& O( Z: z0 V E
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
* [# ^1 \+ i4 [& Z+ A& G - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
$ Z/ t, X6 T& ^, X% a: V - if(err_string) MEM_free(err_string); \* {1 L# D9 s* B1 j1 o
- exit (EXIT_FAILURE); \
5 W) S0 e1 j1 a4 @+ M q - } \0 A9 L! x! ^6 B2 a n" k
- }
: Y8 E* d- o# n2 q6 } - #define EXIT_FAILURE 1 ; |% I1 T( }" ?
- ! {- U1 ]9 j% {+ u! F" O
- static void do_it(void)
2 l5 x1 S/ n, k ?, S( M3 W - {; y0 w" |+ H) S% d- `1 u
- int3 V8 D, v- V6 n* i# m
- n_uom,
7 \5 E/ Y9 m0 r5 `# X - ii;
* X9 y% C* e) O - char
" P& _7 w# H: r% f* }" o3 v6 { - *name;, A: P6 H& b8 M4 z( g+ U
- tag_t
# a% l6 R. Z: o8 V) L# S - *uoms,5 U. F% l, @, _2 T7 y3 I
- new_uom;3 I0 l/ n+ @! X7 o5 R
- ; F! }8 a+ ]8 Q4 ?
- printf("Before UOM was created...\n");
3 X5 G' g- ?+ z8 s( o - ITK_CALL(UOM_extent(&n_uom, &uoms));7 N1 X/ ]4 _6 \
- for (ii = 0; ii < n_uom; ii++)
7 k9 m0 A4 W1 Q- J8 z0 I4 V - {5 ]1 l$ \/ t$ ?: s+ p/ U
- ITK_CALL(AOM_ask_name(uoms[ii], &name));7 Z* U" T1 k6 }" T8 A
- printf("\t%s\n", name);
( A# X1 a& [# W - if (name) MEM_free(name);
2 J2 Y$ h* d% X1 h' {4 ^ - }
& z9 t8 b! L. K. G6 a9 |8 l- M - if (uoms) MEM_free(uoms);
: H# b( }% \* P: N' U, p -
- C# b1 V. M* L( J, Q - ITK_CALL(UOM_create("inches", "in", &new_uom));- V5 ^5 k* i. R! Q: o
- ITK_CALL(AOM_save(new_uom));
$ p: _+ X. B6 } -
8 F2 `) d' Z8 B4 U5 y - printf("\nAfter UOM was created...\n"); 6 k! S0 R B7 I1 Z
- ITK_CALL(UOM_extent(&n_uom, &uoms));2 c% _: y k i5 A7 Z0 \
- for (ii = 0; ii < n_uom; ii++)
1 E# L L/ z$ Y& {8 b - {& ~; C; ^, P5 X! ]2 d& M
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
9 U9 N; c0 q/ S3 Z/ E+ o - printf("\t%s\n", name);
: y" Z5 g1 f: _/ R2 ]4 {5 ?8 M0 ? - if (name) MEM_free(name);1 G8 s1 r' P4 \. r
- }
& a! R' [8 T* L0 Q# O; ]7 ]- ~ - if (uoms) MEM_free(uoms);( W8 l# I: ^! O- V9 r
- }& R# J+ c1 G# c2 `% B
5 l. e6 x' H. m6 J* I) p- int ITK_user_main(int argc, char* argv[])2 y. ~, z2 ]( G) V% I
- {' {- ?9 Z2 }& g. z- S
- int- ?4 K9 y8 k R; T7 G: p
- status = 0;
4 {" M! m) t: u; L6 L' j8 B - char) i: z2 {2 ^3 q
- *message;
5 g6 {1 L" N# n% X7 N% {( X - ! E) h# H) e @6 Y7 p
- ITK_initialize_text_services( 0 );
0 z5 s/ x" S" \) `! I- h - status = ITK_auto_login();
% ~; u& J! F7 p2 [: k# S% g - 6 r( a2 h3 B6 U3 M+ v/ @
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
! m6 \# G' \6 A/ i+ a" M: m; G - else
) L0 [4 U- R/ B" `0 g/ N. T/ m, A% k - {+ T2 l3 o8 n7 W D+ r' r, Q
- printf("iMAN login successful.\n");
% R' K4 z5 y% V" }5 y - ITK_set_journalling(TRUE);
! _5 @1 M: g j0 e+ [7 [ - do_it();& ^! i! ]' t+ A! }$ t! L/ S
- }6 m5 I7 T! u4 t; r' D" r8 e7 `
- ITK_exit_module(TRUE);
, n6 c6 v" N% O - return status;2 q; \3 s# {) L7 d
- }
复制代码
( K i/ d- h3 p" D' d. o- z
h& O- }+ {9 ?1 p" ?* C4 t# \2 l- z& Q3 x, V) B1 p
|
|