|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 Y3 h5 E. N: ?4 ]2 A
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures9 i6 h/ P9 B9 o! R
* c1 U2 I; n! r' Q! w- #include <stdlib.h>
$ |4 `2 o5 t/ }/ x" P - #include <TC/tc.h>
" C9 y7 x/ ^/ H1 N" o1 q) R - #include <sa/tcfile.h>
5 r' I! q% A5 e/ \ - #include <tccore/workspaceobject.h>
6 T) B& H: G4 P& R$ i - #include <ae/ae.h>
H5 V8 Z$ x+ e: ~/ m6 x - #include <tccore/item.h>
6 b7 {% n$ f* m2 h: L, x - ' B4 {: }8 J4 a: j3 u5 z
- #define ITK_CALL(x) { \/ K0 r2 ^; V$ m; |! t% b }
- int stat; \
+ m% ?4 H& n v9 K7 t0 W$ A( ?( j - char *err_string; \
5 D: J6 M) _3 [; g! ?' e( |+ E+ } - if( (stat = (x)) != ITK_ok) \
, c* T* c8 z+ Q4 v) h! q - { \
A9 c, o4 \3 m6 i9 Z4 C- b: t - EMH_get_error_string (NULLTAG, stat, &err_string); \
5 @, X6 Q$ D+ k, j% b - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \# T6 }+ w( F- s+ U, @7 d
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
% f) J. `+ y2 q8 b/ @$ Q - if(err_string) MEM_free(err_string); \
3 R" g# j8 m2 ]: `% m - exit (EXIT_FAILURE); \4 d& H' q5 g" F2 {9 }/ O0 D
- } \. F0 C4 Z2 Q/ @; k" o1 g' c6 _+ g
- }! G& B2 S4 |/ @/ D
- #define EXIT_FAILURE 1
: d) m4 F, [5 L -
& c0 N2 y' G/ V) n0 j - static void do_it(void)9 ?8 c& P1 ~6 s3 n6 ^
- {
- |$ ~. C$ Q: W7 P' P( A6 U - int
: z+ e' I1 E k3 m, x0 f - n_uom,
4 T o1 m1 u l+ [9 ]& Q - ii; J$ F0 M& R' i Y+ A; N* h% f
- char" O8 H/ \( D% N# M6 ^
- *name;6 b1 J: t! R' J! _* {- S/ L
- tag_t
1 ?* q. k1 M0 Z3 o. T$ ?0 ]' y - *uoms,/ E4 }2 k" ^8 ^& a/ p: X& w
- new_uom;2 ]5 a2 d- ?: p& K" Y3 _" z
-
, }# P& P3 u. ~" N - printf("Before UOM was created...\n"); 1 E/ c d8 D; _1 m0 I
- ITK_CALL(UOM_extent(&n_uom, &uoms));- L/ Q- d& ]. i. X- |% e- y3 s! B
- for (ii = 0; ii < n_uom; ii++)
: D1 R) H' _0 m - {
( j- s( B# I3 {! x7 k: f - ITK_CALL(AOM_ask_name(uoms[ii], &name));6 i& ?- A2 w# w' ~: o
- printf("\t%s\n", name);7 E5 Q6 v% ^* m. n- I4 k$ }5 M
- if (name) MEM_free(name);& Y0 H l( }1 h0 a0 O- c# Z
- }
/ p" i4 X. j* N! @5 x - if (uoms) MEM_free(uoms);
. J; e' {; q, f& g - ; p4 w6 q' \, O1 B# [) s% ?9 ~
- ITK_CALL(UOM_create("inches", "in", &new_uom));( {& f( W6 _( v+ c# {+ a
- ITK_CALL(AOM_save(new_uom));
. l# R3 i1 ^. X+ X% f - & c7 X6 H8 j; A/ D7 A' y
- printf("\nAfter UOM was created...\n");
w) G. D h* I q$ @ { - ITK_CALL(UOM_extent(&n_uom, &uoms));4 z$ ^; v. x' t a: S4 C& X0 ]
- for (ii = 0; ii < n_uom; ii++)3 `& H0 @1 _* S: [0 A/ n8 z: u* H
- {
8 t! n+ `: \0 [( B' b - ITK_CALL(AOM_ask_name(uoms[ii], &name))
0 H4 c, k& T! a( Y - printf("\t%s\n", name);/ r. y, z% K* `7 i* |
- if (name) MEM_free(name);1 T" F: ~9 E5 m8 W0 f M3 [4 C( F
- }) X( C8 h8 K! \, ^' r
- if (uoms) MEM_free(uoms);/ C3 l* E: U' V) ?) F
- }
% T7 z" s p& i, H
, \/ K3 p* G: Z1 _' C- int ITK_user_main(int argc, char* argv[])
. P7 x8 p- N3 w8 G4 p - {4 u5 S, c4 r' `( `% Q u) R
- int
! r7 P& o. c' s! P9 o0 T; T1 f - status = 0; : x2 x5 Q' b" o; |4 D- [+ t
- char) ?3 h' ]9 \$ ~$ p/ [+ T7 U
- *message;
3 ^% X* s% q$ I2 _, S - / k& V; s/ D8 ?# x
- ITK_initialize_text_services( 0 );$ H! O( l' d& ]: F o" P
- status = ITK_auto_login();* e$ R. _# `1 J% t3 g
- ! Z, E: V6 T s$ C
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n"); c2 |2 I7 P, _
- else. B' q5 r% I' ?" F" H
- {
P/ e/ F& Z; p" y% i - printf("iMAN login successful.\n");" F$ N& h. L2 U1 @5 ?
- ITK_set_journalling(TRUE);
2 P1 Q T# Z9 o7 G8 V - do_it();
9 j# b0 k% N$ Y - }9 `3 Q/ q+ g4 E0 S9 ?0 |7 q2 W
- ITK_exit_module(TRUE);9 ?2 P+ q3 v. h& l4 a8 i
- return status;9 N) K# W6 y$ f# l3 o) o
- }
复制代码
' k1 d& w" }; Z1 ~7 ?8 r
& q. B6 O8 \( b' ]% V8 f% |5 r: K; P) H
|
|