|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
2 ?* @' w' O' q5 G' D% i
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
+ o! ^3 m* f! O3 N* D. k3 j
* P" Z* ^+ M* B$ x- #include <stdlib.h>
, q4 C- h8 ?# e( j% \ - #include <TC/tc.h>- _3 R# }3 L7 x: m) [
- #include <sa/tcfile.h>
0 k/ E7 K2 @$ p3 @ - #include <tccore/workspaceobject.h>8 h! k% z) U' b: ?9 U" h
- #include <ae/ae.h>6 J0 B l1 P$ W( ~
- #include <tccore/item.h>
Z" I* ?5 E$ s; c
4 U5 g1 O. q! {! Z7 H- #define ITK_CALL(x) { \
/ G( i! C l9 k+ m( C - int stat; \# K% x# I Q. j3 J* X8 i9 A v% I4 B, I
- char *err_string; \/ q1 `% B9 B+ V1 \8 f' j; m+ Q
- if( (stat = (x)) != ITK_ok) \, O1 h9 b8 Y+ J
- { \
; f( {. Z6 m- h: b& } - EMH_get_error_string (NULLTAG, stat, &err_string); \. X2 N' u. O' @. {
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
8 X! ?9 u& R2 J - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \' C; L' R: y( J" Z b1 v- ^
- if(err_string) MEM_free(err_string); \) P5 m4 Q3 {0 p8 C& v% w- X2 O
- exit (EXIT_FAILURE); \
$ W r/ d5 t5 ]) }8 N; D+ v% k - } \( @* ^/ `% _! W) g4 s
- }
& S' K* _0 k- z* m) h [ - #define EXIT_FAILURE 1 2 H/ m. Q: @0 i2 T3 K9 I% x {
- 6 H! C/ c: B" s! R
- static void do_it(void)+ u1 s) B/ `: ~/ B- j$ M& I5 r
- {; w0 j- }- A' u* J: v' f4 [
- int3 i' n9 u+ ?. n: s, A) o
- n_uom,
3 B, _0 N/ A' c: l+ D1 g - ii;. P. G" o7 \3 W9 ?5 {. M
- char
% z( u* }! ?6 r( o, r- w% T4 v7 j - *name;" @, ^2 \& A, k( i/ u/ p* t
- tag_t
3 h& z0 `3 H" u$ R8 N - *uoms," I1 G# U: Z+ e4 R, d8 \, P
- new_uom;+ L* ?- h4 Q. Q; C- @
- - x! _& z$ z/ U! q
- printf("Before UOM was created...\n");
* F& S- b8 w+ E; ]9 g+ _1 C - ITK_CALL(UOM_extent(&n_uom, &uoms));
; i" q; |$ R- H - for (ii = 0; ii < n_uom; ii++)1 o& u" f) I% j. `5 H7 l5 @& r
- {
k, l; e, b" [8 _/ v - ITK_CALL(AOM_ask_name(uoms[ii], &name));3 B8 W: w: j; ?0 ?/ K3 F; E8 O0 A
- printf("\t%s\n", name);
# T/ E( i( R+ k - if (name) MEM_free(name);
* Y, E+ H( C! a) L; t3 l! s9 H9 E - }( d6 H8 K: U4 M+ n; Z0 G! g( x
- if (uoms) MEM_free(uoms);
2 I2 b3 u3 l* S4 u3 {) d3 v -
/ {* W. l4 Z' N* ?' D8 t - ITK_CALL(UOM_create("inches", "in", &new_uom));
* p7 K, C6 F# \* L/ {0 B - ITK_CALL(AOM_save(new_uom));+ A6 E* f( U9 [ u# m6 X* E+ F/ k3 s
-
; s* Y, L+ ~# G - printf("\nAfter UOM was created...\n"); 1 L6 b8 d* t4 w
- ITK_CALL(UOM_extent(&n_uom, &uoms));
6 h( f$ g* [$ \: N4 R, c8 f6 F - for (ii = 0; ii < n_uom; ii++)
# p% h# i' `8 S6 V( k% ?2 b% b - {& m& b4 N6 ?5 n! m0 n' h/ V1 ?
- ITK_CALL(AOM_ask_name(uoms[ii], &name))& a! \- x2 u* c
- printf("\t%s\n", name);# I o% O' R1 D- G2 F$ e( c
- if (name) MEM_free(name);. W3 I$ b6 q* [ ^
- }
1 e% Y7 S$ W4 q* I: h2 e - if (uoms) MEM_free(uoms);
* {! \4 S, ~& {4 o7 K: S" N - }( E6 P0 h; v9 k
# T/ d+ U; a2 D: x, T- Z- int ITK_user_main(int argc, char* argv[])$ M2 b9 k! O. \
- {! F3 g" |8 R" f
- int6 | ^6 W1 y5 K, W9 q% \6 Z
- status = 0;
+ _9 d0 I1 }: t- n - char7 s: \" w' b8 i u1 ^
- *message;2 x& x" J ?$ a4 }: U( R) @
- / a& _+ _9 x5 I4 X+ S9 U6 @* L
- ITK_initialize_text_services( 0 );
* I" }" f+ A8 F$ X/ D - status = ITK_auto_login();
+ Y0 P( Y6 M& d -
a% o3 X! Z5 p. b4 Q' Z( T - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");1 s3 g1 h; e8 ?5 r" B0 r3 P
- else3 I* u' M* k {0 C
- {: K I1 u% ~0 j' I+ ~
- printf("iMAN login successful.\n");+ U/ O/ w* Z1 `# h/ m& y
- ITK_set_journalling(TRUE);
M. K, e- z- Z2 ^: C - do_it();( I J$ v! M$ }8 a; u, ]# J5 m2 S
- }+ ~; w9 a" L0 W5 O* I
- ITK_exit_module(TRUE);$ o. Y, b5 ^& N7 ~4 x% @
- return status;
( p6 t& S' T2 u, M - }
复制代码 2 a! Q9 a4 d5 j- v
+ } S1 h/ r Z- c2 h
7 i" G4 U0 [) x7 b {* w- L |
|