|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! I; f. Z1 ^( B* f) D3 p: k
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
7 @- U5 Z" x- B. O7 B, Z2 w9 J
" _2 U! ?+ L. `- #include <stdlib.h>! u* r2 c, X& Q3 h
- #include <TC/tc.h>- s7 ~) `5 {; X% j# m% t) b: r" Y
- #include <sa/tcfile.h>2 |1 a- `/ M d" ~% a* }8 P
- #include <tccore/workspaceobject.h>& o5 |% ~: a- u! X9 ^' a' E
- #include <ae/ae.h>
! X, L" z; [/ p, U9 N/ G, A: W - #include <tccore/item.h>" b! M1 q7 Q7 v3 y* ~( K
- " H4 n7 o* z7 z4 {4 z8 }- u' t& e& v
- #define ITK_CALL(x) { \0 C5 s2 ~% f) e, z. P: {: {/ U
- int stat; \
. a4 r9 `2 G4 V6 T' q - char *err_string; \ s" u6 l- f$ \5 p
- if( (stat = (x)) != ITK_ok) \
5 n* L; D4 Q# d& _5 F( X+ _ - { \* `3 Z6 |* }! `2 L9 a0 |
- EMH_get_error_string (NULLTAG, stat, &err_string); \ B: I# K1 _: w: e E
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \+ U' w6 {! b2 X" a& l7 ~* X
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \& V. }( E( }1 Z5 v: S
- if(err_string) MEM_free(err_string); \3 [1 m, @+ y: B2 _$ ?, ]6 i$ K
- exit (EXIT_FAILURE); \7 w# \' k" a: P
- } \) Q0 e Y3 Q& [; e* @7 z. Q3 e' Q
- }
8 Q+ U. s$ Q. T, S - #define EXIT_FAILURE 1 ( u5 y# n& V# l! R4 z2 Z2 h4 \
-
: X9 l0 p; Q; Z& n8 ~/ t - static void do_it(void)4 ]1 a! i. q5 H! j8 R, n0 e9 n" X
- {) g5 Z3 l0 P& Q7 h/ m; t9 I+ G
- int
6 o& _9 ^( Y1 a1 c- ? - n_uom,
( p- g! b3 w4 \ x - ii;
9 ]8 _: F& ~5 d$ I0 G, @0 m* q - char8 ]" ~7 d+ }# Y" n4 h: ?: U1 `( `- v& E. {) {
- *name;
9 `3 K$ ~. { Z( p - tag_t/ {# M6 f. _* K% q. c3 T
- *uoms,* S: y# `* L, _+ @+ ?
- new_uom;! z# P3 K, y, B* A
- 4 X5 k6 c; w2 p$ I- `$ v
- printf("Before UOM was created...\n"); : J/ q# Q, T- x$ v0 Q/ Z9 Z
- ITK_CALL(UOM_extent(&n_uom, &uoms));
- @8 q9 I' n# o3 R6 h2 I - for (ii = 0; ii < n_uom; ii++)8 f$ w% |. s0 H0 u
- {
$ ?$ `7 F: x9 {; s% z - ITK_CALL(AOM_ask_name(uoms[ii], &name));# ?( q) Y) `% v
- printf("\t%s\n", name);
r; ^0 e7 Q: s - if (name) MEM_free(name);8 j4 Z9 d* R4 q o$ t c
- }( i0 u6 W6 x- R" G' i& S. E e( h- p
- if (uoms) MEM_free(uoms);( q! E) s. x2 E
- ) S8 ~7 h2 t6 {- |% Z: p
- ITK_CALL(UOM_create("inches", "in", &new_uom));. A( t+ f5 q7 v- f* Y3 O8 d0 ^1 e: c
- ITK_CALL(AOM_save(new_uom));, B( {) U s/ s5 W; |5 Q9 D# H
- 6 q& c' X- _$ m: D R# M. O# j
- printf("\nAfter UOM was created...\n");
' o) [: E. V6 Q) O - ITK_CALL(UOM_extent(&n_uom, &uoms));( @* J0 L4 P7 M Z9 T* K
- for (ii = 0; ii < n_uom; ii++)
% E+ w9 y3 `. _% ` - {
8 T! \/ T6 n ^& }% X - ITK_CALL(AOM_ask_name(uoms[ii], &name))
- q+ {' K! \) y2 H - printf("\t%s\n", name);" n! L& o$ F; H/ f3 B" ?4 n" t
- if (name) MEM_free(name);( j* s0 f" y$ V* I8 w. b" z5 `
- }
8 L3 o- h2 U7 h' \+ ^ - if (uoms) MEM_free(uoms);/ R% K3 N4 V" U1 c) ~! G' P d" _
- }
2 [3 X+ f0 @ n ~6 `7 M4 [1 J- m - $ A2 Q: e0 i! y3 k# ^$ q! S* T8 ]
- int ITK_user_main(int argc, char* argv[]), U+ F% B2 |8 o0 U* f1 h! E
- {
% y& a9 \$ z& S5 ^% W( ]! ?* r! ]; Z - int
8 ~/ L+ Y J( X - status = 0;
% P& _. {5 y% t: Y4 `) a - char
4 s! |$ c) ^' x* c5 s0 V( G$ D - *message;
. y6 n' o( E9 V: k -
, c) l: b- j6 W% c" b& @& H# o - ITK_initialize_text_services( 0 );9 |' D5 c% V# O5 {0 g( j
- status = ITK_auto_login();
3 Y8 G1 S3 E( q3 h1 \# } - 5 L8 B. w5 D+ m
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");
8 R, T4 h$ N! D! @ t5 y" M# b4 C - else8 p" l: v* x# L/ k, P. K! P
- {' Q2 d# L4 M3 n% I/ P
- printf("iMAN login successful.\n");, v3 X& _! x- @$ c6 x k3 h! M
- ITK_set_journalling(TRUE);
: x8 W7 T% a8 s$ \! y - do_it();2 \$ b2 t) n: ^+ i
- }
9 J" m9 @- ?- N8 S. M6 ]' }/ P - ITK_exit_module(TRUE);0 V, O# L, y5 R- G
- return status;8 p0 Y8 N ?; o1 I0 Z) X9 {
- }
复制代码
2 ~% D+ l$ t2 |9 X8 c0 c5 i# R
1 F( h* D0 O6 d1 e
0 T. S# h3 a1 F: K |
|