|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
- m' E! M. ~1 y0 N
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures4 H& q+ E- L; X8 ?
' I: t; V% c9 o" R9 B- #include <stdlib.h>
, ]2 x4 x2 d: Q j7 |3 U4 A - #include <TC/tc.h>
9 T1 v. r0 f1 E0 N6 F! ` - #include <sa/tcfile.h>
7 s" r* f6 \0 F; ` - #include <tccore/workspaceobject.h>. V) C6 H& h+ \: y- o. c
- #include <ae/ae.h>
# M( I r% v" ^; h; ] - #include <tccore/item.h> }1 c$ L- o" Q$ b7 A R! z: ^7 i
# O5 X+ v6 J/ I$ ^$ `% Y- #define ITK_CALL(x) { \
- U7 n: ^) ~6 p2 h- L0 v8 ~9 p @ - int stat; \
; }5 d3 H+ }2 Q1 |* T6 @ - char *err_string; \
0 \; Q y0 i' v; G; z+ R" x - if( (stat = (x)) != ITK_ok) \2 @. L- u' F4 I/ V9 z) G
- { \
2 J( I" c l; F I - EMH_get_error_string (NULLTAG, stat, &err_string); \
4 O1 Q1 q/ P* Y: v) W; X. S - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \! d! z) Z5 r6 a! v
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
* k4 z1 @; S. h! \" X5 A - if(err_string) MEM_free(err_string); \
[# @2 Z6 A# y! [7 M - exit (EXIT_FAILURE); \ I* p! u5 n8 }/ K% V- ~% L# ?$ B& }5 O
- } \( C3 w5 Q% L5 D$ m/ `
- }' Y, m/ h3 B0 g; h# t3 z
- #define EXIT_FAILURE 1 , V3 P* E2 M/ T' ?0 U, k
-
6 G5 v) @- [( I4 j8 ]) q - static void do_it(void)/ X' Z" n, n) p
- {
: i# |5 D8 }% Y7 w2 ? - int
0 ^# }5 }3 s0 B0 z8 Y5 S - n_uom,
1 G$ ]$ e7 W% Q - ii;. |3 i i# M: r0 t$ s8 ]6 i( B
- char- P' y/ v+ N+ E: ~3 z+ p
- *name;0 @, V R& }8 l0 a6 T
- tag_t, o7 `5 P! g' |- P) A, ]
- *uoms,
- u0 q5 `) g. q+ T# D5 i - new_uom;1 P c& I4 L% @# L- u! O" y
-
" s0 Z7 ], P9 {) S* N! c8 a1 ~# o% ? - printf("Before UOM was created...\n"); 4 ^/ ]" W9 z& d' B' u
- ITK_CALL(UOM_extent(&n_uom, &uoms));# ?3 h/ S% a2 e7 f# M1 n
- for (ii = 0; ii < n_uom; ii++)" J$ v; {' p! W: Y+ |) P( w4 t
- {0 j; }* j& |0 A4 o5 t2 B; j' Y
- ITK_CALL(AOM_ask_name(uoms[ii], &name));: a7 Y; d8 m! I1 I) D
- printf("\t%s\n", name);
: O' {$ g% [# W6 f ` - if (name) MEM_free(name);: _1 J! L, _2 V5 Z6 L( J
- }
1 \/ j+ f" U- t/ t - if (uoms) MEM_free(uoms);
4 `- H& f. I8 X; H0 s3 E -
3 h' h7 [% g4 ^$ B - ITK_CALL(UOM_create("inches", "in", &new_uom));# s% e( n6 O* z" O. M5 {) f6 T
- ITK_CALL(AOM_save(new_uom));
! _4 M6 ]4 B$ r+ o6 P" { -
3 N9 |+ h* g4 d" l8 E# h - printf("\nAfter UOM was created...\n"); 3 a3 t0 s, C. I, ]
- ITK_CALL(UOM_extent(&n_uom, &uoms));' k: g) Y z0 {/ K+ W
- for (ii = 0; ii < n_uom; ii++) V- o0 h4 N, B5 V* B9 G% O
- {
7 d _4 ?, f3 x: `7 I7 M! f' h - ITK_CALL(AOM_ask_name(uoms[ii], &name))
# e) v9 _/ Y/ g% O" o- v - printf("\t%s\n", name);' f7 v* ?* A& d$ n) O
- if (name) MEM_free(name);
; W* n! I+ t8 [3 ]# N3 R - }7 u9 R P) t: k1 R* M7 |# J- S
- if (uoms) MEM_free(uoms);! v" c w3 Y \; P4 g2 u
- }
. K$ L4 n; O& ?$ p. E - 2 V' x3 f: m4 S1 y& Z
- int ITK_user_main(int argc, char* argv[])5 T+ }4 h9 _" v3 b
- {0 H5 T7 j A5 J- i3 r
- int: b, X" i' b6 \$ H: m) o' N
- status = 0;
( v5 i2 @2 ^6 I/ r1 U8 I; O - char
8 g2 i f/ d6 J. n7 n2 T! ` - *message;0 t* O, x: f+ z7 n% d
- , Y0 W9 ~! M! ]' }# Z5 G e
- ITK_initialize_text_services( 0 );
: G5 G! |% H1 G/ U# u4 @8 a: b - status = ITK_auto_login();
3 H7 m5 K2 O- G( d' y -
# `9 u* l5 m, l& B# b) L' k. e - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");0 C3 d. f# i7 R
- else
# Z N7 [$ z/ z# k - {
3 ~3 Z$ n0 X! s8 x7 N - printf("iMAN login successful.\n");* y* }) p6 e' o6 f8 V
- ITK_set_journalling(TRUE);4 \, \! y. f4 `8 _/ z
- do_it();' X3 a1 c- W" k5 ]) G" o! p
- }
, k/ i9 K5 c4 \4 |+ F3 Z6 [& \* G - ITK_exit_module(TRUE);; w0 g+ m6 Q) P/ f- b. t
- return status;
" K. D0 w+ b. s# n7 X - }
复制代码 + M: L0 O4 z1 ~, l2 T. B! O
$ T6 |6 K9 g9 m* J# O1 X% z
& F3 H5 s" ~( H
|
|