|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! ?/ q/ g: a" |Teamcenter ITK二次开发源码分享:创建测量单位unit of measures( w8 y7 Q: W( H1 i5 T
( i0 R) b1 \3 r, l) ]
- #include <stdlib.h>
7 t" |8 }5 h+ x7 l1 m5 ?, n; K - #include <TC/tc.h>
' x* H2 @; [* e9 E9 t5 N3 j1 W7 D - #include <sa/tcfile.h>
' J, ]. W( N: t0 ], ]/ A& V1 f - #include <tccore/workspaceobject.h>0 Y* l3 U9 `8 v& d, K2 n6 Q' o
- #include <ae/ae.h> i5 `/ K; [7 n8 F: v- s# B
- #include <tccore/item.h>& @. S' C5 [1 o' J- r
6 i0 q+ V6 x/ Q! W9 e4 s- #define ITK_CALL(x) { \" C7 Y7 A9 k1 ~" n& `& d
- int stat; \
u: Q' {+ d0 D q2 I - char *err_string; \
& P# A4 B1 E4 c5 x0 g( d - if( (stat = (x)) != ITK_ok) \
5 p7 t1 T; u& d3 K0 ^) K6 b - { \
8 B( f+ L' T1 T4 ]/ Y" R' n - EMH_get_error_string (NULLTAG, stat, &err_string); \) c5 I7 a$ X4 o6 i! D6 z, J+ d/ R
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \; i2 H/ a6 a- z
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
, U& m# R! v( a) p' o - if(err_string) MEM_free(err_string); \
3 k5 s4 D7 K) X' K1 C x. p5 T - exit (EXIT_FAILURE); \. P- }4 r7 L$ z. |+ p
- } \& ^/ S; {, k! h& ?' T
- }" Q5 Y, w% s: Q& i$ V
- #define EXIT_FAILURE 1
& y) I5 }8 s4 u) c8 k - 0 e1 q* k- n- G6 w
- static void do_it(void)
$ P- V: y. o" [ - {1 C$ G' ~- b" D2 B0 U j
- int
. T% \* `" V9 s" h$ @ - n_uom,
& z) E' e! b+ G. w+ t: P$ R - ii;
0 z. ~, k* d1 ^9 w; T3 J2 r' | - char
# n9 k; x/ E5 ]9 b# B - *name;
8 |8 P( s! c/ f% a' @ - tag_t) O) W+ \# u2 ^* O% d, b: n; [
- *uoms,0 G- m+ t4 F3 a0 L3 ]
- new_uom;2 Q9 G5 Q* P2 N2 e8 h
- + g# v7 q4 b) ]7 _# f) h
- printf("Before UOM was created...\n");
7 y+ w1 q% L [! D - ITK_CALL(UOM_extent(&n_uom, &uoms));2 ]. r' `" _* v
- for (ii = 0; ii < n_uom; ii++)6 X% t1 o1 c' W, o4 ?
- {) j+ k4 r6 @# X/ z9 Z) K# D% r: g
- ITK_CALL(AOM_ask_name(uoms[ii], &name));
. r7 Y. Y7 x# J" y3 J/ n" _ - printf("\t%s\n", name);3 w5 O; v+ O$ i8 o1 b2 f1 S8 H' z
- if (name) MEM_free(name);
& v5 S' }& L2 G( S' d' P; W - }8 i1 d2 S: P! O s4 _. Q2 i3 T
- if (uoms) MEM_free(uoms);! _1 E+ j, s4 \4 e
- $ H# V r/ [# j' D4 E
- ITK_CALL(UOM_create("inches", "in", &new_uom));# d5 i \. F+ I! h. K" g7 q
- ITK_CALL(AOM_save(new_uom));! N) M, X O: U1 M8 F) T) t
-
" ^ \8 S' W- q+ m2 j. C7 z - printf("\nAfter UOM was created...\n");
* X, ^9 [' f* |3 N - ITK_CALL(UOM_extent(&n_uom, &uoms));7 Y) k/ e N* @9 E4 i& V
- for (ii = 0; ii < n_uom; ii++)* z7 Y+ Y1 w O0 B% B0 B
- {5 a o1 M2 ?& _3 N! i! Q
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
; Y( V3 J3 X/ B) C - printf("\t%s\n", name);, I, m: E. D) Z, A
- if (name) MEM_free(name);! f6 `: T6 D# y
- }( Q6 P+ \7 l% Q2 m' F7 t) P" g% t% }, A
- if (uoms) MEM_free(uoms);
2 F& u8 n" {5 c- j! Y - }7 O9 x0 B5 g) M# _
) t( W& E0 `& y- int ITK_user_main(int argc, char* argv[])0 Z! _" Q1 x; N" U4 M% v
- {2 y( D0 K% {1 B" Q
- int: w% \) \, s& ], {
- status = 0; 2 [4 C6 \# f1 M
- char
2 X9 n1 _; H# u' N5 J& k4 b# k8 y - *message;
1 D/ }3 R! r: O2 V4 ^5 [ r8 F -
, ]' K1 h! A; ]# B' R* K - ITK_initialize_text_services( 0 );, y$ |& H) k% o9 R5 c
- status = ITK_auto_login();
' h2 F& Z( w; F1 T) Y, h7 j6 e - & j# I$ E. x" E( s- U& V5 P
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
4 A. y5 F7 O0 @- B/ @, W6 r+ f5 q - else! a3 |+ ~! j% g1 m- o: C- g
- {
/ V# v* B6 {( y$ {* }0 }" [ - printf("iMAN login successful.\n");" ~0 e0 ~4 W1 y; ?: G2 U
- ITK_set_journalling(TRUE);
* s* Y/ t4 z! G, Z& m' } - do_it();' l) K) j$ i) @
- }; w8 ]& ^, V' k. S$ n. p+ p' w
- ITK_exit_module(TRUE);
" ^7 z, }+ `9 U t - return status;
+ U- I) g. r2 H6 K) I4 d+ s2 S - }
复制代码 - i7 v' s. f7 l2 Z2 c2 B3 p
% {$ `, ] s" D* b5 q1 M7 t6 f/ j# Q y0 m) P! ~/ m5 ]
|
|