|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' R0 x9 C. e7 W- {' [Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
1 N$ C8 }: r; e4 x5 I" M1 C9 B6 Y5 |$ b) R. k( `" r
- #include <stdlib.h>
) B9 {; v- ~/ \6 K4 y8 ?6 g3 Z - #include <TC/tc.h>5 k3 p2 q/ d& W; }" c2 D+ ]
- #include <sa/tcfile.h>/ c3 }: g/ p( y2 _7 w
- #include <tccore/workspaceobject.h>6 |* r$ }6 w0 m3 @$ B/ _2 x( t
- #include <ae/ae.h>
. {& I( b- H+ J0 T+ ?( T+ q: T - #include <tccore/item.h>
- Y: d: ?/ a% S/ f6 ^. ]2 Z$ N6 H - 8 l* T4 @6 \3 w. W4 s# A
- #define ITK_CALL(x) { \
/ d* s9 c9 C, a g6 X7 ]9 s - int stat; \
" f. t. n* f. W - char *err_string; \
& M- M; |, }/ g, a0 d- F, ^# t6 v - if( (stat = (x)) != ITK_ok) \
& U6 p$ J, s! U% k+ f - { \& A$ G4 r( h2 ~; P! S
- EMH_get_error_string (NULLTAG, stat, &err_string); \
& B# {5 K4 s8 @' m$ n# } - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
1 X! G5 w, k, N" b - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
- w" `9 Q+ ]7 v4 _ - if(err_string) MEM_free(err_string); \
+ F2 m4 `* x; U2 I0 s - exit (EXIT_FAILURE); \6 x( K" @5 C' l5 y/ V" q) L
- } \. I/ N6 k( ^& G) H
- }8 M4 u: b n) Z. S; j* s
- #define EXIT_FAILURE 1
) z: h; u, B( D) `# Q; {, R9 ~ - ! N$ d( h6 k: q5 [0 g
- static void do_it(void)8 m+ m$ Y( K, o, i+ X/ H: r
- {* O k: D/ v- W
- int; ^6 c. D7 o7 E* R" G
- n_uom,( S6 X4 N- b& U+ k2 }' m
- ii;
$ A p4 V* B9 F) d4 V - char7 {; k3 e& Z1 I7 U+ y
- *name;/ G% m ~$ K; L9 g |' s* o
- tag_t7 C# O( `( K$ {; o, Y
- *uoms,1 q: g% f* P, F9 d* E
- new_uom;
* v8 B1 O0 ]. j; }8 c( E: D -
5 u0 Y0 `5 j: o$ x( k2 A% T - printf("Before UOM was created...\n");
?( H0 \' H" o2 A, t - ITK_CALL(UOM_extent(&n_uom, &uoms));
. A% D+ ~) ?3 _% H/ x - for (ii = 0; ii < n_uom; ii++): d: A" D7 z( X5 c2 z0 G
- {
3 l O1 v$ T& L, y8 Q$ @ - ITK_CALL(AOM_ask_name(uoms[ii], &name));
* E% g5 o3 Q3 U' V- F - printf("\t%s\n", name);" u/ z) _$ r' E j( v1 S- b
- if (name) MEM_free(name);% ~( j/ n+ R/ I* a( v- @9 @% u" @- V- e
- }7 m5 k( ^4 u# E/ y. [
- if (uoms) MEM_free(uoms);
" `' B' q* p$ n4 v6 l - 0 e% y/ k/ D" e1 N1 V: Z
- ITK_CALL(UOM_create("inches", "in", &new_uom));
$ z, e/ I% v9 ~) W( S2 Z/ F - ITK_CALL(AOM_save(new_uom));
) F* E% G& L! k& [! {, r2 v - 4 G5 @; U1 F( m6 v# ~, \1 q
- printf("\nAfter UOM was created...\n"); 7 {4 z5 x9 k' x2 @, `
- ITK_CALL(UOM_extent(&n_uom, &uoms));! s. `- W7 ^. T! w! N; n! {' n) V
- for (ii = 0; ii < n_uom; ii++)
* r- W) m! |" w: }3 ~; J - {2 |; E' B! h: I# I
- ITK_CALL(AOM_ask_name(uoms[ii], &name))/ g4 a' k) W; F8 Y5 Z4 V& U0 H
- printf("\t%s\n", name);
7 i6 z, U4 Z' s l! Y. N - if (name) MEM_free(name);
4 p" W! U: m4 w0 k4 @! Q - }
9 r9 V- }; B* N+ P9 y3 b - if (uoms) MEM_free(uoms);
, Q; z# J" Y$ k4 g - }1 k; d7 a7 \/ J+ y& H
7 r1 `( k- i( x4 O) w$ _7 x# g- int ITK_user_main(int argc, char* argv[])
) E. C) x; B" s9 X9 H - {5 L, H) D; {5 G+ P1 _
- int
. b6 S! l/ q) l! }4 {# d - status = 0;
. ~0 O1 g8 F% d5 P8 l8 J6 J - char4 a/ L1 `5 X a8 n q4 T) Q
- *message;
" q2 ?( H- H$ p+ O0 Q: u$ t9 ]/ j -
3 V4 n4 `- i' ]( o; K! D - ITK_initialize_text_services( 0 );: \8 l/ a4 L& f# u i
- status = ITK_auto_login();1 D) X$ O$ l% b/ u$ A8 |
-
! F" s+ l( G2 U% v1 e - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
9 S% ~ H! W# p - else
" s, u& ]! h# g# w8 s1 V$ H - {+ ~2 Y! t: ^, U; V
- printf("iMAN login successful.\n");
8 I- ?. ^( n' e - ITK_set_journalling(TRUE);
$ e# w: ~2 Y+ b u4 l - do_it();
/ D. `5 S9 `' } - }6 F7 U% X+ q: k+ g" g+ P
- ITK_exit_module(TRUE);
4 f5 b9 U: k8 w: ? - return status;& `' b8 k7 e6 m# K- ~
- }
复制代码 7 t* [% Q: \3 A% F2 H. ^8 T
% R2 D) x/ r- b" g; Q
4 F* Y: C' H' ]- T% r1 j |
|