|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& u E: t% ^/ M
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
! X9 v) m; p/ U/ H8 L/ K6 D" ~ c; f( s3 y1 H
- #include <stdlib.h>
?# L$ ]9 P% J5 r$ D1 J$ @5 O0 ~6 n - #include <TC/tc.h>
5 \4 w5 _$ F Q# g5 q5 Z - #include <sa/tcfile.h>
" }7 u5 ~6 V: o N% r3 T/ ? - #include <tccore/workspaceobject.h>' M( ]+ v& t3 O+ e
- #include <ae/ae.h>9 j4 x9 Z$ g0 k% Q
- #include <tccore/item.h>
' w) s+ T8 Y' M# q e - 3 [1 f; S1 m, [$ B o8 S& A% O
- #define ITK_CALL(x) { \
, E9 c; `4 A% W& J; g - int stat; \# K! n f9 ]& s) I) |
- char *err_string; \) r# m% n: d- Y4 M- v, R
- if( (stat = (x)) != ITK_ok) \# M. z( x2 Y3 c( [. O; N
- { \9 d: [* ?5 {: h
- EMH_get_error_string (NULLTAG, stat, &err_string); \
) s) F* ]/ C8 {! U - printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \# F6 Q$ K3 R" {) {
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
6 L6 \7 J- ]% I5 [ - if(err_string) MEM_free(err_string); \+ y6 @3 v( d0 C5 k% ~4 ~
- exit (EXIT_FAILURE); \; v* d! i% R, I) V+ l
- } \
9 f4 S d% U0 Y - }
# U4 H- I7 u" f2 k+ _3 D% ]( P - #define EXIT_FAILURE 1
! H# x" T: K8 Y -
+ @* c( ?- U+ g7 ` - static void do_it(void)
8 X0 O o* G9 S, c) f) z# M - {& n3 f" `9 @) A: f" G0 W
- int$ j9 i! r8 W. q, T" u
- n_uom,2 b4 f( h3 L3 u8 G/ D( m
- ii;
( f' s# k5 c+ M$ @2 m1 u - char& Z7 j6 s* f, C4 W/ T
- *name;! N/ _! @+ f' h m4 X o
- tag_t3 h l" B' C$ O
- *uoms,
, l# n0 g8 s5 A; q - new_uom;+ V/ _+ q% Y. e8 e p4 d2 U4 L$ v$ X# n
- 6 Z( B5 f& R8 |. K. S( [ C; {4 U
- printf("Before UOM was created...\n"); 9 @+ c0 t) I3 G7 @
- ITK_CALL(UOM_extent(&n_uom, &uoms));/ z3 e7 {0 d5 {5 N
- for (ii = 0; ii < n_uom; ii++)
; w+ g; d. A% L9 L: R - {
- p |6 R, x: w - ITK_CALL(AOM_ask_name(uoms[ii], &name));& R. `; Y( U9 r* o$ x' b
- printf("\t%s\n", name);
% j1 C" z* {2 E: f% v: G - if (name) MEM_free(name);
( n9 ~& H) q6 J4 `( R3 O - }# |4 t* ^: \5 Z2 j; ]/ z" G
- if (uoms) MEM_free(uoms);
* c) q5 O# H- D' | -
3 u& W$ q. |: g - ITK_CALL(UOM_create("inches", "in", &new_uom));
3 K' ]+ \, h. O+ X+ n - ITK_CALL(AOM_save(new_uom));; Z: s' y+ a: P9 h8 o1 H2 {# x
-
' v0 @. }( E- [' M - printf("\nAfter UOM was created...\n"); , K0 R; W+ e. Q5 i
- ITK_CALL(UOM_extent(&n_uom, &uoms));" B8 \- q& [6 X7 V$ Y* z, E5 O( R
- for (ii = 0; ii < n_uom; ii++)
' |7 k/ X1 O7 K - {
* O* X4 ?( `* t, z) o8 C* A - ITK_CALL(AOM_ask_name(uoms[ii], &name))
# @+ G+ E5 c- B9 _6 e7 \2 k- ~ - printf("\t%s\n", name);3 y( q4 T* t; ~4 @2 N. @
- if (name) MEM_free(name);
) Z( d% ~- t/ S n1 D - }# }: ^4 V5 v) d3 X
- if (uoms) MEM_free(uoms);
V% N$ `/ Z( v, y - }
6 }. q' |! H- a2 |, O: n
7 i3 Y2 ~! _9 v* g) O1 i- int ITK_user_main(int argc, char* argv[])$ c0 Z6 \% D+ {+ {, t
- {
f& F1 N& o6 J$ ] - int2 R$ ]1 w( h+ F
- status = 0; ! c; w4 Y8 K/ B
- char
/ Q' k+ O7 ?! V1 r - *message;
$ {6 `1 K7 G, B+ s1 Q -
% K& T( S5 q! Y9 L I# _% B - ITK_initialize_text_services( 0 );
! Y8 M7 q# F5 @ G# H - status = ITK_auto_login();
1 a2 c J: [! I: A9 V; Q -
" H- \: ~& _9 I) ^8 ~ - if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n"); j F8 R( |8 I, \/ U- c
- else
8 }* ^2 ~, K+ K - {
w5 O+ ]: Y& R; c, ~: U - printf("iMAN login successful.\n");
; F2 V" L) u o- m - ITK_set_journalling(TRUE);) \/ e, N' L- a' `+ S# ?
- do_it();- S i. k( l* x, r! p5 l$ @
- }
0 A4 _8 p$ g/ o5 d ]& } - ITK_exit_module(TRUE);+ T0 f9 h4 l# z" d% {- f1 Z7 ~
- return status;6 z! _' Z; y$ h: l7 ~9 A4 v6 ^
- }
复制代码 ! y0 ~, i/ h4 z9 y! w( U" f* w" Z
/ E, |1 U5 X$ j4 H2 w- l% w
" Y; y+ G: ? C/ W( ~8 i+ d |
|