|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 |# c: G9 O# X; D2 b3 N% M- sTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
- R% b! b! F! i
1 l- ?0 `3 G3 E/ |5 r) ]' @2 B- #include <stdlib.h>
9 D, y/ S9 G! a5 v6 y - #include <TC/tc.h>
7 Q' u8 w: [; m2 ? - #include <sa/tcfile.h>
5 N# m: H, ^# V" W6 a - #include <tccore/workspaceobject.h>
* I. a2 b! M4 U% E# | - #include <ae/ae.h>4 F; q5 K7 H$ A' [0 J8 x
- #include <tccore/item.h>
) w" p4 u U1 x - ( n6 W) h" k$ A# \& X: T) h* z3 c4 ?
- #define ITK_CALL(x) { \" @. V8 c5 q2 ?# x
- int stat; \/ j) c7 B; L. j/ r+ Q
- char *err_string; \4 \7 G: _! U( I: w! G: {
- if( (stat = (x)) != ITK_ok) \/ M2 ?7 i% o m I
- { \
% [9 G! a5 T: j5 J" i0 t - EMH_get_error_string (NULLTAG, stat, &err_string); \
$ e4 F: `7 M2 e6 P l _2 x) d - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \& q0 b& Q& v9 q; u, J9 S9 |
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
# o; D# Y# m6 ?, \; V" I - if(err_string) MEM_free(err_string); \
8 u0 j/ G! C# C: _ - exit (EXIT_FAILURE); \% F2 T& T; m H/ f/ p
- } \5 k3 [9 K) e- l+ I' p
- }- }) @; r0 ^- f2 J0 P
- #define EXIT_FAILURE 1
% ]. A1 `* b) i3 V -
! q) F3 o$ @! d* S" J9 P - static void do_it(void); o; F6 S6 z4 D, b- C# R6 q& r
- {4 `. h4 n! I0 y$ |: F7 d. G, Z/ K0 Z8 Z
- int, K, y( |7 }; |+ G5 c& g
- n_uom,
* N9 I) [" F5 k" e# }: y' N( } - ii;# u* ]5 v- t5 S' A3 s, ^. a- L
- char
+ Y" o/ E( V& e0 g, h, b - *name;
- J1 R% E7 D4 F! r6 M' }& j( E - tag_t/ z! d. `& ~% m/ t. a i* O& O
- *uoms,* w& b9 S! m' T7 T' g; P
- new_uom;
8 V- m8 K/ x3 V - / f( \) i' S# g9 A! V
- printf("Before UOM was created...\n");
P* N+ ?5 ~4 d5 S - ITK_CALL(UOM_extent(&n_uom, &uoms));9 |% S+ Z! f3 u7 l3 j
- for (ii = 0; ii < n_uom; ii++)2 c% i. Q0 Z" o0 `3 k) T
- {/ u+ I( ?, f+ g7 n; Z
- ITK_CALL(AOM_ask_name(uoms[ii], &name));
& L: k& A$ U9 S& u5 P - printf("\t%s\n", name);, {) N \7 W; y1 Y+ t) b; ?
- if (name) MEM_free(name);
( ~4 [) `2 L1 U4 V3 v5 J* \( R/ _ - }
. {8 I* |# U! i4 q/ S. I1 b - if (uoms) MEM_free(uoms);6 z5 ]* m+ w" [% d6 j
- ! i( f) }- u, u3 T2 w
- ITK_CALL(UOM_create("inches", "in", &new_uom));/ \/ r3 W+ e, `
- ITK_CALL(AOM_save(new_uom));& ? i8 N2 p$ d' ?6 Y: p
-
6 K0 @1 k5 X! q' X! S- }$ b# @) d - printf("\nAfter UOM was created...\n");
8 T! L( I" F/ l& i - ITK_CALL(UOM_extent(&n_uom, &uoms));
9 a, f0 ^) }! N' I6 S+ |& Y8 c. k7 Z - for (ii = 0; ii < n_uom; ii++)
; u+ D7 u3 U, k3 y& |9 O4 | - {
& |$ b+ t$ `5 R0 U - ITK_CALL(AOM_ask_name(uoms[ii], &name))$ {8 \: L( ?7 l! n. ]# l" d
- printf("\t%s\n", name);6 |4 m+ n3 ?9 r5 o! R, R" d
- if (name) MEM_free(name);
- b9 [+ @2 c8 } - }
# y9 f- S8 T" W$ \" u; w - if (uoms) MEM_free(uoms);# n3 m; l, Z- O9 i* H
- }
+ ]- h! f1 p: l - 8 W% _6 m9 ?6 Y. }2 L1 S
- int ITK_user_main(int argc, char* argv[])
3 d( W5 s$ @' z5 u/ p$ R4 b; I, z% V2 } - {
" h! X/ q" \" V- z* p6 b0 y - int6 A! O& I2 c! h4 \2 l1 g
- status = 0;
4 y2 E* w: w( X0 T - char. H" a7 m) I. y( C
- *message;
! G) J2 s4 T' c - ; d+ b q% i# a7 N: d, m
- ITK_initialize_text_services( 0 );
8 H1 R2 P$ E+ J1 _! |3 x/ u. P - status = ITK_auto_login();
6 d8 }6 i1 U2 O. j" A+ _ - 1 z; c1 ?' S2 d* o6 \5 U& \6 \+ S
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");$ m9 _! x: S# E' w
- else7 @1 g9 N- c2 |7 N k0 k
- {
6 F2 e( _6 k8 ?6 U - printf("iMAN login successful.\n");
$ U8 |4 v+ k/ W1 v; Y - ITK_set_journalling(TRUE);3 D5 H8 |! I" W8 z5 h" U
- do_it();8 N0 k: x& [$ T
- }& S# l3 C7 B: C$ k
- ITK_exit_module(TRUE);
1 v, F* j% L9 \$ u% \ - return status;+ z9 `1 Z O! K7 A/ v+ O6 `. M
- }
复制代码
/ b, `3 Y) l7 p4 _# T8 _6 I( [' h+ F3 M- `
, P! `+ J9 T# F( t0 t |
|