PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x
2 [( Q! J% S, P
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures& n" U! J& K) Y6 V- X" H
1 ^6 m9 g: I/ s4 ^& p' I6 b; o' d
  1. #include <stdlib.h>8 I8 C+ L7 V; E+ }5 `0 O
  2. #include <TC/tc.h># P% a) _7 {/ F! e1 E5 C+ A. U
  3. #include <sa/tcfile.h>
    : S% `) m- b2 U; w: W
  4. #include <tccore/workspaceobject.h>6 \" m+ S, T! ]/ v- s% t# d: U9 Q/ d
  5. #include <ae/ae.h>+ E5 B, ]$ f5 ?5 ?
  6. #include <tccore/item.h>. K& P' p! ]2 q$ X
  7. 1 s6 J8 L/ U  `5 A' M; A
  8. #define ITK_CALL(x) {           \8 h. B6 L# d  c
  9.     int stat;                     \2 ~: [7 N' G; v* U) _# X( C7 L
  10.     char *err_string;             \2 [' Y. e/ V8 @' ^2 ~/ W9 p1 f: c
  11.     if( (stat = (x)) != ITK_ok)   \3 f3 V; K- w$ J4 |5 I! [( ^8 c
  12.     {                             \( ~; i3 T1 t7 ^* [5 K7 ?
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    6 |5 _% \' }3 |5 K* r& O
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    6 K1 d8 _* n6 n9 ~) j* |# i
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \6 p2 ?. O# O6 [# @  G
  16.     if(err_string) MEM_free(err_string);                                \
    0 j) D" }$ O4 K1 B8 I
  17.     exit (EXIT_FAILURE);                                                   \
      U- ?0 P! ?: s
  18.     }                                                                    \( E0 {) L( _+ D/ p5 ~$ r2 v# q
  19. }  o( K5 R$ O0 O% X' ?. O
  20. #define EXIT_FAILURE 1 7 u0 \# y7 d* S5 P% S% x
  21.         ) U) b- w" u2 S5 A0 g0 M
  22. static void do_it(void)
    9 }  ~$ q  u9 K+ _2 ~0 ^2 w+ w
  23. {/ ?6 X& R6 @; Y  C  V) L, O5 N! ^
  24.     int
    # Z4 e9 t6 G8 b# U8 k2 ?
  25.         n_uom,- K5 M8 M6 c6 }( T" N; r
  26.         ii;
    ! p0 W4 q0 l+ U6 n
  27.     char
    : Z0 K. W' N( {8 t. x
  28.         *name;
    5 }; K- F  r4 L, G# w+ A- c
  29.     tag_t3 A4 {3 u# h& M' b! [3 H+ t
  30.         *uoms," z5 B6 ?! U- Z3 a; B6 |$ N
  31.         new_uom;: s. {4 ~1 h. @7 a3 |6 ^5 G0 U
  32.    
    , |5 p" U; S1 E0 J: r  M
  33.     printf("Before UOM was created...\n");   
    9 d. b  d% h/ F; ?: K9 e" q
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    7 k$ J/ K# G5 o) y* |
  35.     for (ii = 0; ii < n_uom; ii++)9 z# P$ h4 _2 q  L" r- k6 B  G* D
  36.     {* R+ E' k" z" x/ ^/ H: K4 `' r! l
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));0 r: H# h% S8 v
  38.         printf("\t%s\n", name);+ @' I8 k& [/ H1 N6 f
  39.         if (name) MEM_free(name);
    . x2 n/ a8 ^- ^( x7 K4 i
  40.     }
    1 L/ {" |3 l" u
  41.     if (uoms) MEM_free(uoms);
    ' I' l9 C9 L+ P" U' S
  42.    
    - d, c2 c$ u  U3 i- d! q& B' _6 c
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    7 U2 a5 B/ I0 ~. u  P; h2 Q
  44.     ITK_CALL(AOM_save(new_uom));
    - a$ v$ E8 \6 C
  45.     & J' z# N3 O" K" b7 R7 K
  46.     printf("\nAfter UOM was created...\n");   
    7 g$ c; u- E) u9 H
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
      W" F/ d) o7 S) U1 l) m
  48.     for (ii = 0; ii < n_uom; ii++)
    , L  Z1 b3 p6 @+ @5 Z* C' [
  49.     {
      N0 m4 u& H, |" d; D
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))% W1 F( {/ t$ W
  51.         printf("\t%s\n", name);
    , `- {- F* p0 f, t& t! k
  52.         if (name) MEM_free(name);
    + w/ [* l0 M2 W, N2 }
  53.     }* B" z. }  K& [. F, c8 R  c
  54.     if (uoms) MEM_free(uoms);
    ! T5 X& `8 ?8 o
  55. }. p2 u# |3 N( E/ G9 [
  56. 2 Q/ {7 N) O7 f
  57. int ITK_user_main(int argc, char* argv[])
    * T0 \8 G6 l: t1 }0 h
  58. {
    8 H( D9 }3 ]7 K( U% Q
  59.     int- W+ f$ [. L# j: G% z: s
  60.         status = 0; 9 I. i* ?* f' E1 I
  61.     char* x8 N& B) A2 T& Q7 j1 E7 j
  62.         *message;7 C. U" E" x7 W3 A. X, G% [: u
  63.    
    6 r+ y0 D* k; Z& e% P
  64.     ITK_initialize_text_services( 0 );0 V( y& w$ y  ^) W$ D
  65.     status = ITK_auto_login();* G& F& @& A% @
  66.    % s. z5 j" U. K+ y2 q/ c7 O% ]  l
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    7 u  m4 X4 W8 X  L1 r! Q
  68.     else8 y+ ?: t. S- N4 e0 K4 b
  69.     {1 m! r, |& N% @( E
  70.         printf("iMAN login successful.\n");
    ( m' n4 P0 ]* M) y7 S( ^- `4 b9 k/ P
  71.         ITK_set_journalling(TRUE);
    6 D- c, O4 h7 Z5 O
  72.         do_it();
    & F" W- p$ t( J4 f2 N9 [! |
  73.     }
    . Y6 ^1 V" f0 X, y8 m5 I, Z( Z
  74.     ITK_exit_module(TRUE);
    . }2 B" c. j5 _% p9 H; s$ b# P) j
  75.     return status;8 W5 Z2 u5 P" p2 r- l4 r
  76. }
复制代码

& Z. _3 L- z, s0 {* K
" y3 d9 _) p+ ^/ |$ ]* _9 B; j$ i: {2 R, h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了