|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: y( E: o; B/ K; S4 F+ Y
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures+ m. \. o3 g. ?/ {( ~) D
) z7 @! z1 p+ s9 }" V! {8 _* b- #include <stdlib.h>
& t; W9 K! \5 d s% M/ i - #include <TC/tc.h>0 p; ^. Z2 `2 N; W
- #include <sa/tcfile.h>& e, Q2 N, Z4 u% ^" k
- #include <tccore/workspaceobject.h>
, g! Q% d$ D4 v4 C7 p' | - #include <ae/ae.h>
5 i3 N" c7 F2 m- E8 F1 S) Y+ O: ? - #include <tccore/item.h>& n& x1 c9 ~& Z% ~8 J
- 2 g0 \6 G* d# O* G& M+ {
- #define ITK_CALL(x) { \
0 A; w7 [% ]" D- t# ]5 L% b - int stat; \
: B; X8 C# \( ^, F" r - char *err_string; \
3 Z% j$ |3 l7 A( {; l - if( (stat = (x)) != ITK_ok) \
. C& G0 I, ~+ D - { \
2 M7 g2 P0 Y& q/ u" t- z9 \) h - EMH_get_error_string (NULLTAG, stat, &err_string); \
8 _: z, {, _( h& _# v - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \% i8 j! L; x7 x3 k( ]
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
6 }% j% r( ]1 s. m4 e - if(err_string) MEM_free(err_string); \6 p# f. o( W6 f. ]
- exit (EXIT_FAILURE); \
) r3 ~, Z4 n1 h1 B) f# U - } \
; x8 j5 {$ G6 v! R - }
2 ~' [. Y$ z: A2 l% t9 W - #define EXIT_FAILURE 1 ; k* }) p/ Q# k# f ~' Z5 k+ b, M
- ( i4 N( v3 @4 Q9 f" {
- static void do_it(void)6 G/ T% U4 k' s/ d: B# L
- {9 K' ` }( s, A( J! }
- int' n+ Y" r' K% x: @8 c' C
- n_uom,
3 P K3 W+ Z+ ?$ H; w! {7 x! L - ii;- s6 X4 Z4 M9 E- R0 ^; ~& E# v
- char) v; H( Q; c% q
- *name;
$ n) z7 e" m( z2 k9 m3 G - tag_t
' ] o7 R6 Y; z, q - *uoms,
, Y6 f$ w) w/ Y8 I; U. _9 d1 I! o0 Y' { - new_uom;- y3 d# A: b& a4 B' b
-
; w$ w u7 C" g6 g a2 \( L. M - printf("Before UOM was created...\n"); 7 I$ I; ?0 u/ c! X; V
- ITK_CALL(UOM_extent(&n_uom, &uoms));) T0 t& N. V/ E# P& W
- for (ii = 0; ii < n_uom; ii++) O3 `+ s( _/ w! _; I9 Q6 ~4 n: `
- {/ i, ~4 ~! }. O
- ITK_CALL(AOM_ask_name(uoms[ii], &name));
$ E5 ?4 a1 ?, F# {- l# \- Z - printf("\t%s\n", name);
# [1 o$ ^7 n! C! G& K# Y& Z# | - if (name) MEM_free(name);) s7 K( x0 Z5 ?
- }1 U( h1 X. T2 s
- if (uoms) MEM_free(uoms);
1 o& v' ]" D; t7 H! @ a+ ` - / ^+ ]' }; ]6 W% U; D% c% g8 }
- ITK_CALL(UOM_create("inches", "in", &new_uom));! K; ?! C, f U
- ITK_CALL(AOM_save(new_uom));
$ O3 O. h5 p3 U8 ?8 g; m -
8 F6 v5 o; E) D- F0 {& d1 ~: j - printf("\nAfter UOM was created...\n"); & [1 n& [+ c+ p. J
- ITK_CALL(UOM_extent(&n_uom, &uoms));! v2 n3 R: P! Y& C3 P% D7 a6 A
- for (ii = 0; ii < n_uom; ii++)
3 r# c6 ] T0 `, D3 c, V' s - {! }' S9 L3 `" K
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
- k. n f: d/ I) h! i3 ] - printf("\t%s\n", name);' Q: p' ?$ ^% N3 a( M# L! p V- U
- if (name) MEM_free(name);, J% Z; X3 n& n! B* f) I
- }
8 L0 J0 R( d8 W7 k - if (uoms) MEM_free(uoms);
% l" ^ q5 u$ U' B - }" E8 b* S) \! M# i
- + P/ M; G- o7 J. k- a5 H, S
- int ITK_user_main(int argc, char* argv[]); r* K }4 t$ H. S: C
- {- k- M6 r, ~9 g* F
- int7 h* Q+ ^5 }# O& `7 r" G+ E
- status = 0;
% R2 L( x3 m7 A/ ]8 [% m J" a1 J - char
! a+ r* f; }5 t - *message;
" E+ W5 p$ _% r5 R2 B8 C; [" I - 7 J6 p' M2 Y6 _. d
- ITK_initialize_text_services( 0 );
% N9 v! @" f, X. ` - status = ITK_auto_login();. g y+ G! O# ]9 ^% V% {: C
- ' H4 R, c3 G5 _8 C
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");" J& T: d1 ?- b M1 C
- else
; a9 Z; p. w# W3 \' x - {
; M0 k1 V" W( t2 `% B& g! B - printf("iMAN login successful.\n");
# e3 ^7 ^; B8 O' ^# k# g. J/ n7 J0 t - ITK_set_journalling(TRUE);8 r* B" p2 e* p+ Q' w" U
- do_it();
0 [2 z7 O9 @& t- ` - }. @. S9 k) h8 R6 y H( ^( c( h2 ]
- ITK_exit_module(TRUE);
2 X9 H4 l5 K# k& D h0 X7 c - return status;6 R1 O3 q- a, v8 N: P1 p; f- t
- }
复制代码
: Y9 E" m$ e) w& J) y2 J
' c6 O" U1 O. v( H2 l8 r a! }
9 B0 u% x- x0 C |
|