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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

& O, N2 X& Z0 N& ~7 a, o9 NTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
0 P- l$ E! _0 D: A' t, A, J( |, b4 V) j, F$ ~2 a. {
  1. #include <stdlib.h>6 t! Z# k2 Z' R; `. j
  2. #include <TC/tc.h>1 O# W" m7 r4 f7 }1 p, V. z
  3. #include <sa/tcfile.h>9 V2 p) D* z6 b& b
  4. #include <tccore/workspaceobject.h>- o! C5 [+ E8 I
  5. #include <ae/ae.h>+ D' _7 n) M3 Q) Z
  6. #include <tccore/item.h>
    6 \' e5 [0 R3 ~* `4 k

  7. , n, Y' J" A7 o  z+ l" g
  8. #define ITK_CALL(x) {           \
    1 R/ ^! {' R, G
  9.     int stat;                     \7 \! U7 d6 x) |
  10.     char *err_string;             \& m2 C: a" @- a
  11.     if( (stat = (x)) != ITK_ok)   \
    4 K; r  J+ V$ I+ G$ T
  12.     {                             \( n; D5 ^  d9 J' u5 E" W! ]
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \  W% a4 Z' x0 o
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    ) U2 |# a/ ?+ }) H" D" d# p
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    2 \: ~1 |  i- n/ ]/ a% J  p
  16.     if(err_string) MEM_free(err_string);                                \& B9 r# _4 Q. x
  17.     exit (EXIT_FAILURE);                                                   \% q8 \2 l' d* ]& L/ c
  18.     }                                                                    \
    ! n6 w$ B: ~& S2 M6 v2 k3 B
  19. }% Z' Q; E* ~1 @3 f  Z
  20. #define EXIT_FAILURE 1 # [: k. b7 O3 x6 h! c( x0 ]
  21.         
    4 W: E0 h* u# D' L2 b
  22. static void do_it(void)! y3 D2 d! Q) _0 V9 ~  U% y
  23. {
    9 O' r) {3 i4 h1 ~( Y' k
  24.     int
    $ T4 Q( w" O* b
  25.         n_uom,
    , ]! Q6 N8 L( a% M/ U7 l+ J
  26.         ii;* J. Q8 C9 m# c! ?% d
  27.     char
    5 q* m- @3 x* s2 ]3 x
  28.         *name;1 q. _/ S" W8 |# V* t
  29.     tag_t# d! Y3 F: T' C& g/ ^3 K, B3 R
  30.         *uoms,4 R6 K. L+ p6 [9 T+ [
  31.         new_uom;+ i1 ?& S; |! {) P
  32.     6 ?, G6 G0 ^4 a
  33.     printf("Before UOM was created...\n");    , `+ V  e8 S; d  ]
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));9 X% e3 |$ c9 d+ h9 H2 X+ D
  35.     for (ii = 0; ii < n_uom; ii++)
    8 G: T$ [7 [, _8 [' f$ d
  36.     {- J# t! f  k: F) w
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));. G3 K5 @9 ~5 s& _' i$ k6 v
  38.         printf("\t%s\n", name);/ y, a* m' L8 W* q* T
  39.         if (name) MEM_free(name);. l# p+ A  [& L6 N$ r. X
  40.     }
    ) G5 r5 z1 t" ]
  41.     if (uoms) MEM_free(uoms);' U: C$ f: [1 T, i! X1 n7 f+ |9 H
  42.    
    " q9 q( E0 E* t. T& |6 Z3 S
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    , _: _: u- m) g# [
  44.     ITK_CALL(AOM_save(new_uom));
    0 ~+ ?9 z5 I& D* ?' H9 r; C, |
  45.     8 M* q* B/ H8 ?& {" }
  46.     printf("\nAfter UOM was created...\n");     U5 ~$ @7 r1 p* F1 H5 @/ ~
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));  U. w" D1 e0 Y0 f3 L% ]# `8 M
  48.     for (ii = 0; ii < n_uom; ii++)
    * P3 B' r3 ]' F
  49.     {8 |9 Z/ p- V9 g* \8 b0 L, F9 ?
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))7 s% i( _) t' m, v7 F' p  X
  51.         printf("\t%s\n", name);
    * ~) g  S4 \7 H+ K- k* \: d( u
  52.         if (name) MEM_free(name);3 C0 g3 {% \8 h( E: Y& T
  53.     }
    & Y. {0 U% d5 d
  54.     if (uoms) MEM_free(uoms);
    4 ^) a& r, `' p# ~" o
  55. }
    # X  i% t8 p# s* o: _$ z

  56. 6 n% Z; Z+ z* s4 q$ J
  57. int ITK_user_main(int argc, char* argv[])- \. e* i5 o# A
  58. {# g" v- k1 Q& O! s1 \! J
  59.     int
    * F! S# `6 M: _& _: @* b
  60.         status = 0;
    0 P! I# K. E1 f1 H
  61.     char
    * w) C* a. ]. s) g# H& y- s
  62.         *message;) y- x7 S( O0 w) i. T- @6 W
  63.     ( Q8 p1 L% I; u4 q' A* i/ m. Z
  64.     ITK_initialize_text_services( 0 );0 Y0 }# F' J* |
  65.     status = ITK_auto_login();7 h3 s/ e# F( S3 l7 l
  66.    
      _, u2 `7 `) R6 L: H' @
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");# c5 c& t( b7 o$ H/ E
  68.     else6 G# o! u$ A# P: u, M
  69.     {
    - L) \6 K8 ?$ a* E7 k: J. I6 Z8 d
  70.         printf("iMAN login successful.\n");1 J) X, W! O5 a; c. b" l! t; _
  71.         ITK_set_journalling(TRUE);
    # `- r( u" v6 X$ |) ~* a7 b: d1 h" }* G
  72.         do_it();
    & g6 o- D; G# J  H4 i2 }: y+ H, }0 {! M
  73.     }$ X2 I% B# _1 N3 M* D, L6 h* N
  74.     ITK_exit_module(TRUE);/ s- a( A! A: F: W! j" _6 g% I
  75.     return status;
    1 I6 b0 l8 M( U9 K' [3 j) K  u
  76. }
复制代码

8 W+ g& S  Q. T& Q: T7 H) @
, t; l- Y- O! L: w: p$ o4 f( L( q" h" r: d" r1 q: j3 j) e+ p! V4 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了