|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
; \9 a1 r7 k) cTeamcenter ITK二次开发源码分享:创建测量单位unit of measures Z2 j: o6 ]. ]
; A( O- H, G/ E7 b% m; I8 K
- #include <stdlib.h>+ t" I9 W3 f& e7 Q
- #include <TC/tc.h>5 o4 [3 v, d n1 s
- #include <sa/tcfile.h>
/ d' s( v! B3 a3 z! o - #include <tccore/workspaceobject.h>
5 q% p3 U4 f2 {5 G/ V- U - #include <ae/ae.h>) B+ `: X$ K1 g" p" K6 ]+ k3 Q
- #include <tccore/item.h>$ K$ E! B* T, T* n% ~
' g2 ]2 e# Z% u* y- A- #define ITK_CALL(x) { \* W* f9 C2 _1 m" d/ z3 C
- int stat; \" b5 V7 s% f4 b* |" e# e
- char *err_string; \
1 L/ C) x" M' v8 K - if( (stat = (x)) != ITK_ok) \, C# T; H+ l6 g% F
- { \8 P; A' L7 n4 V* r. y" A% k
- EMH_get_error_string (NULLTAG, stat, &err_string); \6 R) m! |/ ~: T5 Q* z
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \ `) |% l7 H i7 \: B" A. a5 `
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
- L4 W# q4 j' H7 k L% P) W - if(err_string) MEM_free(err_string); \
v- b5 A- U" X* E# d - exit (EXIT_FAILURE); \
; E8 `8 J* C) S) X - } \% N* w: @& o- O5 o- \# ~4 j5 V
- }" \. v9 o) P; ^
- #define EXIT_FAILURE 1
6 J3 e: @7 S5 g+ X- l - 3 h5 @2 y3 R+ m) W
- static void do_it(void)
6 L: O7 u3 N! O8 `% S/ V - {
6 M. ^7 W+ j1 n# I - int+ ^- o/ O! H, ~6 h
- n_uom,
% I8 B$ b7 h- V: D# J - ii;. T0 c) u/ J3 l
- char
7 {) p2 V2 ?$ k) e8 H6 r - *name;) K* u# K8 h2 M' t' g4 Y1 y4 C
- tag_t! m8 r* ^" y4 L% h% l2 R, r
- *uoms,
8 b. s" m n/ A; I" ]5 k5 ^: V - new_uom;
$ m+ w C4 \1 V3 K - 2 F6 [8 S3 x4 l. ]+ S
- printf("Before UOM was created...\n"); + p8 ^% w! h2 p, j. r
- ITK_CALL(UOM_extent(&n_uom, &uoms));( u* V1 {, c2 \; v) S
- for (ii = 0; ii < n_uom; ii++)1 J( _" k: ?2 _1 F2 k0 u
- {* w2 C$ }" j+ l& e9 e
- ITK_CALL(AOM_ask_name(uoms[ii], &name));
J4 u( @9 A# n1 ]) v4 C - printf("\t%s\n", name);
$ N* e' y5 u7 J/ p# f9 Y - if (name) MEM_free(name);
+ x6 D8 U) x" i9 q2 ^ - }
' R( q7 l( \' w - if (uoms) MEM_free(uoms);6 W! l% c+ v9 c. T+ {* F
- # z+ T0 k2 M: l6 n
- ITK_CALL(UOM_create("inches", "in", &new_uom));2 H( R( n" x9 Y7 N
- ITK_CALL(AOM_save(new_uom));
3 K' G7 v9 B7 q4 U! u- Y - + h1 L6 Y6 b. ?, ?" n- T* U
- printf("\nAfter UOM was created...\n");
, g" h, F* l' z8 R1 `5 j - ITK_CALL(UOM_extent(&n_uom, &uoms));
' P8 r2 |% D ^& [ - for (ii = 0; ii < n_uom; ii++). }! m& M% d- b5 W9 ^# A
- {. }0 S+ ?) C, [6 [5 k/ b4 J
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
0 x5 R% M2 Q# m( s( L - printf("\t%s\n", name);4 S; _& U: Z k
- if (name) MEM_free(name);2 O& D5 L0 x( H% L
- }
) a3 L0 K) A' d) j) ?/ t5 f - if (uoms) MEM_free(uoms);2 R1 j6 {7 e0 |3 u
- }7 K+ n" n' S! i
, ]! x4 k2 ]- U9 |5 T5 i( i' Z6 O- int ITK_user_main(int argc, char* argv[])9 ]7 R& E/ ?* x) ^8 p; J
- {0 i: S# `% j$ r: Q
- int8 Q" }. _8 r# K
- status = 0;
" R! \3 k- S7 P6 }" D/ V - char
4 K1 |: L: _0 \ K - *message;
' P# ]! D- Q: U3 Y8 g6 [ -
$ e5 L$ {) [! ]0 i9 l+ C% T; p' e) ^: r - ITK_initialize_text_services( 0 );0 F9 ^! A1 b0 j, C
- status = ITK_auto_login();
/ V O" _; B( i -
8 F/ e8 ?0 h& v) ~3 } - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
1 [3 b- L& ?! C$ Z - else3 A# D" n1 \3 F; v3 R
- {; v, C* T4 z5 V. d4 Q e+ y/ i
- printf("iMAN login successful.\n");$ o5 t" j: r. p4 T, y: n5 G
- ITK_set_journalling(TRUE);6 d) e0 {4 ^6 _; Q: B6 P
- do_it();
. Y6 W! q$ ?4 E( S O) B. I - }" L( n8 Z3 Q: L# S% y
- ITK_exit_module(TRUE);3 F+ B8 i$ L5 n3 H8 E4 N1 G
- return status;, f( E3 a' y" w& _1 W% x
- }
复制代码
, A" m* z4 S/ t( N7 N% t+ ~7 S& ~+ ]" K# k Z( z; ^
# ]# d8 T2 s9 m |
|