|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
( o8 n) Y$ H# [& \: I) A, d1 X
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
0 s9 c/ u: l0 J) h& N2 D$ a- y1 |6 t2 Z7 ]5 Y8 P4 g3 y
- #include <stdlib.h>4 K9 r- ^$ D( z t9 Y* J! h) _
- #include <TC/tc.h>
8 W5 M. g9 ]' A( J- ^/ Y3 }8 t' ?: ~ - #include <sa/tcfile.h>
( @1 J4 L4 T: I% j S4 ~3 \9 t! b - #include <tccore/workspaceobject.h>
5 y" Z" b2 N |8 Q' ~ - #include <ae/ae.h>9 r7 z$ l8 G2 Y9 F/ o) z! B+ d. S, z
- #include <tccore/item.h>
! K1 O/ c+ `) _' o
: ~/ U, p! O, i7 v4 Z* B$ y. h! [, _& ^- #define ITK_CALL(x) { \
) m% ^& Q, [7 t3 v - int stat; \
* T* I ?# n! H- r1 Z1 ] - char *err_string; \
' X7 B4 l- U: d, S - if( (stat = (x)) != ITK_ok) \4 A6 C* e5 n# ~" P2 E/ \1 `
- { \
' b2 _" q( L( c( |+ {) W# q: K3 l - EMH_get_error_string (NULLTAG, stat, &err_string); \9 a7 E* \) @% A- p( T5 o
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \2 \& U p+ ^8 u8 o0 n
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \ i8 {, B& \& |2 f4 i" z
- if(err_string) MEM_free(err_string); \
/ s$ W/ J/ T/ U - exit (EXIT_FAILURE); \
( q7 z2 M1 E* q$ |! \0 {; r0 ` - } \% A' h5 f5 [/ z. @9 H
- }6 V, J0 V, F |" G3 J$ R1 X
- #define EXIT_FAILURE 1
0 v/ f- \* V5 I - 1 ]' i6 s- S; y; P! f" C; K
- static void do_it(void)* H' d2 `, e7 x- N* c" Y
- {! `1 h& f! m" b0 n2 F/ S
- int
- Q- H+ ?( s; J3 a$ y' Q% } - n_uom,9 j' y( B$ d8 v
- ii;
2 T' C) q4 m1 C: l - char v: t: @2 T2 o. F% S: T, ^
- *name;# P7 z& c1 l4 C
- tag_t! k7 }% z- r4 D+ _
- *uoms,
* J: Z8 v+ t1 X# i, {7 p6 \ - new_uom;7 z6 t2 X0 z: r) k, ]
-
7 q. W& C- E" T) b+ ]- H - printf("Before UOM was created...\n");
5 E, ~+ E8 \5 z3 G7 z" I: e% P, [ ~ - ITK_CALL(UOM_extent(&n_uom, &uoms));+ c% B4 K# ] P
- for (ii = 0; ii < n_uom; ii++)
4 m1 c! m& q9 c# B+ o. w' B - {
, i. j! `- M# V. Z# Z - ITK_CALL(AOM_ask_name(uoms[ii], &name));: `; s7 b4 Q+ L |$ ^! N# B7 u
- printf("\t%s\n", name);
, x, v( ^2 ~) E& j - if (name) MEM_free(name);
+ c0 _+ @6 D6 e) ^4 u. S1 t; \ - }
0 {1 N9 k4 T( _! k: j3 s4 Y0 [ - if (uoms) MEM_free(uoms);
) L% S8 x& x& i& Y# Z - ! u% O8 f/ c: L) v+ Q8 a' Z
- ITK_CALL(UOM_create("inches", "in", &new_uom));9 D# l+ F/ ?8 U& F
- ITK_CALL(AOM_save(new_uom));" i+ C+ O8 _( n/ z
- ' |; Y$ c) [. p5 ^9 z1 A% ]
- printf("\nAfter UOM was created...\n"); 7 k( t" W' ^; C- }
- ITK_CALL(UOM_extent(&n_uom, &uoms));
1 A3 U/ o1 E+ c3 x - for (ii = 0; ii < n_uom; ii++). u6 S. D# c! J% A6 d$ M
- {5 m, s, w$ |: F$ H$ M
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
; b# I% E& x t, b7 m( ~0 k - printf("\t%s\n", name);1 J* n; Y/ p- Y. Q8 N$ ]5 W
- if (name) MEM_free(name);
$ w8 r4 [3 g( N5 v! `$ Y5 S - }7 ]& U& @5 y k7 z+ E$ s
- if (uoms) MEM_free(uoms);
+ A/ A6 n1 y) |7 h/ } - }
6 A) Y" X ?, I% f - 9 c5 c' y% h- Q- O' s, T6 S
- int ITK_user_main(int argc, char* argv[])) j* _8 d+ l( j3 V) |! ]
- {$ D0 A5 H/ ^0 ]& ~2 V4 d
- int
2 V' A m/ ]3 {8 [; p - status = 0; & \7 `" X+ G7 e3 O4 E2 y9 h
- char" h! E+ G7 p5 [( n$ e, i
- *message;
0 Z6 F5 f3 O0 r+ M3 i -
, f% n" r- ^! l6 G% j' E - ITK_initialize_text_services( 0 );
; K `/ r' F& N8 K1 k: R/ k! h8 [) ] - status = ITK_auto_login();
: d7 b) a7 o9 F, c- s' { -
2 @) K& b% W* r2 n0 X - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
4 T O, T# v# ~ - else
& j; \1 z! N j - {
, v& H0 R) E" H: r! ?5 S - printf("iMAN login successful.\n");( {$ H" S0 i/ v( F
- ITK_set_journalling(TRUE);
0 c9 d( t* `! U - do_it();
- Z7 c8 `- v7 b6 h! k8 E3 L - } q$ }% `9 R5 y( {
- ITK_exit_module(TRUE);
+ ]. ?" m, ? ^6 h; G u! L( k - return status;
; I0 n, p0 p) l7 ~ - }
复制代码 * p: H/ w9 K& n7 U; C7 {# A. h
' B( L- Z3 D# p) x! s: `* y
7 E# F* {* t7 D |
|