|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! q3 Y$ h4 @! n6 L& MTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
4 z/ P Z; q. ~. g. S. i: V2 P/ A8 z5 S7 f/ \3 d) K
- #include <stdlib.h>/ R ^; ~/ u! w6 w% M& |2 t0 J
- #include <TC/tc.h>% u I- i' a: i
- #include <sa/tcfile.h>+ T- ^0 B: `) J$ |/ L4 }
- #include <tccore/workspaceobject.h>0 e {+ C1 K: j4 \+ o; R x" t
- #include <ae/ae.h>
l( C5 G( X2 v, x$ F - #include <tccore/item.h>
3 u3 m3 Q/ O ~2 |# ]
& i- D2 b2 n0 s4 P# l- #define ITK_CALL(x) { \- W, {: u) V2 ~ s& X" v( G
- int stat; \
( C) {$ E' W0 H! V1 \$ b$ f - char *err_string; \
/ y2 [3 s4 |8 u( j% w - if( (stat = (x)) != ITK_ok) \
7 @1 f0 E8 z! J8 V3 w( B- h - { \2 u2 r2 e! P. S
- EMH_get_error_string (NULLTAG, stat, &err_string); \
# `* B5 i5 ?6 H1 z- u- d& d! m - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \8 B/ y6 G, u: c2 j, s7 C% h R
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
( X8 e6 \9 I# k9 N/ c! n - if(err_string) MEM_free(err_string); \2 S# ]( r4 A3 v* b5 C, ^
- exit (EXIT_FAILURE); \
* F- J: b& E1 v r - } \3 f C" F7 ~+ B! o
- } y" i3 v: h7 q3 }# V
- #define EXIT_FAILURE 1
2 D7 Z! O F4 l -
' k- {- D2 `3 ?4 B0 U" w - static void do_it(void)
* ?# N( U% O' R. w3 ^8 k) z* r - {9 R9 ?3 @: g4 T; H) r$ `
- int+ D3 N6 E" O: o- t- o
- n_uom,5 k1 y5 Y( ~3 z
- ii;6 c' E- ^, T' k" n: |# V- C+ W
- char
& K( Z; K* V) d7 y0 q* L8 ? - *name;
0 V; \+ v% A3 l, H/ m( \ - tag_t
3 u2 C, h' d) D% H - *uoms,/ f; _) \' L. l" S
- new_uom;/ @. z" X, O9 ^6 }- V
- ! G9 ~ |. ?( s8 G& z. {5 W
- printf("Before UOM was created...\n"); ! B5 E. e ~5 Z
- ITK_CALL(UOM_extent(&n_uom, &uoms));+ K% p4 F% l* E0 }. Y; l2 n
- for (ii = 0; ii < n_uom; ii++)$ Y( a6 _& N% b
- {6 O- S$ Q; c' E% Q( v5 J* K. T
- ITK_CALL(AOM_ask_name(uoms[ii], &name));( `3 v6 }0 ?; p) y# ~2 ^4 }
- printf("\t%s\n", name);% \9 B2 g9 v0 x; H
- if (name) MEM_free(name);
& [: X, a* G& n a6 O - }2 r2 H0 I! E% J6 Z( o7 f1 L
- if (uoms) MEM_free(uoms);! j/ A% w# e# o+ }: d7 n
- $ |) _0 K0 q/ e% d& o6 ^
- ITK_CALL(UOM_create("inches", "in", &new_uom));. J; L8 h0 c* x8 v- A2 c
- ITK_CALL(AOM_save(new_uom));
8 p' ~* x. i; J+ A - $ L$ s! B4 [- U8 \0 {
- printf("\nAfter UOM was created...\n"); : B9 W! f& [/ u% u' v
- ITK_CALL(UOM_extent(&n_uom, &uoms));
# y( u5 m2 k! c - for (ii = 0; ii < n_uom; ii++)
0 I0 Q# i4 N5 T0 D - {
+ @- {+ @3 N- G# R - ITK_CALL(AOM_ask_name(uoms[ii], &name))
" F6 W9 |* A( r( x% a1 } ]/ T - printf("\t%s\n", name);
5 H7 l8 H0 C* ~. @ - if (name) MEM_free(name);
2 g* [2 o2 {3 E2 |1 a! ? - }
) b6 B$ w. {, G% Y& j9 a - if (uoms) MEM_free(uoms);/ Q9 c1 J+ W3 [
- }' s5 g7 f3 _& e8 d" Q
& E7 r# m# k( h+ E- int ITK_user_main(int argc, char* argv[])
/ ^; ]( [+ ?9 w1 t - {- ~) T7 z* V$ n9 A/ ^. C. N
- int: s$ f& e J6 V0 g
- status = 0; ; A- h" p }: {
- char) \6 \4 e+ B1 {9 P0 Q
- *message;
1 s* T4 D5 _7 G5 G! U9 z -
$ h o4 g8 q& I* h/ K - ITK_initialize_text_services( 0 );# i6 \( Q/ ?- J! R7 S
- status = ITK_auto_login();1 T& s- h2 k# @
-
/ I9 C/ F# Z* w1 l8 H1 O - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");! q& G5 v/ B/ y& w9 |
- else Z! z- U' |+ S! @8 ?7 n# n
- {
& K# B0 O! \) p6 \" @+ _ - printf("iMAN login successful.\n");, E' p; p; p v7 B; |2 J
- ITK_set_journalling(TRUE);
; z- J& t# p; ?) D - do_it();
: Q$ k" b1 Z, v/ \9 H' h+ ~ - }
, [: s$ N1 @9 p5 u0 w4 R2 { - ITK_exit_module(TRUE);9 {+ I5 w; k: y+ X% X7 d- s" t
- return status;( X/ |$ I' n& |7 A. A
- }
复制代码 0 f V6 |4 R' z$ p: Q) v
1 {. z. @ d( k6 n
: O4 n' P8 y R' U, O' @" q |
|