|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 P6 o8 S' \$ w. gTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
/ m2 @* h: A0 D) F T9 P
# K( d% S( v: U+ n) v9 v& h5 ^( f- #include <stdlib.h>
5 u7 ]8 v1 v) n- Q$ T* | n - #include <TC/tc.h>
# b% `( I6 c- k" F0 H2 T - #include <sa/tcfile.h>
( X, [% g2 M6 d - #include <tccore/workspaceobject.h>
( d2 E. l$ e% ]* _. F1 F2 C - #include <ae/ae.h>; L# {- w6 Y* N8 Q) b! [
- #include <tccore/item.h>
$ h/ n4 Z: k: ?8 E+ i
% c% a) k1 H! i! N5 o- #define ITK_CALL(x) { \
0 s2 a; a# [) z) Q( | - int stat; \
, B9 z) D2 q& h! y# @ - char *err_string; \
$ J% F- R' Y/ m+ I - if( (stat = (x)) != ITK_ok) \$ j1 J. L9 S+ r$ |1 Z/ ?
- { \
{, T1 X* e$ v - EMH_get_error_string (NULLTAG, stat, &err_string); \4 C8 [7 W3 i8 p6 ]& W6 ^- J
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \( _" W# g/ A' y; F3 t' S
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
' }4 @8 U' x) C5 R- i3 _/ d - if(err_string) MEM_free(err_string); \$ U9 U- |! F) J1 Z
- exit (EXIT_FAILURE); \( |! @/ g( \0 O
- } \
. {. L4 J% m/ T5 G. T2 N# X, t - }8 d, L# d, E7 Z& n
- #define EXIT_FAILURE 1
1 z k- O5 d" M* m - $ h9 X$ k" G5 R' a
- static void do_it(void)
6 l' d$ N* i5 a7 Z2 [9 w - {/ t; G' F. \3 S% b. ^
- int3 W4 P5 c$ P3 u2 _
- n_uom,
8 Q, j, a/ ~% M9 g% G - ii;3 h' q {8 S6 V* D4 S' B
- char5 C3 x" e4 L3 |7 L( B, v
- *name;5 z9 G: p$ L: [- }% d# ^/ p
- tag_t
* @1 V z# x. ] - *uoms,$ m* F7 H2 P3 ^: Y
- new_uom;
# t7 o: ?( E' A0 c -
0 B1 m' z2 S5 w7 P1 j) \8 k2 l. Z - printf("Before UOM was created...\n");
3 I- I/ T( A, |# ?1 G8 N0 m - ITK_CALL(UOM_extent(&n_uom, &uoms));
5 [* h! M1 o; S2 g - for (ii = 0; ii < n_uom; ii++)7 N0 _" z' H) A7 }' `) [% R
- {2 c& l1 k7 G: H+ I) ^
- ITK_CALL(AOM_ask_name(uoms[ii], &name));
9 e7 z! ^3 V5 E, h7 { - printf("\t%s\n", name);
! A- n; G g( D1 ` - if (name) MEM_free(name);) h- ?' D7 G9 x) C2 V
- }4 X4 {' Y* I# C% g. n( I7 w! \
- if (uoms) MEM_free(uoms);
1 Q1 M& x0 U3 n* F# O -
0 j) J3 Y0 `. K$ p; k! W/ b3 q - ITK_CALL(UOM_create("inches", "in", &new_uom));
8 a$ ^' V* n. a H7 } - ITK_CALL(AOM_save(new_uom));+ j7 G9 @; F0 E
-
\- D" P% y/ ~7 \& r - printf("\nAfter UOM was created...\n");
1 T) |. J1 b' f: H4 {% `; N* z0 { - ITK_CALL(UOM_extent(&n_uom, &uoms));
) v3 g2 x6 x7 i& l3 {" f - for (ii = 0; ii < n_uom; ii++)7 d6 l! Y0 M& N& T
- {
1 z- ?5 e* ^* Q, R z" w - ITK_CALL(AOM_ask_name(uoms[ii], &name))3 h" X6 S, _1 `; s4 f: }
- printf("\t%s\n", name); D) }) A. A( m- O" R% F- Q& f4 h! B" H# @
- if (name) MEM_free(name);
* g* P& D3 J% A& F - }' U- O+ H5 I( R
- if (uoms) MEM_free(uoms);2 D' J9 L9 N) K; R
- }
; S/ w! w7 J* y* X" J
1 {" g R( Y- w- int ITK_user_main(int argc, char* argv[])
( s" p! B3 R& u- G$ F0 n( \ - {5 O, p. ~$ \& r# P$ ^& P
- int
1 e0 x" w8 W8 U# n' E - status = 0; 3 f3 U* o9 v p% O3 O1 ~: N' \' ]
- char
h- M0 X7 y% B$ O1 Z; K: S/ f - *message;
9 B# [8 H) R' o* e* F -
! s! _, I, a( L; P0 ? }% V - ITK_initialize_text_services( 0 );
4 W; k5 q/ n3 \7 [9 A$ h - status = ITK_auto_login();
& b+ k( v: [6 i3 d* N8 E" u - ' v8 k; N# s$ W6 O4 v' x' s
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
- l0 u0 E; v* o( _1 |! C - else( T6 s# V+ K$ o% H+ v( ?
- {
2 Q8 Z# }/ S& \( T - printf("iMAN login successful.\n");
9 r( q7 q, F. E- L - ITK_set_journalling(TRUE);
; k9 j' w8 C: F9 v$ N' ~+ T - do_it();: C6 }& S, W- w1 d9 t' {
- }9 l% J/ H: F; v I6 b
- ITK_exit_module(TRUE);# A+ [2 e$ n8 o7 D
- return status;
; j. g, y s' O/ T8 J! s1 q - }
复制代码 ( ^7 q* }- O) t+ T
, T9 M* y" k( H7 z
# Y0 m2 z: _9 @ |
|