|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' e0 h! c5 r# S) r4 H vTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
+ ?3 v- K5 Z* r! T, v8 B+ E' D6 i9 c) G1 q' \6 q! W8 i* @1 l( v
- #include <stdlib.h> j3 B' r3 r1 a
- #include <TC/tc.h>
1 T7 i7 h/ }' x5 ~" p+ c - #include <sa/tcfile.h>
+ q4 h8 ^- C' G8 G0 i' S* _; p1 f - #include <tccore/workspaceobject.h>+ }$ Q5 w; [8 G$ ~3 H! f* ]- r
- #include <ae/ae.h># p0 ^9 P! j n; [
- #include <tccore/item.h>! Z1 f0 y. Y4 B" c
. S+ L" }" H* C- #define ITK_CALL(x) { \2 j4 R6 j# Z' h4 T, n7 i
- int stat; \1 j. R5 \+ D; n7 Y R! a
- char *err_string; \5 B) M9 ^ y0 r; G
- if( (stat = (x)) != ITK_ok) \
: P+ i# F9 V, C7 W5 @ - { \+ m. K2 {- X" l# L$ L1 h4 ]
- EMH_get_error_string (NULLTAG, stat, &err_string); \7 J5 t$ H$ \* q* d4 l
- printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string); \
+ p ]) p5 n! t$ z - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \: t h- ^& S5 d# Z
- if(err_string) MEM_free(err_string); \
4 u6 P+ N& }8 T - exit (EXIT_FAILURE); \- ^: L) l1 D- e! g: f
- } \# c% x4 Q. P; Y( D& I: L7 {6 e! A
- }
0 t& \. |- Q/ B( z8 A - #define EXIT_FAILURE 1
* G( V8 L, R% c, A9 ~ -
/ u4 A& }" M: g% S - static void do_it(void)
: l: @- E, m Y) _ - {
0 z2 K/ H( r4 ^5 M( j - int( H; Q2 l7 n( T0 a3 g8 ]1 i
- n_uom,
0 P! R* `; L3 B% C2 ^" G - ii;
7 f' }' R9 S( @, a, R - char3 v; ?. N* Z8 V
- *name;5 V+ \; y c- f% D
- tag_t% P7 Z2 c) f- y: M: {4 V
- *uoms,7 _& h" m$ {0 k$ e
- new_uom;
- w! [; e9 h6 X -
`' _) ]5 O0 c* u0 s% G - printf("Before UOM was created...\n");
% S- v7 z" b! a/ Z) T - ITK_CALL(UOM_extent(&n_uom, &uoms));
4 Z- j$ P% T- E' k. | - for (ii = 0; ii < n_uom; ii++)$ i" E$ t; R9 D+ ^# ?, N% {; O
- {
. B* l q7 p+ D0 Z, ^ - ITK_CALL(AOM_ask_name(uoms[ii], &name));
' r5 u$ t# C) U' J" O6 y - printf("\t%s\n", name);# a9 h; [2 A; b$ y
- if (name) MEM_free(name);7 w3 K G4 W/ j' N
- }
% s5 v3 H9 H* {% f7 ^ - if (uoms) MEM_free(uoms);
- ~3 B* |" f- _, h8 P) A6 U3 v0 p - # X9 U" @9 _1 g" Q7 h8 ~4 G
- ITK_CALL(UOM_create("inches", "in", &new_uom));
# J; @2 k) C T( C0 e - ITK_CALL(AOM_save(new_uom));: ]- n1 w7 F% F
-
0 Y3 i" Z# Z+ Z( |8 g( m1 [! F - printf("\nAfter UOM was created...\n"); # {9 }: `( M7 u, A8 T: t+ j
- ITK_CALL(UOM_extent(&n_uom, &uoms));& I+ ]6 g- U$ J% T' ~3 R
- for (ii = 0; ii < n_uom; ii++)
, ]! L, E* t9 a5 ? - {, P4 q1 L: w p' o2 ?4 H$ T
- ITK_CALL(AOM_ask_name(uoms[ii], &name))
9 f2 [0 i6 A' X- C h - printf("\t%s\n", name);
2 w' E l! v" _& V2 W5 U9 n - if (name) MEM_free(name);
) o# v# C- m' S+ K: l0 r - }
& X# i5 _8 z# {8 k8 b - if (uoms) MEM_free(uoms);. E) j5 ^7 e7 X1 U) c
- }
! b' { a" K7 t: A9 C- H - + D( g& y$ i& {" i. w8 @7 x
- int ITK_user_main(int argc, char* argv[])
. u: L; r4 p! X - {5 [9 d2 t+ p. f9 X
- int
! w' d6 f8 ?/ M3 D - status = 0;
, n' q# L6 {4 i* H! c$ \+ v. y - char
0 r, h# q+ o9 x2 ]0 o - *message;) ~; R$ a0 W0 g' o- A O" u0 ?
-
5 y) v2 g8 H- \" ~ w" s" _ - ITK_initialize_text_services( 0 );
+ L. Y0 `5 j$ R* c - status = ITK_auto_login();
3 `/ C; R9 ]) ?: J8 x, H6 r - / g7 w& n7 A7 F+ w u1 P2 s
- if ( (status != ITK_ok)) printf("iMAN login NOT successful.\n");5 ]& ^. e; f6 T! I* w# ?- [( d
- else
2 F% n$ w: F% V! T$ f3 s/ |. p+ ^ - {, }$ S: E7 X2 d6 e/ i" \+ ?
- printf("iMAN login successful.\n");+ H/ e) L6 g/ K' ?4 Y5 \ x
- ITK_set_journalling(TRUE);
% t. p$ e8 `. Z% S- k - do_it();* p k' v- C5 Z/ d, D
- }
0 Z0 b: K- Y' ? - ITK_exit_module(TRUE);/ Q; d6 l% Y, P$ g+ Z# o$ y+ V9 S5 R
- return status;
7 i- x6 L/ C' ?0 ~' A - }
复制代码
/ Y9 C, \( c% z2 O/ p$ D* A4 a0 Z" v2 [& L: j+ e: y# r
3 _( w4 R- V9 |, a% w
|
|