|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
9 d( p# L4 c$ R) ~4 [
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures$ N6 @- I" x$ x8 x$ k* U3 R
( z, ]7 s$ C+ ~: m; u1 f; r
- #include <stdlib.h># [4 U& v3 }5 d0 X
- #include <TC/tc.h>7 l1 e3 k* o( n) n6 p$ P7 {
- #include <sa/tcfile.h>
; s$ M/ G+ V! `' j( `5 g; P" U3 ]& L4 M - #include <tccore/workspaceobject.h>
# X. g _3 j( c - #include <ae/ae.h>( d0 `- q* D, i7 ]1 m' G# V
- #include <tccore/item.h>
/ v. y$ ~# ?8 y4 z
, a# K7 O& y! ^/ ~- #define ITK_CALL(x) { \
& c) k: B- J& x3 L& A& j - int stat; \) h; e; p* D$ n0 ^' v* |! A: d
- char *err_string; \8 d2 N. ]1 K; D& r+ ]# q. P
- if( (stat = (x)) != ITK_ok) \
4 J7 N `& ?/ i - { \7 f5 n/ H) F3 R. z
- EMH_get_error_string (NULLTAG, stat, &err_string); \
3 w1 \5 J0 T! \2 C6 r" K; m - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
) I* B$ U" n6 Z - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
9 l& T1 n) r. v% e; r - if(err_string) MEM_free(err_string); \; P! K: s) g7 G, z6 `4 y. `. i
- exit (EXIT_FAILURE); \6 _% N5 ] d6 s) K; f8 ^
- } \
9 b1 x- h! ]8 x5 r - }
! c; t9 r7 v! m+ F - #define EXIT_FAILURE 1 ( X2 I, C) A* y' \4 V4 f
- ! O# f+ g9 p: d- Y y
- static void do_it(void)
; J3 {2 F [. J- G P - {
# n! n& K, V: l4 [; H. Q/ V& l% T, \ - int5 ]1 _- @' u; S0 ?% K2 y& d" `) W! [
- n_uom,) S9 e% O0 {. N6 n
- ii;
) t5 A6 N, ]4 c( n) Q - char9 t% h# M- @: P _1 {4 a; n# ?5 n& [; I
- *name;
. b' y1 n6 C0 M% J. a - tag_t
/ E8 C# H$ u# o8 |! w* | - *uoms,! Y/ C$ f0 H) M4 _4 _9 T; p7 A
- new_uom;# }4 D9 a6 L& h/ @1 Z
-
& g1 z+ i& K% r3 o - printf("Before UOM was created...\n");
* \* L) B7 @$ ]* Q# h, j$ [2 C - ITK_CALL(UOM_extent(&n_uom, &uoms));
% H7 G0 {$ x8 K) ` - for (ii = 0; ii < n_uom; ii++)
5 J$ h4 _" S! L% B - {& K/ y: a( P- H; \4 ^
- ITK_CALL(AOM_ask_name(uoms[ii], &name));
& V4 a0 j8 n) l& d4 X - printf("\t%s\n", name);$ `6 |! t6 m/ G$ @ b
- if (name) MEM_free(name);! w: b" l6 R! A5 q' g
- }
, z0 c4 y# ^9 E( [( j - if (uoms) MEM_free(uoms);
7 ~) E" ?9 \- G$ }+ w -
! E( E k+ C+ N: a. g - ITK_CALL(UOM_create("inches", "in", &new_uom));
2 q; O$ M% x8 |$ [; ~0 a3 p - ITK_CALL(AOM_save(new_uom));
0 Q; U# Z0 m2 H% f# ^ ` - 6 [; y3 f) Q! B9 z
- printf("\nAfter UOM was created...\n"); : w) I8 E% o( {: D. m z
- ITK_CALL(UOM_extent(&n_uom, &uoms));! f7 S' H( @! C! O* M1 p
- for (ii = 0; ii < n_uom; ii++)3 E& {/ z+ p( O/ m1 w9 C( \" ]
- {
1 C: X" I) M+ x6 }: T& c - ITK_CALL(AOM_ask_name(uoms[ii], &name))& f! Q1 Z6 J3 C2 W: S( y" j
- printf("\t%s\n", name);$ v9 L4 Y/ ~% f7 I/ f5 o2 c
- if (name) MEM_free(name);; x' l0 h! r7 y! e
- }7 T. O- C" K' B$ x' }4 n5 o
- if (uoms) MEM_free(uoms);
" k5 {: x& v7 ~! R - }
8 l# I; |# F# c& L6 b% e/ ]+ E9 q
3 V# r/ s3 V, G( C( N8 }- int ITK_user_main(int argc, char* argv[])9 G" \7 g/ h# k& w8 c4 Q0 ]1 G
- {4 R9 p7 F( o3 s* i% R
- int- D) g4 |9 n6 B- I# p
- status = 0; - n8 y* W0 ^+ f7 `# W& q& t0 ~
- char X" Z; }# I) _/ P, d* O" |$ w m
- *message;- G% i- Z+ n+ x0 C. G; J5 g3 P6 b
- 0 Y+ g! x* N; ?) T/ s R
- ITK_initialize_text_services( 0 );4 A Y* N7 \( B+ Y, w/ ^# ]! V/ @
- status = ITK_auto_login();0 u* |2 R6 ]7 T( N
-
; ~* j* k% n: L! _: I% ~ v - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
" ~, r+ }+ @4 k) w+ D+ J - else: k; L8 T: [$ H$ U' @& w" |! ]- R
- {/ k6 U5 J/ ~% e* R* C: b- e/ L
- printf("iMAN login successful.\n");$ z5 @2 r2 S/ M& }
- ITK_set_journalling(TRUE);
* Y6 A) j" J* o3 E1 F7 b - do_it();% B) d& p3 }) T% |
- }- P, n! X& g1 W$ w$ H. @
- ITK_exit_module(TRUE);
+ K! N- |% D c0 ^% d, C+ W4 K9 V - return status;
( R" P3 l; a% ]( X - }
复制代码 5 a* _1 g8 u- e, K
8 ?7 R- M$ R* e0 h
5 w" V; U+ j, N& k" `$ i, G3 Y |
|