|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
3 L6 z. Y' z. i/ G
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures% @' E+ ]/ L6 z7 n; i) J- n+ [( ~
' N: }9 |& Y: H2 T+ Q
- #include <stdlib.h>
& o1 v6 }4 t5 F) H5 J( r. W a - #include <TC/tc.h>
% k( l! Q% Q" Q9 g" Z4 A3 v& h/ C, m - #include <sa/tcfile.h># j4 L/ s7 c; f, T4 {, V! y# d3 d
- #include <tccore/workspaceobject.h>4 y- _8 R y9 C* A/ M- Z& ]
- #include <ae/ae.h>
6 l4 U: V& l5 p p' a& K$ ^ - #include <tccore/item.h>0 _% c, x3 ~8 R7 x( V/ a
) f: E/ u N1 x# d- A7 L- #define ITK_CALL(x) { \- d; a& E; t* M7 F
- int stat; \& S5 u% f$ v, [ R1 h* X
- char *err_string; \: T0 O9 S8 |# [$ j$ k* S
- if( (stat = (x)) != ITK_ok) \
6 ~7 u/ k/ D0 Z2 L - { \
3 Z) }. H6 R9 b' O: M! w1 @2 e. p; I; o - EMH_get_error_string (NULLTAG, stat, &err_string); \& i$ X' G- f. y4 B) I$ v
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
5 E4 w! h# T0 F7 d/ K - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
% z& \; Q ]4 q" l Y - if(err_string) MEM_free(err_string); \6 u) c# _1 O/ X, r' I/ V
- exit (EXIT_FAILURE); \
: S, b! t! f! S6 ]) z* I+ X1 ` - } \
: ~1 F; ?5 E& r" [9 W# c! b4 [9 g - }
( x/ W% ?# `! S+ G0 } N0 y - #define EXIT_FAILURE 1
5 G8 F( W1 j3 L& d) m8 F6 U Q -
& o, s3 Z. s" u; e+ ~ - static void do_it(void)4 B/ U/ @# y8 N+ Y
- {) a0 Q& c$ x) T
- int4 E& _; L( J: X% [
- n_uom,+ Z) x+ q# P+ U$ G' z
- ii;
( P5 n8 _0 E& H2 r+ E* g - char$ M# K9 G8 M: G" W9 b8 J S9 T
- *name;3 \6 p1 s- B: A9 d( w, ?
- tag_t
, j9 U, x) R0 b" {2 ~) _! p4 h. Y) C - *uoms,7 C# [4 k/ l9 G/ K7 H0 x
- new_uom;
4 f. S k! x# g7 q: ^1 Y0 f! l -
5 g, u- V6 G- ~8 s( f. X - printf("Before UOM was created...\n"); ) W! R& h/ x) ]8 ]4 f5 G8 I+ {
- ITK_CALL(UOM_extent(&n_uom, &uoms));
K: {- Z# F9 K O; u$ t! | - for (ii = 0; ii < n_uom; ii++)9 P7 s% K& S* z0 u1 O
- {
2 [. h+ g5 `- [; e% R - ITK_CALL(AOM_ask_name(uoms[ii], &name));' }' u' D! O# p8 n' _! n: E* F+ J
- printf("\t%s\n", name);' U5 e' b; V: f5 q! u1 v1 ]2 F
- if (name) MEM_free(name);
: i4 {6 q! @4 [; n - }
' _4 U( H/ J: R# J - if (uoms) MEM_free(uoms);
v* `' r& [; y& |: s; R0 w9 @& X -
# z7 s; V# b g9 {" U B& O& b - ITK_CALL(UOM_create("inches", "in", &new_uom));
7 M( o4 F8 ?5 d# k& S, X5 Q5 p- C6 T - ITK_CALL(AOM_save(new_uom));: k+ z/ v& P$ S2 m- C' f6 {
- 5 S7 G5 U; i [ M- N9 |) i2 m
- printf("\nAfter UOM was created...\n"); % |3 g+ N9 d2 M! K5 w; ?
- ITK_CALL(UOM_extent(&n_uom, &uoms));
$ A3 U2 A9 Q# R; z9 t$ z - for (ii = 0; ii < n_uom; ii++)! X6 Y( E. h' ^5 e' K: y0 T7 a& ?
- {; Z2 f: V) F+ N$ ~/ `7 [9 _& |
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
6 Q) F2 M6 S( g$ G3 A" B$ v' C - printf("\t%s\n", name);8 M; A4 S. a7 a7 k# o/ A C
- if (name) MEM_free(name);3 ], H% ?( x& S! B) n$ u: k5 b% X
- } o7 y! B" i& ?" U6 Z2 r
- if (uoms) MEM_free(uoms);& f7 p3 R' X$ n7 C
- }
: i: X0 |4 T" A( b
' n& S: P( M0 t3 j& H- int ITK_user_main(int argc, char* argv[])& z5 `8 ^5 A" k0 H! \0 [. J
- {
0 }: y- k/ p8 Z) o, h2 k0 p - int
w* e" _+ q l! `6 z% G/ m5 `- w( } - status = 0;
1 G, e7 \" `' R# n" i3 C - char( b4 w: E! ?" m, Q6 S0 K& m
- *message;6 |% P5 X, g! C* H
-
0 R& l( u8 K, ^8 _ - ITK_initialize_text_services( 0 );% k2 y. f1 }/ W0 [* |1 H* M: h
- status = ITK_auto_login();
: l( c" z8 S% a( j( f- d. C" x0 Q5 O -
: S- E/ x6 {+ V& H - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
) J5 ?! V% |& d+ d+ \3 L. K - else( F* l! e; I3 Y. i, Z- f
- {
. Q# L5 C, q$ m) R - printf("iMAN login successful.\n");9 N6 }$ T' T8 n1 A; @
- ITK_set_journalling(TRUE);
# U9 X: p7 R8 f' X5 { c7 b+ ? - do_it();2 I1 |" z9 O5 d, V. p' M- }# ]
- }
& ~2 V7 q6 ?; `3 n, N8 n7 f - ITK_exit_module(TRUE);
0 _( {, M. y* K) `! a; h- \: z - return status;
' G# h, l* V& I' D9 B - }
复制代码
- c5 ^& D$ f' u }- C2 |# a
' j% h U% Z$ u# K
# }* ^2 K* s% U& w1 T |
|