|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: X) `2 J6 g" O( N7 h/ e; G7 ~Teamcenter ITK二次开发源码分享:创建测量单位unit of measures( p- ?8 k5 m( }1 O0 u7 E
1 L3 x: Y6 S5 H! }0 `& Y" o# M
- #include <stdlib.h>
8 s8 M" v1 N1 f% m4 [. X! ? - #include <TC/tc.h>" m; Y6 U8 i' t6 C7 g. b& O- t
- #include <sa/tcfile.h>
* v) U0 O2 N" t - #include <tccore/workspaceobject.h>
$ E# o8 m( @( c7 o* s - #include <ae/ae.h>
; ^+ p" K1 g! S2 X1 t/ t - #include <tccore/item.h>: K, p; c7 G2 {# j+ U j
- & i$ P8 ?4 Z& D
- #define ITK_CALL(x) { \
; o8 R; u4 T5 | - int stat; \' y3 W# n4 e2 d, Z q- C8 Y4 q
- char *err_string; \- I& Z' @* {9 J) k
- if( (stat = (x)) != ITK_ok) \
' W6 S! M- k/ ~ - { \
0 _2 t8 i" ]; K - EMH_get_error_string (NULLTAG, stat, &err_string); \ G$ S/ \9 B2 ]. i) e2 y
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \3 N$ Q- t& \! [4 d
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
! H( I5 P* I; L* a: ~) N) \4 t+ _6 K1 p - if(err_string) MEM_free(err_string); \
; q$ A0 A% H: }3 M* e - exit (EXIT_FAILURE); \, J, l5 s5 _2 ]/ p7 w: t
- } \5 u3 [1 v: C9 y q' V) g
- }& ?( P3 P* O9 r/ j
- #define EXIT_FAILURE 1 2 M% P6 @) M& X' }9 z/ Y2 G
-
+ l% r4 P7 A1 p - static void do_it(void) f# q. m- D: c
- {
2 o T ~' G7 y( R0 s K3 U) ` - int1 N9 s1 G0 {: u2 J; M: x* n
- n_uom,
9 M( P) y* R g - ii;% h) v0 `& f, O2 G
- char
& @7 E. K: ]( y - *name;" T# b; L- H( G( D
- tag_t- v0 |/ A9 \. N* b3 K0 H4 e' r
- *uoms,
' P- _- r) X: W) r% p% o, k" T1 @ - new_uom;. ]) p5 K* \& ^$ v
- ; D$ x1 r- y; p: J5 h/ }
- printf("Before UOM was created...\n"); " W6 o& t& m" e0 K0 L$ g/ [
- ITK_CALL(UOM_extent(&n_uom, &uoms));
& J& B; C9 Z$ ^. d - for (ii = 0; ii < n_uom; ii++)
( U4 [ y# X+ [5 d" e# o% _ - {
: r/ g: I0 f6 ?7 y4 R4 J! q: q0 a - ITK_CALL(AOM_ask_name(uoms[ii], &name));
; |7 y" f( B+ |/ c+ w - printf("\t%s\n", name);# l: H' c; j+ e4 D4 S
- if (name) MEM_free(name);
3 D% x4 ~4 z2 Y - }. F) U, D, H9 e: Y! f$ o
- if (uoms) MEM_free(uoms);+ `3 v# @. y3 E1 m
-
1 A& W) i# H6 y/ T0 z - ITK_CALL(UOM_create("inches", "in", &new_uom));
9 I# i! b2 D5 T8 t7 G0 y3 R - ITK_CALL(AOM_save(new_uom));
! u& B9 x* T" U& j7 x - ) j7 P3 I6 G) x* T1 _7 H
- printf("\nAfter UOM was created...\n"); / k7 S+ N! F1 w( H0 Z
- ITK_CALL(UOM_extent(&n_uom, &uoms));+ H# q n! x& s& _- H: Q
- for (ii = 0; ii < n_uom; ii++)/ R" S/ X q# c& J9 ?5 ^
- {
' e; U+ u( x8 u/ P0 R - ITK_CALL(AOM_ask_name(uoms[ii], &name))
& N! w, u- z4 z/ U8 y$ u, q" e: E - printf("\t%s\n", name); t2 L# r, v$ A: a
- if (name) MEM_free(name);% a# B% E: X8 V* Q8 k7 J+ I
- }4 t+ b$ d7 ^5 X' n1 h" B- d
- if (uoms) MEM_free(uoms);
: y! ]" X8 [ I9 e1 m' A3 O# ] - }
) h d0 y6 u. r9 S8 u0 o - ' Z, Q# [9 W- @. k# `
- int ITK_user_main(int argc, char* argv[])
/ o6 C6 J: y5 B% a - {. b) }6 y' Q7 Z5 w5 B
- int
3 L* v: B w2 j6 J& u - status = 0;
' u0 l; [" z# t5 W- i" P$ v* F - char+ c% I; L+ ], U, ?
- *message;/ _+ h6 s6 N* @
- 8 q% E9 [* g L6 D8 N3 Y5 D8 Y
- ITK_initialize_text_services( 0 );
" q- t5 F2 f) p6 W4 D* k - status = ITK_auto_login();
" A3 q1 h0 g- Y4 t, D' x - ' L( m: x- |& O
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");( b- N }; N9 _) U; z @$ f) ~
- else
) w8 W! J4 ?: N C4 m$ ~- ]4 u - {/ [" n! c3 u3 ~9 F/ L: m/ ]( O: Y
- printf("iMAN login successful.\n");
; K, N0 z1 u! Y O' | - ITK_set_journalling(TRUE);: R! c9 R+ ^% K
- do_it();
$ ?6 L; M% |: p% |" u/ L1 L( O6 O8 C - }
) M4 H& Z. l( l4 b0 R* _! J - ITK_exit_module(TRUE);
8 z( ~; Z' _6 |: L/ u! S - return status;3 I+ U& w" Y+ I6 b( ?9 N
- }
复制代码
# Q- b" k) g9 |% k8 x& r5 X3 F# U
. j( p; z! R0 E$ f1 V% Q- W! t# g X) q1 _) _
|
|