|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
1 h6 |0 K$ l8 x7 n& ATeamcenter ITK二次开发源码分享:创建测量单位unit of measures
9 S( `) Q6 b, N( h9 t4 p: a8 e$ y% V L( L; R& N7 N; }
- #include <stdlib.h>
% O$ [- M* R8 B4 U/ _3 Z! g3 L - #include <TC/tc.h>, Z3 t6 v4 W+ B7 K+ k
- #include <sa/tcfile.h>
8 F+ e/ [3 g0 _ e% i* e - #include <tccore/workspaceobject.h>
' |& s1 ?2 }( y, f0 ? - #include <ae/ae.h>/ a' z5 v* ?2 U
- #include <tccore/item.h>, Q4 G5 c4 a* B5 l9 J
- & ]8 q: X4 x a- E. i8 f
- #define ITK_CALL(x) { \
- q6 h+ v! q, Z. h( ~5 h - int stat; \
$ Z1 z' h [) G7 N; X) i - char *err_string; \
* r3 d" J+ P Y2 y - if( (stat = (x)) != ITK_ok) \9 B0 N0 O; t j) d
- { \8 I' t1 V# b& ]: R
- EMH_get_error_string (NULLTAG, stat, &err_string); \! P, T) F* e9 T5 d+ r h
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \/ B, k; s: t6 }
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
: {. \2 A: m9 ^: q" w. E: y( N - if(err_string) MEM_free(err_string); \
1 h# @9 J, [( Y, d - exit (EXIT_FAILURE); \
* n+ ?$ r& F P - } \( J4 u3 T( {+ n* G6 m
- }
Z4 I' q9 m! l# G( Q0 z - #define EXIT_FAILURE 1
' Q4 b& ^$ ]; }, |4 ? - : S2 f$ L) j9 E, |9 m* |
- static void do_it(void)- Z5 Z5 H& w! R& |( W* A
- {
3 n1 t6 T" o' J& F& Q - int
% g+ a1 ?8 C- R* j- g6 L - n_uom,
$ G- E: D( \- M4 T# Y9 y3 ~ - ii;
9 Z7 `9 w4 [! Z; f0 [2 M- l; x - char( y, w3 \ q0 u* ^7 Z, Z
- *name;" M# s" t4 C% f6 M
- tag_t
- M1 v; r9 ^5 W, q - *uoms,& [/ H9 Y, ^. ~+ h
- new_uom;- f- L; u' a2 s3 s% y
- + P, z2 G) A+ C3 H( k( O
- printf("Before UOM was created...\n");
) T7 i3 G8 M( N$ P; g* m) ]! U - ITK_CALL(UOM_extent(&n_uom, &uoms));
- T6 I4 b, J+ e2 e - for (ii = 0; ii < n_uom; ii++)2 w6 w0 I9 X. n, w7 `
- {
8 l. w6 E: W3 U+ r$ |' x/ t8 b7 o - ITK_CALL(AOM_ask_name(uoms[ii], &name));: z0 y( b+ r3 f) h
- printf("\t%s\n", name);) s1 v$ ]. e8 Y4 Z
- if (name) MEM_free(name);. L8 b% m% i+ U0 G$ T: _! ~
- }) {" b. T! `5 ?; z/ `
- if (uoms) MEM_free(uoms);3 H' }0 y' V* M3 j( n1 d
-
+ r0 @: `) Y% s/ @( U& p - ITK_CALL(UOM_create("inches", "in", &new_uom));
& B1 e# k, [% w K" B - ITK_CALL(AOM_save(new_uom));
9 h! \/ i8 e9 w; _ - ! z. Y6 B2 M* ]' T# m
- printf("\nAfter UOM was created...\n"); ) \ I' }6 B4 O( ~4 b
- ITK_CALL(UOM_extent(&n_uom, &uoms));
K4 |2 C9 ^# T4 k, K - for (ii = 0; ii < n_uom; ii++)
2 A9 |4 }* a# i - {: }7 U& Z5 k0 x$ ]- `8 O$ m
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
* @. {4 J* I R; X - printf("\t%s\n", name);
5 g9 L; P4 u1 J - if (name) MEM_free(name);- H' ]# w2 e `" V! F
- }9 K# z' I% e0 @ U
- if (uoms) MEM_free(uoms);: Q& @6 M" c; V" f
- }& L I" H P d" o1 y5 J
5 {0 p6 ?0 y$ [- int ITK_user_main(int argc, char* argv[])
8 R5 q) d8 N7 T) J2 l' O6 i - {' q! N4 t( ^0 N8 G/ A0 q
- int1 e, k' o8 K L
- status = 0; 1 N; T) ?5 Q5 K- a" ?+ ^
- char
) m8 \# A- ~1 \) z- g7 A+ D3 ?/ T - *message;9 r! i1 a0 s6 t+ F3 T
- ! v. _+ |7 _% ^( m
- ITK_initialize_text_services( 0 );5 B! K, f2 x& x
- status = ITK_auto_login();
$ O6 M" g3 {/ p - , s; O6 k- n& v5 d! r4 i
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
! |$ `5 b" g6 l+ e; {3 s3 H' C& X - else9 P# K, P. k! }/ p" \" g2 ~
- {8 u* X( i: r1 I+ W `* s; S1 z
- printf("iMAN login successful.\n");
H: i1 @7 h/ y# e/ V- ` - ITK_set_journalling(TRUE);7 P, F( I# S8 c+ t5 l! C
- do_it();
! g4 s1 q3 S# g) _! u; k& L - }
/ S% @5 f' t1 i9 i8 R/ J5 A; \ - ITK_exit_module(TRUE);
. D0 X/ `( k) P$ l) U$ I% X - return status;
0 C1 r6 Q4 X. L - }
复制代码 7 Q9 ? ^8 V3 X) T2 \" M
$ p; \' k& u% ]4 ?
2 J2 u" W7 l. y5 n3 X+ F6 I z# g |
|