|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
, d2 t$ }: v+ `' E. b5 Y/ v
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
/ j) z" ^- |- I& v0 V( X- E8 i9 n6 g5 y5 J W8 s. Y
- #include <stdlib.h>: R# \) V6 H b. _/ F! i
- #include <TC/tc.h>
9 d- m, E( ^# u$ Z2 ? - #include <sa/tcfile.h>
1 Y( W7 d7 H0 g/ w - #include <tccore/workspaceobject.h>
% d, N% @% n6 S( D! v6 M - #include <ae/ae.h>1 ^4 Q$ D. y5 P) W- c
- #include <tccore/item.h>
; h8 n' T/ g) x4 E. X5 f - ! ]: T6 ?4 Q$ [9 S
- #define ITK_CALL(x) { \0 z' d, d' L5 s
- int stat; \: g2 Y7 r/ A! i6 a/ d) a
- char *err_string; \! N7 n, d$ c X" R' @
- if( (stat = (x)) != ITK_ok) \
* P4 p1 t4 c- x. r5 X+ @6 H) B( ~ - { \$ B' O6 }4 A3 E% D" X
- EMH_get_error_string (NULLTAG, stat, &err_string); \* M- F, k! k. H0 ^8 m
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
( s2 `& k" P" l+ d: s7 H4 _ - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
! _& H/ v6 `# v6 l* B* `0 c - if(err_string) MEM_free(err_string); \4 K3 E. [. e/ S9 Z2 O; N8 V
- exit (EXIT_FAILURE); \
h" O& g& R! M5 q- J+ S2 g8 T - } \
/ j- v8 I$ W8 s5 |6 i' O - }
! F3 [, w% `2 \. s, c" K - #define EXIT_FAILURE 1
2 [# y+ v' v$ Z" c3 c! k -
3 k# ^5 c/ G/ c. x7 v! c: _ - static void do_it(void)
' t. q$ ^& R' l% [! ?( [ - {; z, M& ]/ T+ ?1 [
- int
1 F6 Z; T: \5 c. C1 j; s# ~ - n_uom,9 ^+ `' s2 y- O' A6 w1 n$ y. n
- ii;. R/ d* l* a! P; n8 r1 k/ m; J4 E
- char0 g1 m: _/ j. r) U0 U
- *name;* @$ N# t. k* l& g4 b1 H) r
- tag_t. Z5 R$ l) A5 W
- *uoms,, @9 K5 R1 Z. o0 |+ V
- new_uom;
: H; h% t. l, Q& C -
5 A7 ^# T8 S. @ N9 R - printf("Before UOM was created...\n"); # I# {, z) Y4 Q. g9 B& L) ^6 j
- ITK_CALL(UOM_extent(&n_uom, &uoms));1 I0 J* h3 j4 q; L1 A' G
- for (ii = 0; ii < n_uom; ii++)+ P* K' U" N5 m k5 B
- {
. D9 w0 v1 d& O1 k5 L/ w - ITK_CALL(AOM_ask_name(uoms[ii], &name));; u& b5 {7 ^4 Q
- printf("\t%s\n", name); M& W. q5 }4 ?! t7 w8 v$ c
- if (name) MEM_free(name);+ @8 K- {8 C! Z
- }4 T! R* W) b' C2 r! l4 c
- if (uoms) MEM_free(uoms);# i# b5 O8 @# R
-
" M% u4 j; d' h0 c# J* M - ITK_CALL(UOM_create("inches", "in", &new_uom));2 T. l( G+ l$ y
- ITK_CALL(AOM_save(new_uom));8 K1 o- s+ F* A- h+ N
- & M' _; L4 l) p% K- M: Z* R4 {
- printf("\nAfter UOM was created...\n"); 6 r5 Y* Q) R' {4 w* c) P
- ITK_CALL(UOM_extent(&n_uom, &uoms));) [: p5 I+ W# P9 N! R! X+ |
- for (ii = 0; ii < n_uom; ii++)" W0 S! {# e) Q* W: \
- {8 Y: U; l) H; A; Q0 S. l y; c& y) L
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
7 R, ^9 }: ]% A$ l7 e - printf("\t%s\n", name);1 y# ~: }# s/ v9 e, w2 K# X0 E
- if (name) MEM_free(name);
7 c4 p8 J5 T* e- }2 \2 Q0 d - }9 s: B2 c0 l$ W9 A4 A
- if (uoms) MEM_free(uoms);9 S3 J9 S+ i1 \
- }
9 P. L$ t# S' P8 {' T6 V
e+ V K( t' H2 a0 u/ S- int ITK_user_main(int argc, char* argv[])" c6 k1 `+ h# W3 X- o' i
- {
6 D8 G. I' R5 B: `$ |3 Y5 v" X - int
, E6 n9 Q6 @4 t- X1 E( y# H0 T- x2 G - status = 0; ! U# F/ g; @* A3 o$ z7 k7 z4 [
- char
. P+ c; X4 M6 ] - *message;
& R8 ]+ q) ]. M" B7 t% L+ g, @ -
! ~: u1 f( L* ]8 ~ - ITK_initialize_text_services( 0 );
$ q- x2 s/ O5 J* B l" f9 b - status = ITK_auto_login();6 b) P; k0 a& z! J& S; v) |
- " g' E1 u. H7 {$ Y+ H6 l
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");, Q- y& d7 V2 R+ u" g7 b$ ]$ p5 B3 S3 M
- else
# k" i) a9 I0 M* k% [. W) `8 u1 O; N - {
! U7 c d( } c Q9 Y - printf("iMAN login successful.\n");
/ `. `+ E: m: X$ H, _9 _& U" G - ITK_set_journalling(TRUE);
, ~& |7 \, }8 s5 V. }* R - do_it();# d/ }7 H+ b2 p% q
- }
6 S& H4 a3 G' k8 C6 u - ITK_exit_module(TRUE);+ d: t3 a' Y5 m( D
- return status;8 |. l# m: d) ~, L% ^
- }
复制代码
# y7 a4 }6 ^* G/ D' }) V: X* P
4 B5 T' D3 R. a! @! T5 J, U9 |0 B) h) x- g! A+ V/ ]
|
|