|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& O, N2 X& Z0 N& ~7 a, o9 NTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
0 P- l$ E! _0 D: A' t, A, J( |, b4 V) j, F$ ~2 a. {
- #include <stdlib.h>6 t! Z# k2 Z' R; `. j
- #include <TC/tc.h>1 O# W" m7 r4 f7 }1 p, V. z
- #include <sa/tcfile.h>9 V2 p) D* z6 b& b
- #include <tccore/workspaceobject.h>- o! C5 [+ E8 I
- #include <ae/ae.h>+ D' _7 n) M3 Q) Z
- #include <tccore/item.h>
6 \' e5 [0 R3 ~* `4 k
, n, Y' J" A7 o z+ l" g- #define ITK_CALL(x) { \
1 R/ ^! {' R, G - int stat; \7 \! U7 d6 x) |
- char *err_string; \& m2 C: a" @- a
- if( (stat = (x)) != ITK_ok) \
4 K; r J+ V$ I+ G$ T - { \( n; D5 ^ d9 J' u5 E" W! ]
- EMH_get_error_string (NULLTAG, stat, &err_string); \ W% a4 Z' x0 o
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
) U2 |# a/ ?+ }) H" D" d# p - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
2 \: ~1 | i- n/ ]/ a% J p - if(err_string) MEM_free(err_string); \& B9 r# _4 Q. x
- exit (EXIT_FAILURE); \% q8 \2 l' d* ]& L/ c
- } \
! n6 w$ B: ~& S2 M6 v2 k3 B - }% Z' Q; E* ~1 @3 f Z
- #define EXIT_FAILURE 1 # [: k. b7 O3 x6 h! c( x0 ]
-
4 W: E0 h* u# D' L2 b - static void do_it(void)! y3 D2 d! Q) _0 V9 ~ U% y
- {
9 O' r) {3 i4 h1 ~( Y' k - int
$ T4 Q( w" O* b - n_uom,
, ]! Q6 N8 L( a% M/ U7 l+ J - ii;* J. Q8 C9 m# c! ?% d
- char
5 q* m- @3 x* s2 ]3 x - *name;1 q. _/ S" W8 |# V* t
- tag_t# d! Y3 F: T' C& g/ ^3 K, B3 R
- *uoms,4 R6 K. L+ p6 [9 T+ [
- new_uom;+ i1 ?& S; |! {) P
- 6 ?, G6 G0 ^4 a
- printf("Before UOM was created...\n"); , `+ V e8 S; d ]
- ITK_CALL(UOM_extent(&n_uom, &uoms));9 X% e3 |$ c9 d+ h9 H2 X+ D
- for (ii = 0; ii < n_uom; ii++)
8 G: T$ [7 [, _8 [' f$ d - {- J# t! f k: F) w
- ITK_CALL(AOM_ask_name(uoms[ii], &name));. G3 K5 @9 ~5 s& _' i$ k6 v
- printf("\t%s\n", name);/ y, a* m' L8 W* q* T
- if (name) MEM_free(name);. l# p+ A [& L6 N$ r. X
- }
) G5 r5 z1 t" ] - if (uoms) MEM_free(uoms);' U: C$ f: [1 T, i! X1 n7 f+ |9 H
-
" q9 q( E0 E* t. T& |6 Z3 S - ITK_CALL(UOM_create("inches", "in", &new_uom));
, _: _: u- m) g# [ - ITK_CALL(AOM_save(new_uom));
0 ~+ ?9 z5 I& D* ?' H9 r; C, | - 8 M* q* B/ H8 ?& {" }
- printf("\nAfter UOM was created...\n"); U5 ~$ @7 r1 p* F1 H5 @/ ~
- ITK_CALL(UOM_extent(&n_uom, &uoms)); U. w" D1 e0 Y0 f3 L% ]# `8 M
- for (ii = 0; ii < n_uom; ii++)
* P3 B' r3 ]' F - {8 |9 Z/ p- V9 g* \8 b0 L, F9 ?
- ITK_CALL(AOM_ask_name(uoms[ii], &name))7 s% i( _) t' m, v7 F' p X
- printf("\t%s\n", name);
* ~) g S4 \7 H+ K- k* \: d( u - if (name) MEM_free(name);3 C0 g3 {% \8 h( E: Y& T
- }
& Y. {0 U% d5 d - if (uoms) MEM_free(uoms);
4 ^) a& r, `' p# ~" o - }
# X i% t8 p# s* o: _$ z
6 n% Z; Z+ z* s4 q$ J- int ITK_user_main(int argc, char* argv[])- \. e* i5 o# A
- {# g" v- k1 Q& O! s1 \! J
- int
* F! S# `6 M: _& _: @* b - status = 0;
0 P! I# K. E1 f1 H - char
* w) C* a. ]. s) g# H& y- s - *message;) y- x7 S( O0 w) i. T- @6 W
- ( Q8 p1 L% I; u4 q' A* i/ m. Z
- ITK_initialize_text_services( 0 );0 Y0 }# F' J* |
- status = ITK_auto_login();7 h3 s/ e# F( S3 l7 l
-
_, u2 `7 `) R6 L: H' @ - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");# c5 c& t( b7 o$ H/ E
- else6 G# o! u$ A# P: u, M
- {
- L) \6 K8 ?$ a* E7 k: J. I6 Z8 d - printf("iMAN login successful.\n");1 J) X, W! O5 a; c. b" l! t; _
- ITK_set_journalling(TRUE);
# `- r( u" v6 X$ |) ~* a7 b: d1 h" }* G - do_it();
& g6 o- D; G# J H4 i2 }: y+ H, }0 {! M - }$ X2 I% B# _1 N3 M* D, L6 h* N
- ITK_exit_module(TRUE);/ s- a( A! A: F: W! j" _6 g% I
- return status;
1 I6 b0 l8 M( U9 K' [3 j) K u - }
复制代码
8 W+ g& S Q. T& Q: T7 H) @
, t; l- Y- O! L: w: p$ o4 f( L( q" h" r: d" r1 q: j3 j) e+ p! V4 }
|
|