|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 z& {4 ~2 P7 w
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures K# w7 l5 e! Z% i* p
: ^4 e% Q) B7 l9 ]/ j9 _- #include <stdlib.h>0 D3 {1 B- e* `, b/ k
- #include <TC/tc.h> E: e( [4 E* L! O
- #include <sa/tcfile.h>
6 E& D3 s, B; M' T* |) R; A" { - #include <tccore/workspaceobject.h>
: y; f6 H" `% b. P3 |0 p8 Q - #include <ae/ae.h>& l$ v" Q+ y7 h1 }. k
- #include <tccore/item.h>
$ S/ s% ?* ?9 W) I6 q - , y- j/ C4 U& T( w" K( @
- #define ITK_CALL(x) { \' Z1 e+ ]2 X9 C, s1 C% S3 G+ p7 V
- int stat; \
9 Y( r0 {$ E8 ~ - char *err_string; \
% k" V9 t# q2 s, {0 z" v. h# N( ~ - if( (stat = (x)) != ITK_ok) \
) n; p; d; P" B" e# q - { \# y+ T W/ P2 L$ ~
- EMH_get_error_string (NULLTAG, stat, &err_string); \2 w$ N8 r5 j. w4 F3 L
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
8 X o1 g3 _' { - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
7 k1 P0 r" s' Z$ C: w% T - if(err_string) MEM_free(err_string); \( I: p: l% f0 N# y1 o8 N
- exit (EXIT_FAILURE); \
5 _4 @8 s4 t+ M1 T% C/ [8 u6 C - } \0 X1 w6 n; D3 J# m
- }
1 g" d1 u+ s, @, N9 ] ^7 P/ { - #define EXIT_FAILURE 1
, F( D; V6 T& k/ q7 } -
' s, A& `9 ~; _1 g7 O& Q. B - static void do_it(void)
* ~6 M9 w5 a8 y* x: t/ b/ Y - {
7 h5 w) `# Z1 O% F' S - int
2 H- `! A# i3 L$ ^9 { - n_uom,$ l5 I) \3 u8 t5 F5 N
- ii;- H$ R2 E# o+ I' [2 T, ~
- char- z7 Q8 S& V% I: n9 `
- *name;) |( l9 X+ ~1 p0 q. k* c
- tag_t
% a) K( W% m- ]% E' v8 }5 R" z - *uoms,% I- z `8 k) v! M/ \1 A& X2 k
- new_uom;9 T5 D7 t$ f Y! p3 i9 a+ G$ n
- 9 f8 ], Y5 _" J) p7 ?/ r
- printf("Before UOM was created...\n");
$ Y: Q) a& E7 H4 j4 k2 o$ w" _5 D - ITK_CALL(UOM_extent(&n_uom, &uoms));
8 h: g5 e! Q- V2 \' ], e - for (ii = 0; ii < n_uom; ii++)
% E3 v5 p4 K9 m A - {, R1 ]/ i A0 v" Z) r5 a5 X
- ITK_CALL(AOM_ask_name(uoms[ii], &name));% c( \# v% r8 z
- printf("\t%s\n", name);
# s; \$ l/ b& T) ^* i& {4 ] - if (name) MEM_free(name);5 r- `) G* B U3 L1 f8 W
- }
$ M$ ~( X* n6 h$ |$ G - if (uoms) MEM_free(uoms);& Q- Y/ h3 V, q: j. v5 z! m/ [8 G
-
9 H; n- P0 f. N' D( ^) C/ \+ q - ITK_CALL(UOM_create("inches", "in", &new_uom));
x' t4 ~! _7 P; n! U6 A) b+ | - ITK_CALL(AOM_save(new_uom));
3 Y% |' y9 l8 Q& s/ |% ` - 2 k% ]/ G9 j+ F) U1 `" Z: H
- printf("\nAfter UOM was created...\n"); 3 ]0 r7 k# m# R+ ^6 M7 _, i
- ITK_CALL(UOM_extent(&n_uom, &uoms));& U) Z' l5 ]- ` _3 @' {+ Y
- for (ii = 0; ii < n_uom; ii++)5 e" C2 H V8 _! ^
- {
) _, Y& V+ a; B L" y R% } - ITK_CALL(AOM_ask_name(uoms[ii], &name))
% b! [; M- U/ }' G8 E+ m - printf("\t%s\n", name);
: V' M# |" M- y - if (name) MEM_free(name);
9 U7 B/ U* k9 L# T) f3 C/ F* e - }$ \5 L8 a( a* |& S$ @, i; [
- if (uoms) MEM_free(uoms);
, T% d( l6 \; k/ q/ R+ _ - }
$ {9 V. t- u6 M% s - \+ h' P' X1 f& d5 d0 a& V; P/ E
- int ITK_user_main(int argc, char* argv[])
0 l; |/ D0 B3 b" ^# [) ~ P - {" c. ]6 k) Y( }) c
- int
: f% _0 q9 ~6 f% F - status = 0; ' T+ c4 ^( l. V% J( Q9 z9 |
- char
3 ?5 G- L' P2 c- H" Q - *message;
: E7 c5 [ N# |6 c -
* l b1 m1 ?7 m; I4 \ - ITK_initialize_text_services( 0 );
7 s6 O! A$ F% S( d" E% X( [ - status = ITK_auto_login();( D( Z* |. b7 e& P
-
, k( X( |7 T8 @ - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
! U, c) u4 o& ^( ~ - else
' x% G! _2 j$ x0 d/ Z& W0 Z$ z - {, W9 c' k) }& ^" e, a {
- printf("iMAN login successful.\n");& R6 B' K1 X) ^
- ITK_set_journalling(TRUE);
! _; ^ S# k1 K# _ - do_it();2 `# N/ G( f$ V9 w" N; i
- }5 J1 Y# q$ A/ M1 M: o v; g& S3 q
- ITK_exit_module(TRUE);
% b8 W9 |* y4 f1 F - return status;
) m( h! e% H+ ~' n3 `; I0 J' p - }
复制代码
) {8 _) O- P: b/ |0 z8 O' P9 T) r9 f
3 N4 y) H' w5 {+ R
|
|