|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* ^" H% n( P& b, |, W9 d4 O' U$ r- rTeamcenter ITK二次开发源码分享:创建测量单位unit of measures6 f8 ^3 i1 \6 [
9 ?7 c: B$ a* d6 c- #include <stdlib.h>7 V' B& U7 ]5 G- K. Z0 c' o
- #include <TC/tc.h>
. s2 ~' E5 F5 M" U* _ } - #include <sa/tcfile.h>
3 k; K6 e9 V1 ?3 d2 \; s, c1 m; w - #include <tccore/workspaceobject.h>
6 ]1 X0 k- a G$ m1 Y - #include <ae/ae.h>, Q9 y U+ q' v2 S
- #include <tccore/item.h>1 Z9 P) ]$ z- j8 I+ V
- % ~1 X% m0 P- Z- F% W6 Q( L
- #define ITK_CALL(x) { \3 K2 M) y+ D2 q* S, f% z
- int stat; \4 x' C4 C! Q' B1 e& ^! S; A
- char *err_string; \( D5 c% `: K' ?; Y6 a* m0 _$ T6 h
- if( (stat = (x)) != ITK_ok) \! D( C0 F/ d) j
- { \
% d( u1 G) Z9 Y1 H$ S+ x5 h) [9 y2 [ - EMH_get_error_string (NULLTAG, stat, &err_string); \
- C5 C* w6 W4 F8 b% ?/ o - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \# R* C2 [: M' G0 S
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
( T" b t- q2 m - if(err_string) MEM_free(err_string); \% U5 F* ]0 f4 y
- exit (EXIT_FAILURE); \( O- J: e3 F- T8 E3 }- v
- } \" E7 p" y) v- L8 I
- }$ p) z7 r1 F3 i4 G: Q
- #define EXIT_FAILURE 1 1 F/ O' b3 I6 c; }
-
0 Y2 N: h+ l- K) J" d) f5 o - static void do_it(void)4 f, ?2 h# W7 Y& J- L
- {
6 @) y# M i! H+ | - int
) r0 U: n8 D5 x1 x - n_uom,! _" [8 U+ _( g5 ^) z9 [
- ii; q! U( v1 n; N! L
- char7 q4 J# X9 G2 V5 @7 E- g
- *name;
; z- ?) F# h/ L6 }- O' T# a* ?. ]& [ - tag_t2 d0 [( }, }, M4 b( c
- *uoms,. \- Y: @& a# k. T! n3 [" F
- new_uom;
1 G" P3 I* B! A( \/ S -
4 b( Q9 f5 [$ R& J - printf("Before UOM was created...\n"); 9 H* z9 |# }( I) E5 |2 d
- ITK_CALL(UOM_extent(&n_uom, &uoms));# d4 b6 e- S1 i! N
- for (ii = 0; ii < n_uom; ii++)
# g2 ]. j8 ?5 H1 O/ ?* L - {) z, h) y, e# J! U E
- ITK_CALL(AOM_ask_name(uoms[ii], &name));
4 F. _! r% J9 h6 `9 Q - printf("\t%s\n", name);2 p6 k& U' V6 C0 e# H- r
- if (name) MEM_free(name);! Z$ C; p- x& b% w. J2 M
- }
4 D- |2 i& b6 }3 G4 _ - if (uoms) MEM_free(uoms);+ Y2 W$ Q$ G9 Z+ y2 K
-
u ]# _1 `" R0 t1 ~. d* ^/ F - ITK_CALL(UOM_create("inches", "in", &new_uom));9 ~" p7 Q' d- O% o3 e0 s6 Q+ I
- ITK_CALL(AOM_save(new_uom));+ \0 {& q, f+ b2 j2 H
- , c# p+ g6 U2 }" R4 A* B- \* b2 U
- printf("\nAfter UOM was created...\n");
% L# K Y( g. @# P6 ^8 P - ITK_CALL(UOM_extent(&n_uom, &uoms));
, B9 V- r' k" B" J2 b6 y5 a9 ~* d - for (ii = 0; ii < n_uom; ii++)
; ]' d6 K, l. j' y( j - {6 l" F: p' j& q0 ~5 T' o# M
- ITK_CALL(AOM_ask_name(uoms[ii], &name)), ^3 O1 r0 `5 |( Y7 F
- printf("\t%s\n", name);
) F3 t9 V: g7 @# z/ g, h7 |+ K - if (name) MEM_free(name);
: K: i9 h1 s8 M) `# m - }
H3 {$ U. r7 e5 B! Q) i - if (uoms) MEM_free(uoms);1 p: L7 R: g9 _3 ^8 K) z1 Z7 z
- }. o. m W8 l1 [
6 f9 F8 P* M7 S0 A) {3 c1 l; e- int ITK_user_main(int argc, char* argv[])
. I7 _& c( L" d G - {
! p/ K/ x' L! H% }) B( P - int E( b# r& l% Z5 a4 ]. F" G
- status = 0;
1 ]: W F: v3 Q - char& T! `$ I' q0 y7 K; n
- *message; E+ ]# ]1 r2 p7 c1 ]4 x
- @- X+ C; B" r# H
- ITK_initialize_text_services( 0 );
. ]- J6 a6 |( G: Z( b: @ - status = ITK_auto_login();
6 b( J8 G9 \2 `$ u' N -
s+ j* x' ^( b, w' F - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
* y( V& e8 H% x) g t" D5 F - else$ a8 I r' |( i" }! \
- {7 ]7 T z K# D5 f
- printf("iMAN login successful.\n");% i! b1 Z' V9 h( A
- ITK_set_journalling(TRUE);: X# ], q# P$ {) e0 w( U
- do_it();; n2 z& n5 F3 R5 `
- }
8 B1 }, s* F" X/ E6 s! W - ITK_exit_module(TRUE);* l+ {- i* |" o
- return status;4 w% W3 s- z3 G* _6 \8 m2 J
- }
复制代码
]# w0 e& s8 @! C4 R$ ~& D- S, q& R9 Z1 p
6 p: @* D% F" d- r& O) x" F8 n
|
|