|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 H$ O/ a% b" M' K+ p4 _. x: G `" ITeamcenter ITK二次开发源码分享:创建测量单位unit of measures
/ u6 n' N( R3 l; y0 |1 {% ?1 a: r2 M J. _ }, h8 `
- #include <stdlib.h>
3 f! ~7 \5 u g1 r& @' t - #include <TC/tc.h>
: o) o. n4 k8 P/ ] - #include <sa/tcfile.h>6 ~6 L/ B) J' N9 w0 x
- #include <tccore/workspaceobject.h>
# ?/ @. I( t; _* u: p) h - #include <ae/ae.h>
" X# R) P: Y! i - #include <tccore/item.h> M9 k7 n) N- \8 X* l' A$ c; }
5 z7 [8 C2 R# z- #define ITK_CALL(x) { \
; D2 [, G- I0 ~! t - int stat; \5 C# r) r s! h' H1 Z( b
- char *err_string; \$ O. I' O+ I% }) T" L- \0 A; T* X
- if( (stat = (x)) != ITK_ok) \
5 P' A6 V" n% [. f1 v - { \
6 t$ t7 p2 t0 E9 q+ b - EMH_get_error_string (NULLTAG, stat, &err_string); \% w$ |9 ~6 x8 ]7 {
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
6 q Q0 _+ o3 ^ - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \5 l8 w7 p- U( L; \
- if(err_string) MEM_free(err_string); \
6 {2 s1 Y1 g+ w* b - exit (EXIT_FAILURE); \/ ~* T4 A# Y5 o% ?9 {
- } \. [ M" L9 O4 ?& n; ?2 g0 Z
- }
$ b4 i6 J" Z0 A" [5 t" ` - #define EXIT_FAILURE 1 , V0 x- z; i, [8 O
-
/ J) n, `; e( C) F - static void do_it(void)
8 B" E2 d/ O/ V- i% a; G- |' }2 z) i# L9 o& v - {
b3 N1 Q7 n: M3 S - int7 {3 f# B5 n- J9 o/ c
- n_uom,* u H- R6 I; n8 B w* L
- ii;. [1 E! g, w; U! t" F6 K
- char
1 V6 W; t* D$ A6 }* h7 z5 a - *name;2 {; p; y3 l6 t1 ~
- tag_t
4 u4 i4 A: y7 { - *uoms,' Y* C2 @; b' y& M" u
- new_uom;
5 y8 R! Y% E, s6 P r7 @6 P" W' u! l3 f -
! Z, F2 t; ?- U( O$ E! o - printf("Before UOM was created...\n");
* e( _6 m+ }5 d7 [& v- R- { - ITK_CALL(UOM_extent(&n_uom, &uoms)); Q- c* j$ a3 |" d9 B
- for (ii = 0; ii < n_uom; ii++)
; b+ G. w+ X' f3 d+ s( Z# u - {
/ C8 L1 a5 Y( v+ i( q" | - ITK_CALL(AOM_ask_name(uoms[ii], &name));
4 m: n% ~% B# _! ?% Q5 u! r - printf("\t%s\n", name);
& F& B* G3 n6 `- b/ D( s6 v- x& m - if (name) MEM_free(name);
1 ^; s0 {/ g1 ^, P - }
, K" a: l* q1 b& y/ Q. o - if (uoms) MEM_free(uoms);) q3 ]% Q% z8 @7 K
-
4 [2 n# W- z- T8 u$ O. A& s/ _ - ITK_CALL(UOM_create("inches", "in", &new_uom));2 z9 [6 X% H/ j1 [5 @. h- y2 g1 g* x
- ITK_CALL(AOM_save(new_uom));9 C% ]# ~+ B# }0 x" v- b
-
# F% B- _7 g |2 Y9 C - printf("\nAfter UOM was created...\n");
) T- M' w2 `# ?; j/ Z4 r' y - ITK_CALL(UOM_extent(&n_uom, &uoms));/ l" ]; w- p. W+ F3 N* ^* o$ N% J
- for (ii = 0; ii < n_uom; ii++)+ N. U: b% V7 m4 { l0 J
- {5 j' H' `2 y* `1 f. Y( h
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
* ?& }) _$ |" m" J5 @ - printf("\t%s\n", name);
4 E, W3 ^, }# w$ O, ?# c! p - if (name) MEM_free(name);1 P4 R* E+ E& ~4 \, I6 }/ t" N
- }3 @( |( n, F. f: n7 `
- if (uoms) MEM_free(uoms);
- H! J- ^$ y) N8 h - }
! B( L* |9 r5 Z. f; L2 n/ A! c - 9 K8 _' y" g" _: M, Q
- int ITK_user_main(int argc, char* argv[])
% n3 ^# n4 G" y: G* V3 ?" \ - {5 G- n6 h: A8 v6 I5 z
- int
$ ]. i% M) F+ t2 U( X5 M4 v8 T - status = 0; , J3 Q6 w2 X l; T6 m! G
- char
2 @+ j9 j% Y4 P$ E* h; V - *message;
: {- P! y! p1 k. B7 t -
4 m. w; o# Q1 m# `0 c# ^0 l - ITK_initialize_text_services( 0 );+ G! \' q b' z
- status = ITK_auto_login();7 k5 f0 X% @! D X2 r z
-
/ Q4 X% w/ n/ ~( ~4 B) Y" O. l5 o - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");+ M9 \4 p3 o* K6 ]4 [
- else0 E8 G* E; V4 U% |
- {( @8 @: [3 U& }8 H3 n! B8 |9 d/ E
- printf("iMAN login successful.\n");
* \) b) W9 A5 d! L( M5 N - ITK_set_journalling(TRUE);+ t% }; ]: j3 z; a @ B, H$ g
- do_it();$ a5 `! j& T8 C7 f
- }# a9 r$ X- S+ m6 t8 Y. n& j. s" b4 _
- ITK_exit_module(TRUE);$ y( \1 T. e* p4 p7 [" m* D( a
- return status;/ }& d! n2 P8 o0 ~2 z- O
- }
复制代码 8 e- }. e3 N1 j( ~7 R9 a4 e
- ~& t! F5 q. I; } |
6 H! ^/ f& q' @2 ]6 P |
|