|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
Q5 W2 e8 W6 Q+ a8 `: M$ H9 T- \Teamcenter ITK二次开发源码分享:创建测量单位unit of measures, F( }0 U1 ^" T* l# x
' x' Z) H$ V2 ~* k8 g! @' w7 Q- #include <stdlib.h>! r: E* a& S: h2 i8 v, ?7 |
- #include <TC/tc.h>* d( b9 E% W& L& Q
- #include <sa/tcfile.h>
3 k! l. b2 h) R - #include <tccore/workspaceobject.h>
% W% J4 l+ a- t# B1 B; d; g - #include <ae/ae.h>- a- f A1 @& T3 p
- #include <tccore/item.h>
. }2 X% O, y4 F! M! ?" Q
0 Z8 k* v* g- j+ X1 v$ Z- #define ITK_CALL(x) { \. c+ n1 S) _9 z# x1 [& v0 z
- int stat; \
4 F# l1 @: Y4 `2 t( c# n - char *err_string; \2 s# B) N$ M& U% M. I
- if( (stat = (x)) != ITK_ok) \; x; X- B `# J+ H+ Y _) V
- { \
+ c6 [" O3 r9 @- C - EMH_get_error_string (NULLTAG, stat, &err_string); \
P3 R6 y8 T; B( L) T% e - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ c! f* j0 S i. x% f. B
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
: P# |) l, T5 ~% c/ l, K, P2 n - if(err_string) MEM_free(err_string); \
4 u( ~' x3 r" J$ c/ ~* o/ Y - exit (EXIT_FAILURE); \3 J5 _9 L( ~) T
- } \
2 b8 `: C6 m! }* Q/ ?! N1 m3 X8 u - }6 P; ]+ |6 J3 W: q, d; [5 v
- #define EXIT_FAILURE 1 5 [6 Z1 f, s7 N' ?$ Z& U
-
: [, @: y) o2 v g! e5 Z( J! B - static void do_it(void)8 a) w0 y8 E. A
- {
9 x$ i I/ Q- ^& }& ?2 f7 c - int
z, ?4 e; I6 I' i/ o- y - n_uom,
; T/ x* p H& C, R - ii;# P8 b! A( V- ?
- char: k2 x p. q6 |3 i
- *name;
5 J4 r( |+ A7 `" [ - tag_t8 V- k; T! P* h/ O5 L
- *uoms,
- j0 l A. Z8 m( N3 J - new_uom;
8 F9 h- r1 u: I& o$ U3 x" O# i y - 0 }$ L( t0 R/ O
- printf("Before UOM was created...\n");
% F6 ^/ u! Q$ A2 U- H4 q6 x9 _' K - ITK_CALL(UOM_extent(&n_uom, &uoms));
1 x& X) \7 h* {! t2 U - for (ii = 0; ii < n_uom; ii++)
! c$ O( T# \7 w# X; t - {
1 O6 T$ D" X3 P4 v/ P3 g1 @7 a, R( @ - ITK_CALL(AOM_ask_name(uoms[ii], &name));
( Y& ^2 i Q$ p - printf("\t%s\n", name);0 C, O1 b' i: w! u8 T/ K( y, ^
- if (name) MEM_free(name);
0 Q) K/ o# I+ I$ B U7 J+ k! v - }7 Z! o4 s0 k4 t: x( m& t+ L
- if (uoms) MEM_free(uoms);
: \( Y4 ^ A! k -
* I5 ]/ B9 y3 \- ~! n* y# r - ITK_CALL(UOM_create("inches", "in", &new_uom));2 v, B. D) ^2 c. z
- ITK_CALL(AOM_save(new_uom));+ ], {$ Z6 }& |' Y: n/ h) w' N
- , ]5 X! j# A- w8 F! {0 ]* s, S' r
- printf("\nAfter UOM was created...\n"); . |( ~% j$ {9 W$ X4 d- W8 \
- ITK_CALL(UOM_extent(&n_uom, &uoms));
0 u2 K# @; ~/ k; f4 U: H, V' Z - for (ii = 0; ii < n_uom; ii++)
: Y: ]& ?5 [: ?) B$ G8 M9 h* V. r - {
# g3 ]7 o1 ~; H5 g7 ^ - ITK_CALL(AOM_ask_name(uoms[ii], &name)), R- }8 [3 u5 K" ^
- printf("\t%s\n", name);( s; c. y7 j4 k+ y" M9 T
- if (name) MEM_free(name);' e( p# _2 ^- A' m
- }% W) x% i* x0 s L5 F. L9 J
- if (uoms) MEM_free(uoms);6 [1 D; a8 P( c3 o' R0 \
- }1 ^2 X. N4 S+ u" h
- ! d4 s* H R' _2 n. s
- int ITK_user_main(int argc, char* argv[])
3 R* {. P: ?, g - {2 R& O& F0 o0 E
- int
3 m& T- I d6 Z. Y: H - status = 0; 6 n; c9 H5 T2 \1 U) o- V1 x
- char& K, H) \5 H! `1 t
- *message;7 Y7 X: C7 N" p2 t
- & B" ^% u/ R r: }6 O3 w
- ITK_initialize_text_services( 0 );
% r6 X* D5 A% x7 n6 e! \0 ^+ B - status = ITK_auto_login();' u3 I6 s' v7 w7 ^
- 0 V/ c# }+ Y+ {/ l0 s& }+ W8 i2 M" N
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
3 A1 j& A [( v; w( g. A - else
. Q2 k2 x9 ^! @" C: H; ` - {
4 n- f1 Q( x, z; \& D7 N" \ - printf("iMAN login successful.\n");
% H: }( G9 w9 o4 o4 Z - ITK_set_journalling(TRUE);$ C6 ~2 [( g a' V( b. s4 B
- do_it();( t. e/ D4 K3 I$ ?5 _# W+ P; B
- }
" |0 v- l* [9 \. _; y - ITK_exit_module(TRUE);
' A9 h/ T3 @- _, N4 p2 r - return status;
7 @( ?% F# a, W8 I: w7 \ - }
复制代码 ' F1 P/ E9 I! s9 K+ g: D
. D4 X% |. {) C: J, h: J0 W+ B* c+ @
|
|