查看: 5584|回复: 0

Teamcenter ITK二次开发源码分享:创建测量单位unit of measures

[复制链接]

4

主题

3

回帖

38

积分

管理员

积分
38
发表于 2014-1-15 19:39:16 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

×

1 h6 |0 K$ l8 x7 n& ATeamcenter ITK二次开发源码分享:创建测量单位unit of measures
9 S( `) Q6 b, N( h9 t4 p: a8 e$ y% V  L( L; R& N7 N; }
  1. #include <stdlib.h>
    % O$ [- M* R8 B4 U/ _3 Z! g3 L
  2. #include <TC/tc.h>, Z3 t6 v4 W+ B7 K+ k
  3. #include <sa/tcfile.h>
    8 F+ e/ [3 g0 _  e% i* e
  4. #include <tccore/workspaceobject.h>
    ' |& s1 ?2 }( y, f0 ?
  5. #include <ae/ae.h>/ a' z5 v* ?2 U
  6. #include <tccore/item.h>, Q4 G5 c4 a* B5 l9 J
  7. & ]8 q: X4 x  a- E. i8 f
  8. #define ITK_CALL(x) {           \
    - q6 h+ v! q, Z. h( ~5 h
  9.     int stat;                     \
    $ Z1 z' h  [) G7 N; X) i
  10.     char *err_string;             \
    * r3 d" J+ P  Y2 y
  11.     if( (stat = (x)) != ITK_ok)   \9 B0 N0 O; t  j) d
  12.     {                             \8 I' t1 V# b& ]: R
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \! P, T) F* e9 T5 d+ r  h
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \/ B, k; s: t6 }
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    : {. \2 A: m9 ^: q" w. E: y( N
  16.     if(err_string) MEM_free(err_string);                                \
    1 h# @9 J, [( Y, d
  17.     exit (EXIT_FAILURE);                                                   \
    * n+ ?$ r& F  P
  18.     }                                                                    \( J4 u3 T( {+ n* G6 m
  19. }
      Z4 I' q9 m! l# G( Q0 z
  20. #define EXIT_FAILURE 1
    ' Q4 b& ^$ ]; }, |4 ?
  21.         : S2 f$ L) j9 E, |9 m* |
  22. static void do_it(void)- Z5 Z5 H& w! R& |( W* A
  23. {
    3 n1 t6 T" o' J& F& Q
  24.     int
    % g+ a1 ?8 C- R* j- g6 L
  25.         n_uom,
    $ G- E: D( \- M4 T# Y9 y3 ~
  26.         ii;
    9 Z7 `9 w4 [! Z; f0 [2 M- l; x
  27.     char( y, w3 \  q0 u* ^7 Z, Z
  28.         *name;" M# s" t4 C% f6 M
  29.     tag_t
    - M1 v; r9 ^5 W, q
  30.         *uoms,& [/ H9 Y, ^. ~+ h
  31.         new_uom;- f- L; u' a2 s3 s% y
  32.     + P, z2 G) A+ C3 H( k( O
  33.     printf("Before UOM was created...\n");   
    ) T7 i3 G8 M( N$ P; g* m) ]! U
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    - T6 I4 b, J+ e2 e
  35.     for (ii = 0; ii < n_uom; ii++)2 w6 w0 I9 X. n, w7 `
  36.     {
    8 l. w6 E: W3 U+ r$ |' x/ t8 b7 o
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));: z0 y( b+ r3 f) h
  38.         printf("\t%s\n", name);) s1 v$ ]. e8 Y4 Z
  39.         if (name) MEM_free(name);. L8 b% m% i+ U0 G$ T: _! ~
  40.     }) {" b. T! `5 ?; z/ `
  41.     if (uoms) MEM_free(uoms);3 H' }0 y' V* M3 j( n1 d
  42.    
    + r0 @: `) Y% s/ @( U& p
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    & B1 e# k, [% w  K" B
  44.     ITK_CALL(AOM_save(new_uom));
    9 h! \/ i8 e9 w; _
  45.     ! z. Y6 B2 M* ]' T# m
  46.     printf("\nAfter UOM was created...\n");   ) \  I' }6 B4 O( ~4 b
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
      K4 |2 C9 ^# T4 k, K
  48.     for (ii = 0; ii < n_uom; ii++)
    2 A9 |4 }* a# i
  49.     {: }7 U& Z5 k0 x$ ]- `8 O$ m
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    * @. {4 J* I  R; X
  51.         printf("\t%s\n", name);
    5 g9 L; P4 u1 J
  52.         if (name) MEM_free(name);- H' ]# w2 e  `" V! F
  53.     }9 K# z' I% e0 @  U
  54.     if (uoms) MEM_free(uoms);: Q& @6 M" c; V" f
  55. }& L  I" H  P  d" o1 y5 J

  56. 5 {0 p6 ?0 y$ [
  57. int ITK_user_main(int argc, char* argv[])
    8 R5 q) d8 N7 T) J2 l' O6 i
  58. {' q! N4 t( ^0 N8 G/ A0 q
  59.     int1 e, k' o8 K  L
  60.         status = 0; 1 N; T) ?5 Q5 K- a" ?+ ^
  61.     char
    ) m8 \# A- ~1 \) z- g7 A+ D3 ?/ T
  62.         *message;9 r! i1 a0 s6 t+ F3 T
  63.     ! v. _+ |7 _% ^( m
  64.     ITK_initialize_text_services( 0 );5 B! K, f2 x& x
  65.     status = ITK_auto_login();
    $ O6 M" g3 {/ p
  66.    , s; O6 k- n& v5 d! r4 i
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    ! |$ `5 b" g6 l+ e; {3 s3 H' C& X
  68.     else9 P# K, P. k! }/ p" \" g2 ~
  69.     {8 u* X( i: r1 I+ W  `* s; S1 z
  70.         printf("iMAN login successful.\n");
      H: i1 @7 h/ y# e/ V- `
  71.         ITK_set_journalling(TRUE);7 P, F( I# S8 c+ t5 l! C
  72.         do_it();
    ! g4 s1 q3 S# g) _! u; k& L
  73.     }
    / S% @5 f' t1 i9 i8 R/ J5 A; \
  74.     ITK_exit_module(TRUE);
    . D0 X/ `( k) P$ l) U$ I% X
  75.     return status;
    0 C1 r6 Q4 X. L
  76. }
复制代码
7 Q9 ?  ^8 V3 X) T2 \" M

$ p; \' k& u% ]4 ?
2 J2 u" W7 l. y5 n3 X+ F6 I  z# g
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部