|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, O% \7 ?% h( \7 J; `4 `" w" y
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures. H7 Q* O$ G3 L% M9 h2 m
3 C. Z! H. R' K$ I; \
- #include <stdlib.h>
! G5 {- K; ]9 ~. W - #include <TC/tc.h>
' P! W' n m* m8 R4 } - #include <sa/tcfile.h>, B4 C/ V+ P* B7 o1 r
- #include <tccore/workspaceobject.h>1 `% E9 p) x3 E o" w3 s
- #include <ae/ae.h>6 g' Z( ]% o. t% M/ n4 V& A0 I
- #include <tccore/item.h>0 d6 o1 q6 b' r' r- K1 B' H9 g1 a
1 z, S$ d, V8 ~& s3 U- #define ITK_CALL(x) { \
0 v; R p9 n2 A1 m# k - int stat; \3 ? f2 M, B2 D
- char *err_string; \
+ z7 W3 C2 {# y5 f - if( (stat = (x)) != ITK_ok) \
0 q% ]2 ~3 {0 y" m3 L4 l/ O. P3 m - { \
: A, X# X2 {2 Z, d - EMH_get_error_string (NULLTAG, stat, &err_string); \& G( \1 p* W1 ^ e: F# I
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \0 q% `5 K h& C9 s
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \2 J5 G% |' B- _. G/ `/ v4 ]! u* \% y- a
- if(err_string) MEM_free(err_string); \8 [# g+ ^* ~/ {5 I4 k- u
- exit (EXIT_FAILURE); \6 E- z/ ?, E5 D/ p
- } \3 ?; A& B- s j' u1 _7 `3 U
- }
! W5 B% X$ Q/ l `2 T - #define EXIT_FAILURE 1
, [( r9 D9 Z: @2 _9 m# f+ n% J/ U - ( p8 Y Z5 O8 v8 c: \& b
- static void do_it(void)
x. W# }/ W0 H% d, ^5 n8 Z - {
6 Y. r# [' h9 g! ~! L - int
1 u4 o+ d* P' ^ - n_uom,8 o2 t; g8 u9 ~ T/ L# k: Y# |& `
- ii;: z% b0 [: ]7 D, `" k; ^' Y
- char
# O+ f1 t: M7 u$ k. o - *name;
. W3 E% `4 i y P3 m - tag_t- n& `, u! y& E; s5 F
- *uoms,7 A& S+ g+ ?2 j* w2 O
- new_uom;
! Z4 U+ P% ~5 w0 j" o( K3 b% ^ - # z# \1 @/ _ L7 _+ n# I0 |
- printf("Before UOM was created...\n");
/ D" X3 ^2 O g0 ]; D J - ITK_CALL(UOM_extent(&n_uom, &uoms));
" i, p; B' w0 f( J9 F5 J - for (ii = 0; ii < n_uom; ii++)% l) A; Z. b- Q
- {
" }8 S3 T/ t, J" b - ITK_CALL(AOM_ask_name(uoms[ii], &name));
! G5 |9 A+ ^3 f7 V9 ^ - printf("\t%s\n", name);% P3 Y; i+ T" u% i" F/ {" Z
- if (name) MEM_free(name);
- R/ N, ^; m) z" w0 D - }
2 I2 A' h8 L1 x$ L$ t' \ - if (uoms) MEM_free(uoms);
9 e$ T& j7 n8 B& X -
1 k" ]/ V: A* |2 X2 S# h - ITK_CALL(UOM_create("inches", "in", &new_uom));) R# X, P- ^" @) G+ H: j/ K1 |! W
- ITK_CALL(AOM_save(new_uom));! v3 |) H# T3 g$ w0 d; a
- * \: w& ~6 D, N" c1 a0 o
- printf("\nAfter UOM was created...\n");
4 g' f# \% D4 j6 A6 ] - ITK_CALL(UOM_extent(&n_uom, &uoms));
$ }0 Y9 ]! B2 k# X - for (ii = 0; ii < n_uom; ii++); I/ k: }3 k& B2 g$ }
- {
0 L3 x$ Y( }, E2 P - ITK_CALL(AOM_ask_name(uoms[ii], &name)): W) y2 s4 H: d; Z
- printf("\t%s\n", name);
0 Q2 t5 k5 v4 }( T" r& l/ Y. x - if (name) MEM_free(name);
3 Y9 q' B& X3 R, c" \1 z* h! B - }
9 a$ {' S$ ~, h - if (uoms) MEM_free(uoms);
I0 R$ p# H9 z* f9 X# l - }
; Q1 a/ ^! S" h6 _) n - ' H- B1 u4 K. i
- int ITK_user_main(int argc, char* argv[])) b3 J! H5 Y- R W4 G- [
- {
/ p5 s& J; y" C - int- W. T! w, d* u+ ?$ M4 `" e; ^
- status = 0; - L2 w% p9 L5 Z l" R
- char
0 X! d# X4 J; u& b2 c$ ^ - *message;1 [6 t7 |+ D" Q7 K
-
& a+ w; W Z: |# I7 [8 s - ITK_initialize_text_services( 0 );
# b+ ?( Y5 p+ f3 z3 h' t5 k7 Q2 t) N - status = ITK_auto_login();# |0 A8 J, c$ n0 D" K5 J) g
- * {$ m* I1 }/ T& h' M t w
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");& o4 }" f" ~6 ]
- else: P5 s1 p V+ U4 F+ y8 v& i% Y$ T
- {4 p2 |2 \, D) y- ?9 B2 L* R. i9 \
- printf("iMAN login successful.\n");
6 \2 q A0 \$ O: h2 T - ITK_set_journalling(TRUE);
r" M: E! i$ H$ G+ e( l* n - do_it();
: Z. H. t5 z. c' t' {1 a! B) G - }
5 z: B! Y& M) U4 G/ ^ - ITK_exit_module(TRUE);6 H ~2 l: o, j7 \. Y8 C) z
- return status;
0 f- u' p0 @* i - }
复制代码
5 u9 k {9 @) D9 A( U5 d. p m
) m8 w2 t' I+ I" h6 e* L5 k% ]! G; l! h! @) U
|
|