查看: 5636|回复: 0

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

[复制链接]

4

主题

3

回帖

46

积分

管理员

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

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

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

×
& d, @; R/ j9 m  |$ g
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
# ~) h( U, L9 q7 H3 e( V9 w
8 e* B5 J5 l% l; N2 S* j6 z1 @
  1. #include <stdlib.h>5 g0 e8 d* n; ?0 ?# R
  2. #include <TC/tc.h>
    $ M" m2 K! e1 d: ~
  3. #include <sa/tcfile.h>5 C3 o! s8 {- k; ^- d6 U+ @- ~9 M
  4. #include <tccore/workspaceobject.h>: k2 j% R% ^6 x# k+ b0 X3 n
  5. #include <ae/ae.h>, ?- p1 f$ ^% n4 _
  6. #include <tccore/item.h>1 K2 W9 l* O# G9 C
  7. & @6 {% @" F0 @4 d: Q8 Z
  8. #define ITK_CALL(x) {           \* j4 M; T! s( o6 F$ @
  9.     int stat;                     \
    ; }7 W' e9 G8 M: F6 ~* b
  10.     char *err_string;             \* n2 `2 [& U4 h/ m6 g1 }8 }
  11.     if( (stat = (x)) != ITK_ok)   \0 V3 [$ {# w# k* u3 ?
  12.     {                             \) n; S# @! W; w- h7 m
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    1 P/ B$ E% |0 b% A
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    8 c% a0 `( g6 f. ?1 k1 z% V& }
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    # R* K" l% C) G) H# ]3 P+ H
  16.     if(err_string) MEM_free(err_string);                                \
    ! e" m/ g/ ?+ n, |  X
  17.     exit (EXIT_FAILURE);                                                   \4 K& R: _; X- Z) x; J. j
  18.     }                                                                    \
    4 p: m  A5 t, i5 L- W
  19. }
    1 n3 n8 b' {: v
  20. #define EXIT_FAILURE 1 5 J' U7 g% z  P$ j5 q4 _2 H
  21.         
    6 g( ]4 u0 h: H" V
  22. static void do_it(void)" @& s" m! W, A3 l1 U
  23. {4 S/ C. `  i" j0 f  R3 ]" G+ }7 J
  24.     int9 b# k  h0 {3 q0 i( i0 G* s  p
  25.         n_uom,1 I, s- g4 B* E; g
  26.         ii;
    5 K* y7 L+ D: H( M
  27.     char
    . n5 b1 ?* M. b
  28.         *name;7 e+ z$ v# `1 Y" O( D
  29.     tag_t/ r' v3 s5 F; ~, Z2 @+ j4 i" D3 m
  30.         *uoms,3 [7 E2 j! G3 y! x: K# I
  31.         new_uom;
      W  y' X8 }$ I2 d( [% f5 i6 w7 O
  32.    
    9 i9 d  m9 F- K/ T( S! C
  33.     printf("Before UOM was created...\n");   
    ! T: |: F, l1 }8 H8 v
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    * ]5 Y6 p7 v) V& o6 Z: X3 U
  35.     for (ii = 0; ii < n_uom; ii++)
    ' x" Z" F0 `, j6 g* a% T/ |
  36.     {* [4 Z/ v$ r! H% y
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    & E; o$ L$ V) ]2 [# h2 W
  38.         printf("\t%s\n", name);/ K7 ?: m& |* r, l- w0 ?; L' X
  39.         if (name) MEM_free(name);* d1 {' B) Z8 ]0 h' v
  40.     }8 o0 r- n8 V  g' `$ ]# E
  41.     if (uoms) MEM_free(uoms);
    , x2 a1 i* J  \# O
  42.    
    # V% D+ V5 b; d) k0 S/ o5 R8 {) z
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    7 V% l! a( A* k
  44.     ITK_CALL(AOM_save(new_uom));
    7 O0 p; ~5 t! t9 [2 }+ ?  n( x
  45.    
    0 O/ S; O8 x: v* ]# I( F, n6 O
  46.     printf("\nAfter UOM was created...\n");   6 v$ G, Z3 O, m3 G
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));5 x' `) b+ {8 e# z4 i
  48.     for (ii = 0; ii < n_uom; ii++)* Y8 c8 M, i" m: ?2 I. g( P! ~
  49.     {
    9 n' W) c. N7 a- z8 i
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    6 n7 P: _2 M8 {8 `% @# o  X+ o& i0 r
  51.         printf("\t%s\n", name);
      {$ P3 \0 y# b( L2 ~
  52.         if (name) MEM_free(name);
    ! ?$ ]0 Q/ N$ m  _
  53.     }
    , j4 Q4 b* l' d6 H
  54.     if (uoms) MEM_free(uoms);, u' W4 ?0 Y( {) L
  55. }9 w" w7 G0 Y$ e
  56. - ~5 ?% y5 S2 W# i
  57. int ITK_user_main(int argc, char* argv[])+ ~! X* V$ G7 a, `+ D
  58. {! @9 y7 |( T, o  W1 H/ h
  59.     int
    0 r) l. g; }0 F/ }
  60.         status = 0; 8 r; e, a' ~" @( O& J: d: L
  61.     char% D0 ~9 [6 q" H% w% R/ }
  62.         *message;
    & b8 o! U% ]* W, V1 v
  63.    
    / p! {( g9 q  r. T) @/ G
  64.     ITK_initialize_text_services( 0 );
    ' n) e9 N1 A- `" `6 c, f( s: y
  65.     status = ITK_auto_login();
    2 K+ y' d! |# Z7 s2 I# |/ n! u- w0 m
  66.    
    . e# S& R2 [8 s  \
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    . a2 f4 H8 N5 \5 y- u9 t
  68.     else6 R" ]" f% l: m) [
  69.     {3 A% V4 C+ A" w9 j8 f
  70.         printf("iMAN login successful.\n");1 f9 Q, a9 [" `
  71.         ITK_set_journalling(TRUE);" d7 {4 S& J9 f, _9 |+ F
  72.         do_it();
    , |8 ]. M; j; T$ P8 m
  73.     }5 g  }# J4 H2 S- B3 L
  74.     ITK_exit_module(TRUE);5 B, }% L7 L% j0 Q3 [
  75.     return status;9 b! [, W& G1 h
  76. }
复制代码
2 e/ w( t& N7 b& r, Q

$ G) T6 `5 j- q1 w. |1 V
2 @. t0 S( j4 `3 P& }! l2 E/ X
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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