|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
/ U; D; m: ~; W$ |4 D2 @& RTeamcenter ITK二次开发源码分享:创建测量单位unit of measures& f) F" J+ ]: H6 H7 j4 N% S- }$ p. x5 i6 g
" T; x! g7 f' c) U- _
- #include <stdlib.h>: I5 R- G1 Y: u
- #include <TC/tc.h>+ X; ~( J0 s& k" \
- #include <sa/tcfile.h>
7 U. H* G+ M& [ - #include <tccore/workspaceobject.h>+ W* c k' `5 Y! b% a
- #include <ae/ae.h>" `% d+ m" v4 A3 M- R
- #include <tccore/item.h>
! |# [6 r& D. r+ H$ W: z - . {, N6 b! `3 }; o
- #define ITK_CALL(x) { \
1 j3 ?0 r8 w5 a& ^' c+ |8 T$ j - int stat; \, @0 O/ f4 P8 \5 @) E9 Z
- char *err_string; \2 }- x# B* u! ~6 J9 @ D( M$ `" b; n3 F
- if( (stat = (x)) != ITK_ok) \
, j& l' \% {$ l3 m - { \% g% Q2 U3 Q2 X2 \$ b+ z. S* c) Q
- EMH_get_error_string (NULLTAG, stat, &err_string); \/ v. h' g( k9 u( `! ]' L
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
- \) b* H# g, n5 n' j4 t. s7 h, j9 \ - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
* m: R) }" L5 M. f, d& C - if(err_string) MEM_free(err_string); \+ K5 _+ j) j8 [. H) S1 A6 C, \0 y
- exit (EXIT_FAILURE); \. U8 X2 @7 k( E" @* u
- } \
! }; |) O/ u( w( E - }
' ]9 a, M$ L. G# h8 I) u - #define EXIT_FAILURE 1
* t! } h& e) d* M/ Z - 3 S2 J& N, s$ ?1 |+ _
- static void do_it(void)
8 K8 L% J' V0 Y; f# _8 j( J ? - {: k% B- o5 h4 h) \! B% y) x
- int* J5 b! p) D) c& q2 O1 ~
- n_uom,
7 t3 r ^6 Q7 M, ^" _1 L - ii;' E2 U7 p5 y, R8 ?) `, `. q
- char: m" X+ J; g% r7 i: A. n6 o
- *name;
5 j6 V5 H) n/ d; i/ J, ~ - tag_t
6 q9 c" J8 }( Y1 B - *uoms,
7 v7 ]- U/ W4 L2 G - new_uom;0 G6 u2 o. M, g' e' O- D; `
-
5 k' b- W' h8 M+ V3 v - printf("Before UOM was created...\n");
" f* J) s4 c1 S: X - ITK_CALL(UOM_extent(&n_uom, &uoms));0 X! \) r% G6 M& _6 K
- for (ii = 0; ii < n_uom; ii++)/ I& [3 J# }& M; H
- {
4 Q) Z. E% o7 i9 r+ c7 f$ { - ITK_CALL(AOM_ask_name(uoms[ii], &name));! C4 A! O0 W2 R) l( o& |1 S
- printf("\t%s\n", name);
/ X4 W: N2 t# J: R* N/ A7 V - if (name) MEM_free(name);
; B) b: Q* \ K! c1 W6 U - }5 ^+ C! I9 [, @# D. R
- if (uoms) MEM_free(uoms);
/ \. a! q8 N$ R9 [ - 6 P4 P4 s6 Z! j$ z1 W$ V- ?
- ITK_CALL(UOM_create("inches", "in", &new_uom));) X d+ |: H/ w# G) E; r
- ITK_CALL(AOM_save(new_uom));5 U$ E6 D3 ^# `. ?4 \3 X8 l. F! P
-
1 j- a- E. }. U$ x2 i" s! z - printf("\nAfter UOM was created...\n");
' y8 s, @5 z/ e - ITK_CALL(UOM_extent(&n_uom, &uoms));
1 Y; d% I0 B" E5 }) I - for (ii = 0; ii < n_uom; ii++)
, L- Q+ x9 V" g8 y0 H0 ]1 j7 O - {0 }2 j% N) Z$ i
- ITK_CALL(AOM_ask_name(uoms[ii], &name))+ p, C0 G: O4 `
- printf("\t%s\n", name);
6 _( `# Y( H% Z( R - if (name) MEM_free(name);. V+ N# d" y5 d& o) Q. K0 @4 D
- }
L- Q( ?0 U3 D& n( G$ n7 O @6 ^ - if (uoms) MEM_free(uoms);. S( z4 r6 {7 C& E# B* P
- }; D$ Q5 ?$ v5 z- J( F4 M
- ! x1 ]: q1 B9 Y, Y3 }1 W M& K
- int ITK_user_main(int argc, char* argv[])# @; j. }& ^0 P$ K2 J
- {, |4 s! x0 L( B# D, S8 A
- int
' }! Y: |; `" \ - status = 0; 7 O0 R: J% K+ P* c. }' p3 ~9 i; a
- char$ X* b3 \) g6 I
- *message;' Q6 o$ a' S2 ^3 q+ G
- / l1 C1 i0 h( r+ p; X: W, d
- ITK_initialize_text_services( 0 );8 N# K: Q) q8 M+ B$ m0 w
- status = ITK_auto_login();! T" x2 M c. s
-
% G# F+ f6 N$ G2 u! E3 f - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");, ?4 K r5 U/ o
- else) ]$ f+ y, V b6 W6 @% b
- {/ F( @4 e/ j$ c! l6 Z# I: b8 d
- printf("iMAN login successful.\n");6 n/ C% y6 ^) G4 F7 J) o' Y; @
- ITK_set_journalling(TRUE);
- D! Q7 F6 G7 ^! n4 j - do_it();
& Y3 H8 _. J' W/ t& j - }
& z5 M% J5 V6 D! c' J. \/ w - ITK_exit_module(TRUE);
* [5 Y- u- D) d8 E: y0 c3 K0 E+ C - return status;
- p4 j/ n0 ?0 n5 k8 y1 a - }
复制代码
7 _. @" N4 E) x0 f" Q: j- I4 N2 T* w9 C* ?/ e8 A( e
' V1 ^2 H! K2 L: R& r |
|