|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 u- S- h% }, J1 V! RTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
& [; w0 R2 v7 s6 F3 x. J6 h/ Z6 v* P- K7 B# y2 O' g3 O5 N1 J
- #include <stdlib.h>) H+ [) Z1 W' c+ f8 s$ |1 \
- #include <TC/tc.h>& |- V+ p9 R/ U
- #include <sa/tcfile.h>" m7 z) Y* V8 f4 B7 s; I( [
- #include <tccore/workspaceobject.h>+ ~0 d" `5 U7 ^. f: U% h# k. W
- #include <ae/ae.h>! s0 {' H# O# `' \( E
- #include <tccore/item.h>8 n1 ~7 p" j# d- w! h% S5 G
- - [/ `, I" P: U9 P
- #define ITK_CALL(x) { \
( d: C9 l' o8 j - int stat; \
( G, H) `7 p, H2 j6 M - char *err_string; \8 ~6 e5 W2 Y6 b1 M+ F; ]
- if( (stat = (x)) != ITK_ok) \$ E" b; S1 l) A, G0 e
- { \8 y' R7 m3 s3 P5 T) [3 a$ W
- EMH_get_error_string (NULLTAG, stat, &err_string); \
8 y- e3 Y: ^1 p - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
_4 w9 [5 V! r& F. M" Q' k - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
0 r6 P" @3 f/ p5 e - if(err_string) MEM_free(err_string); \: u% I" i6 C0 ~ P8 v; N5 o/ j
- exit (EXIT_FAILURE); \. Z! E, R) d$ A& t* T) X
- } \( D% N5 ?" M) _/ S" i2 x
- }) F- Y3 l6 r0 c; ~) X3 j# ~
- #define EXIT_FAILURE 1
6 W0 \4 L5 C, h -
1 d$ ~( G! d8 B$ s) z- O - static void do_it(void)
1 v0 j9 t- c: H: Q8 ? - {
# v9 m, ^' r/ G! j - int
/ D9 V( j: n2 ^- q+ s - n_uom,, j' Z4 p3 N+ p1 M2 ~- q5 [) R1 I/ H
- ii;
0 w2 e7 N) |% T+ j+ S+ l - char
$ b4 |9 }7 Z1 q& [* r* ` - *name;
" u" q; `, U4 b - tag_t
3 j9 f& K( d2 O5 a: @, `6 V e4 j0 W - *uoms,
" r: s* C3 I5 T- P - new_uom;
# w+ b! p% h7 x - ) z: L. H1 S9 t7 k
- printf("Before UOM was created...\n"); ! J g0 W6 b* n7 i+ \- Q' C
- ITK_CALL(UOM_extent(&n_uom, &uoms));; F! S7 G. k- u
- for (ii = 0; ii < n_uom; ii++)
1 X3 e( c2 ^8 @5 {. \ - {- e6 t/ T6 X4 v% n2 h' e1 K: S
- ITK_CALL(AOM_ask_name(uoms[ii], &name));3 T6 w( S) R6 h- R
- printf("\t%s\n", name);
; F% X0 @) f3 I1 ^0 j( `& s3 W - if (name) MEM_free(name);
! H! c. u' Q U0 m - }( o0 T$ d7 p. T% p% u5 ] |0 [
- if (uoms) MEM_free(uoms);
) q' t5 H/ b; K/ E3 ~7 r& J -
; N h7 a: i$ g" R( W# y7 Z - ITK_CALL(UOM_create("inches", "in", &new_uom));* E2 `& Y2 X9 Z; R v
- ITK_CALL(AOM_save(new_uom));; F% ?% f" C; R" `
- - U0 \3 J8 b% l3 ]: V! G
- printf("\nAfter UOM was created...\n"); 3 v# B0 m- [. e) }, m1 h ?" `) C" W$ `
- ITK_CALL(UOM_extent(&n_uom, &uoms));' T# d8 ]& w/ r
- for (ii = 0; ii < n_uom; ii++)5 N' t$ i9 r, g! O
- {
% T: r; A- k6 E7 r - ITK_CALL(AOM_ask_name(uoms[ii], &name))
" N5 u. `1 p7 d0 l5 b - printf("\t%s\n", name);
( b" l* B, [5 ^) h3 Z. b - if (name) MEM_free(name);
4 `+ d. V8 i. \4 \5 o% v1 i) h6 M - }; g+ b9 k$ U/ P! f% h
- if (uoms) MEM_free(uoms);
- H4 z- Q- D! ?% S2 e - }
3 }+ r8 @" [, t - 9 ]6 s; R# ]' i
- int ITK_user_main(int argc, char* argv[])- Z3 o- J- C* |1 h3 N6 q6 j4 {
- {
+ j* {: d8 X- M9 M/ A( i/ Y) F - int1 X" R* D% |" \) C3 e5 _$ h/ U
- status = 0; 6 Z, K G+ Q6 l4 X8 \3 p" D
- char
. l0 I3 @3 b: N6 e) a - *message;0 z% c0 e2 A$ i( W( S
- 9 p5 L+ g- o1 @
- ITK_initialize_text_services( 0 );
" \2 S# [5 |3 R' o4 F2 t - status = ITK_auto_login();
9 w' R( Y- I/ |+ G; p, d% U$ ~* R -
3 R7 q( u% W9 |7 V" B6 _ - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");. E% k D' {4 I/ Z' t$ ~: A* a
- else9 E1 D7 J1 n# U( d9 B, K5 {& I
- {4 p5 b& M% R7 u7 c4 Z: T
- printf("iMAN login successful.\n");/ j; C. D9 T+ g, I0 c
- ITK_set_journalling(TRUE);
# Z) ^& C* B- X) N - do_it();" W& Q3 X& Q8 Z5 Z) k: z$ S
- }
' \ z) P0 H+ _/ p6 v# }$ r: @3 |) e - ITK_exit_module(TRUE);' E3 C1 T5 d$ z
- return status;5 N! @' ]5 Y) ^: v, Z! @
- }
复制代码 % d& h/ p' \' V: g" X, E
9 @7 z- s- F( \
! g/ {0 B, ^6 v |
|