|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) ~# ]- i# U" d+ A; Y0 ^
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures8 s. M* h' U) N1 Z$ l$ a" l, U4 q
3 m2 o0 }( |/ y `- f9 X( C- #include <stdlib.h>" f5 }4 T G8 `: Z& o* Y, O( i+ G
- #include <TC/tc.h>
; k2 i8 t; ?* t5 G - #include <sa/tcfile.h>/ L' j& p6 T7 r3 i* r8 u( Q: c5 D
- #include <tccore/workspaceobject.h>8 b- l. v/ t4 B8 G$ ~0 I' q( l
- #include <ae/ae.h>3 _% J ]9 P0 m6 g
- #include <tccore/item.h> y" f) w$ P1 |0 f* w! n
- X' C( a* d5 _ Q% d) m
- #define ITK_CALL(x) { \4 T- F8 c% d/ O- M* O
- int stat; \" T* |$ d: w( ^
- char *err_string; \6 b5 @" Y g9 G& S8 M
- if( (stat = (x)) != ITK_ok) \$ A$ D% B8 \- d7 u
- { \( ~4 U; `/ V$ K- K Z7 J
- EMH_get_error_string (NULLTAG, stat, &err_string); \! x6 O F8 m3 o) D% D" p. ]& G9 ]
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
$ h) ~, D. c n, ?: n" U - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
1 [0 A3 {5 l! E& A+ f1 j9 t - if(err_string) MEM_free(err_string); \
# S$ Z5 T+ {- {! _- w# P* l - exit (EXIT_FAILURE); \( I' o- y \- a: t8 k4 l3 o
- } \3 I( O; x9 C% f' H
- }- [* U/ z" b. B4 Z
- #define EXIT_FAILURE 1 / _% G9 \; i% k) b
-
& f, V) ?! C9 N1 N! v9 `) y - static void do_it(void), x! j$ G$ e: K( V* s
- {) S5 i7 L( w [; F. G# E
- int1 e! U- I# v: B8 f4 a
- n_uom, f5 m7 H0 ^# B. x
- ii;% X* v" K0 [1 J' A1 l9 w' _
- char9 g7 h0 g9 M- I! |# r( F5 m
- *name;7 [1 ~6 w h2 |, U. E. S
- tag_t
+ z. A; u1 u( e0 q7 f - *uoms,
9 D( Z0 T& M# J! o - new_uom;2 X$ R' R% G; _0 i& n
-
! n) X, w/ R4 r0 Y/ f7 Q/ J - printf("Before UOM was created...\n"); * s/ M" C% ~ D. y
- ITK_CALL(UOM_extent(&n_uom, &uoms));
& O/ L0 T4 j% U0 h& l7 R) C. c - for (ii = 0; ii < n_uom; ii++)
) R$ i7 Q: ?' ` - {
4 z/ V, ]( ]5 g - ITK_CALL(AOM_ask_name(uoms[ii], &name));; M2 t% R2 ~# K) g, d' R
- printf("\t%s\n", name);) v- _* `" g2 n5 k& g
- if (name) MEM_free(name);! u* ], V$ h' C- G- @* d& g( o6 ^- O
- }
; z' H# d5 c3 h w0 l - if (uoms) MEM_free(uoms);1 a a3 d0 ^+ U8 C0 C7 K2 r
- 3 n6 x* T1 K% M9 `
- ITK_CALL(UOM_create("inches", "in", &new_uom));+ |; M5 J' v0 L* `* L
- ITK_CALL(AOM_save(new_uom));' I. k) ^7 C$ y# `: U+ T
-
' R& m2 {- y5 p1 m( e - printf("\nAfter UOM was created...\n");
; }! M. X* f0 I" \; B - ITK_CALL(UOM_extent(&n_uom, &uoms));1 ]5 C8 Y6 _5 G& C: M" F
- for (ii = 0; ii < n_uom; ii++)
1 o2 c) P: V1 S9 O - {
! ^/ m# z. Z; e2 H; p - ITK_CALL(AOM_ask_name(uoms[ii], &name))1 F3 ~: H1 f7 o4 `9 a! p" d
- printf("\t%s\n", name);) Z, V2 d' B* N2 t# `' f# }
- if (name) MEM_free(name);
1 t4 C9 z) ^, Q: e' H& m - }( [( F* d4 m/ j* S4 H" O7 z
- if (uoms) MEM_free(uoms);
' ?4 c; g2 T& B) x5 g - }' l! T; ~, R2 s c. V: Z
" Y; x! s& J$ Q9 }$ g- int ITK_user_main(int argc, char* argv[])0 I% c# m# r8 a! U; {" v& ~5 l1 e8 M
- {( C: X' a2 V; q' r
- int; f- f- ~; \- g6 h. |
- status = 0; # w5 s& I* G4 Q. ]
- char
0 b- ?, |6 }+ y2 T - *message;* M/ ]0 Y5 N) \1 x( s2 x k
- 4 ?6 V" k" j. i# A) @4 |! T; l
- ITK_initialize_text_services( 0 );
* i$ I# ]$ Q6 g - status = ITK_auto_login();
( S. t3 k9 j6 D4 D1 d5 R -
4 g' l; Z- W: ~ - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");8 z1 r7 j3 ?. Z9 p
- else
8 x, n2 Q- ~4 P. r4 [+ U1 h - {6 |4 D0 L- }+ V/ v/ l& ~; T( a
- printf("iMAN login successful.\n");- ~; V$ T; J9 l- c) C7 H. S
- ITK_set_journalling(TRUE);6 H- @ Y, p' ]( y7 X
- do_it();; [! z, }* ~7 r5 e
- }
) @0 P. H( j- _6 l% E1 A - ITK_exit_module(TRUE);2 e, M* C9 b+ u* {
- return status;/ y$ g9 Z. { V. l
- }
复制代码 3 I4 z6 Q9 }1 G5 ]/ _% u9 Z
% h: F1 J9 B/ A6 l; k4 t
+ q; F# J" s# M8 V |
|