|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
# z6 ^/ |6 Y4 G4 J: C. rTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
1 g4 C# x2 F6 K
! ?% I2 a; p( c+ j* N4 n- #include <stdlib.h>
* i. x. j: U6 I2 ^; q" Q! s# O# ~1 k - #include <TC/tc.h>" X0 M+ v( S# }0 u6 r( B2 _2 }
- #include <sa/tcfile.h>
7 m9 a, \9 _+ P& ]3 \ - #include <tccore/workspaceobject.h>3 V$ p5 p6 r- W
- #include <ae/ae.h># D/ }. e" i3 t/ m
- #include <tccore/item.h>0 \1 c- P4 F: w! A
- 0 F0 H( S2 @# ]- A6 I% Z) ~/ ]
- #define ITK_CALL(x) { \8 a; [! S( b# b( J6 g
- int stat; \0 V3 [3 m( M7 W6 W5 X( A4 Z
- char *err_string; \
/ j# H; |5 }( W0 P8 i5 e( G - if( (stat = (x)) != ITK_ok) \3 }" X- b& Y* z& K- ?
- { \) _, I" X% d1 L! b& r2 I# ^* u
- EMH_get_error_string (NULLTAG, stat, &err_string); \. m% }1 t# R! j
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \6 k" \! ?# | p, V: [7 ?" V
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \# h- z) ~% X. @% {0 q5 }7 H
- if(err_string) MEM_free(err_string); \
" s2 C) ~! o% q) a$ k - exit (EXIT_FAILURE); \
9 E$ _5 Y0 C4 G. ?* E - } \5 q3 Y* m0 J) Z3 F
- }
+ M K& y8 D2 z8 W; `# Y- G - #define EXIT_FAILURE 1
5 r, ?# h; c' @$ G8 } - $ s) K. S( u$ e
- static void do_it(void)# B w3 O. P' V+ h% K9 B! V
- {
; J7 g- U9 ^5 c - int
6 \+ W; N3 j0 B$ U - n_uom,' I, n7 ~" r2 B5 L9 |8 c& \6 d
- ii;
4 z# \7 R( H0 m1 R: Q, [6 u3 n+ t - char
6 H9 U; k7 Y, F( }- b2 j+ m - *name;, h7 Z1 F/ N7 V3 ?3 j- z: i. P
- tag_t, A X D6 b7 W5 v$ x! Z% K7 D
- *uoms," V a- [! m0 `6 b8 v
- new_uom;; X+ V' B% t) V# \
- 4 m& x, J( ~ z( P! [; o( m
- printf("Before UOM was created...\n");
& B! N: L; L8 k - ITK_CALL(UOM_extent(&n_uom, &uoms));
2 P" d1 @% y# z( \" X/ k - for (ii = 0; ii < n_uom; ii++)
* y9 H7 j5 g# o - {
8 h% _+ E0 `0 n3 a9 g# ? W - ITK_CALL(AOM_ask_name(uoms[ii], &name));
! W$ r# G i3 T: c1 p( h" w - printf("\t%s\n", name);
( w9 V# z9 a B0 y( C - if (name) MEM_free(name);
2 @) z/ z8 H5 J- M3 v+ [5 q3 k( k - }
( D: V. Z" A9 _% ]" Z9 d+ x' h! i - if (uoms) MEM_free(uoms);: v9 c# b; n5 K4 U
- $ f5 O+ M( p( P( C0 y
- ITK_CALL(UOM_create("inches", "in", &new_uom));
+ Y, z% j: [/ [; N; ?" [ - ITK_CALL(AOM_save(new_uom));
f, k# g |3 h* |' h" a - ' I- @9 E: C% S( g9 V
- printf("\nAfter UOM was created...\n"); ( j1 T3 ]# X0 z
- ITK_CALL(UOM_extent(&n_uom, &uoms));( R. r5 u( Z( D) {9 T1 W' u' j' D* m
- for (ii = 0; ii < n_uom; ii++). j+ b, Q# C9 B' q8 c! u
- {
& ~' R; @7 V6 K3 {2 c3 i! @; @ - ITK_CALL(AOM_ask_name(uoms[ii], &name)) t. z M2 m- u; A9 L9 s
- printf("\t%s\n", name);
/ G/ s1 Y4 k: d) w - if (name) MEM_free(name);
, { Z+ l$ B: C6 S' L - }
4 b; a" L8 m* O" o - if (uoms) MEM_free(uoms); G* k8 V7 J9 @3 u: E, f
- }
) Z7 X# E D' |1 o& J$ p0 @) M
6 s+ q9 l7 ]$ |$ b6 N3 y! u( E- int ITK_user_main(int argc, char* argv[])
$ O) }4 {, w- O8 A# R9 V/ Q - {5 b1 a& I9 {: i2 \! P5 d1 V/ M( d
- int3 x+ D* v7 \9 A; i, U/ [9 v8 U2 A" \
- status = 0;
* w$ H i R8 W+ E2 M$ Y \8 ] - char( y) ^8 A: w9 Q, D! |
- *message;
2 c& j% F0 b0 E( v3 P9 O- @7 g; M -
3 t- I6 b' D+ g- }' A/ \ - ITK_initialize_text_services( 0 );
9 n8 K4 u: S; l4 E' b0 Z* e5 D - status = ITK_auto_login();# I- {4 Y! z; W4 x; Y7 s' n8 `# L
-
8 w9 t3 L9 A' t - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");& J# J" ^+ O% s6 j# a& U
- else8 W; F/ _% E" a2 Q
- {
% G$ q" H6 t4 m8 b - printf("iMAN login successful.\n");( z/ X+ \! d2 ?9 C$ D
- ITK_set_journalling(TRUE);7 I3 D+ L9 X! G1 w
- do_it();
% |' e4 w9 G, L - }
6 f; g' p( u I m% r* q8 c - ITK_exit_module(TRUE);
( r' ~' i' _; [" ]1 H- K - return status;
: x( G# [$ j2 a8 T. O4 S+ K( j' e# W - }
复制代码
* @% P: B7 [ J
% g; S% L) \/ y1 r. j# v0 D: x9 @4 e' Q4 J, T8 K( W+ J# z
|
|