PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

2014-1-15 19:39:16 5499 0

admin 发表于 2014-1-15 19:39:16 |阅读模式

admin 楼主

2014-1-15 19:39:16

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

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

x

4 P6 o8 S' \$ w. gTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
/ m2 @* h: A0 D) F  T9 P
# K( d% S( v: U+ n) v9 v& h5 ^( f
  1. #include <stdlib.h>
    5 u7 ]8 v1 v) n- Q$ T* |  n
  2. #include <TC/tc.h>
    # b% `( I6 c- k" F0 H2 T
  3. #include <sa/tcfile.h>
    ( X, [% g2 M6 d
  4. #include <tccore/workspaceobject.h>
    ( d2 E. l$ e% ]* _. F1 F2 C
  5. #include <ae/ae.h>; L# {- w6 Y* N8 Q) b! [
  6. #include <tccore/item.h>
    $ h/ n4 Z: k: ?8 E+ i

  7. % c% a) k1 H! i! N5 o
  8. #define ITK_CALL(x) {           \
    0 s2 a; a# [) z) Q( |
  9.     int stat;                     \
    , B9 z) D2 q& h! y# @
  10.     char *err_string;             \
    $ J% F- R' Y/ m+ I
  11.     if( (stat = (x)) != ITK_ok)   \$ j1 J. L9 S+ r$ |1 Z/ ?
  12.     {                             \
      {, T1 X* e$ v
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \4 C8 [7 W3 i8 p6 ]& W6 ^- J
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \( _" W# g/ A' y; F3 t' S
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    ' }4 @8 U' x) C5 R- i3 _/ d
  16.     if(err_string) MEM_free(err_string);                                \$ U9 U- |! F) J1 Z
  17.     exit (EXIT_FAILURE);                                                   \( |! @/ g( \0 O
  18.     }                                                                    \
    . {. L4 J% m/ T5 G. T2 N# X, t
  19. }8 d, L# d, E7 Z& n
  20. #define EXIT_FAILURE 1
    1 z  k- O5 d" M* m
  21.         $ h9 X$ k" G5 R' a
  22. static void do_it(void)
    6 l' d$ N* i5 a7 Z2 [9 w
  23. {/ t; G' F. \3 S% b. ^
  24.     int3 W4 P5 c$ P3 u2 _
  25.         n_uom,
    8 Q, j, a/ ~% M9 g% G
  26.         ii;3 h' q  {8 S6 V* D4 S' B
  27.     char5 C3 x" e4 L3 |7 L( B, v
  28.         *name;5 z9 G: p$ L: [- }% d# ^/ p
  29.     tag_t
    * @1 V  z# x. ]
  30.         *uoms,$ m* F7 H2 P3 ^: Y
  31.         new_uom;
    # t7 o: ?( E' A0 c
  32.    
    0 B1 m' z2 S5 w7 P1 j) \8 k2 l. Z
  33.     printf("Before UOM was created...\n");   
    3 I- I/ T( A, |# ?1 G8 N0 m
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    5 [* h! M1 o; S2 g
  35.     for (ii = 0; ii < n_uom; ii++)7 N0 _" z' H) A7 }' `) [% R
  36.     {2 c& l1 k7 G: H+ I) ^
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    9 e7 z! ^3 V5 E, h7 {
  38.         printf("\t%s\n", name);
    ! A- n; G  g( D1 `
  39.         if (name) MEM_free(name);) h- ?' D7 G9 x) C2 V
  40.     }4 X4 {' Y* I# C% g. n( I7 w! \
  41.     if (uoms) MEM_free(uoms);
    1 Q1 M& x0 U3 n* F# O
  42.    
    0 j) J3 Y0 `. K$ p; k! W/ b3 q
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    8 a$ ^' V* n. a  H7 }
  44.     ITK_CALL(AOM_save(new_uom));+ j7 G9 @; F0 E
  45.    
      \- D" P% y/ ~7 \& r
  46.     printf("\nAfter UOM was created...\n");   
    1 T) |. J1 b' f: H4 {% `; N* z0 {
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    ) v3 g2 x6 x7 i& l3 {" f
  48.     for (ii = 0; ii < n_uom; ii++)7 d6 l! Y0 M& N& T
  49.     {
    1 z- ?5 e* ^* Q, R  z" w
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))3 h" X6 S, _1 `; s4 f: }
  51.         printf("\t%s\n", name);  D) }) A. A( m- O" R% F- Q& f4 h! B" H# @
  52.         if (name) MEM_free(name);
    * g* P& D3 J% A& F
  53.     }' U- O+ H5 I( R
  54.     if (uoms) MEM_free(uoms);2 D' J9 L9 N) K; R
  55. }
    ; S/ w! w7 J* y* X" J

  56. 1 {" g  R( Y- w
  57. int ITK_user_main(int argc, char* argv[])
    ( s" p! B3 R& u- G$ F0 n( \
  58. {5 O, p. ~$ \& r# P$ ^& P
  59.     int
    1 e0 x" w8 W8 U# n' E
  60.         status = 0; 3 f3 U* o9 v  p% O3 O1 ~: N' \' ]
  61.     char
      h- M0 X7 y% B$ O1 Z; K: S/ f
  62.         *message;
    9 B# [8 H) R' o* e* F
  63.    
    ! s! _, I, a( L; P0 ?  }% V
  64.     ITK_initialize_text_services( 0 );
    4 W; k5 q/ n3 \7 [9 A$ h
  65.     status = ITK_auto_login();
    & b+ k( v: [6 i3 d* N8 E" u
  66.    ' v8 k; N# s$ W6 O4 v' x' s
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    - l0 u0 E; v* o( _1 |! C
  68.     else( T6 s# V+ K$ o% H+ v( ?
  69.     {
    2 Q8 Z# }/ S& \( T
  70.         printf("iMAN login successful.\n");
    9 r( q7 q, F. E- L
  71.         ITK_set_journalling(TRUE);
    ; k9 j' w8 C: F9 v$ N' ~+ T
  72.         do_it();: C6 }& S, W- w1 d9 t' {
  73.     }9 l% J/ H: F; v  I6 b
  74.     ITK_exit_module(TRUE);# A+ [2 e$ n8 o7 D
  75.     return status;
    ; j. g, y  s' O/ T8 J! s1 q
  76. }
复制代码
( ^7 q* }- O) t+ T
, T9 M* y" k( H7 z

# Y0 m2 z: _9 @
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了