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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x
3 L6 z. Y' z. i/ G
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures% @' E+ ]/ L6 z7 n; i) J- n+ [( ~
' N: }9 |& Y: H2 T+ Q
  1. #include <stdlib.h>
    & o1 v6 }4 t5 F) H5 J( r. W  a
  2. #include <TC/tc.h>
    % k( l! Q% Q" Q9 g" Z4 A3 v& h/ C, m
  3. #include <sa/tcfile.h># j4 L/ s7 c; f, T4 {, V! y# d3 d
  4. #include <tccore/workspaceobject.h>4 y- _8 R  y9 C* A/ M- Z& ]
  5. #include <ae/ae.h>
    6 l4 U: V& l5 p  p' a& K$ ^
  6. #include <tccore/item.h>0 _% c, x3 ~8 R7 x( V/ a

  7. ) f: E/ u  N1 x# d- A7 L
  8. #define ITK_CALL(x) {           \- d; a& E; t* M7 F
  9.     int stat;                     \& S5 u% f$ v, [  R1 h* X
  10.     char *err_string;             \: T0 O9 S8 |# [$ j$ k* S
  11.     if( (stat = (x)) != ITK_ok)   \
    6 ~7 u/ k/ D0 Z2 L
  12.     {                             \
    3 Z) }. H6 R9 b' O: M! w1 @2 e. p; I; o
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \& i$ X' G- f. y4 B) I$ v
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    5 E4 w! h# T0 F7 d/ K
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    % z& \; Q  ]4 q" l  Y
  16.     if(err_string) MEM_free(err_string);                                \6 u) c# _1 O/ X, r' I/ V
  17.     exit (EXIT_FAILURE);                                                   \
    : S, b! t! f! S6 ]) z* I+ X1 `
  18.     }                                                                    \
    : ~1 F; ?5 E& r" [9 W# c! b4 [9 g
  19. }
    ( x/ W% ?# `! S+ G0 }  N0 y
  20. #define EXIT_FAILURE 1
    5 G8 F( W1 j3 L& d) m8 F6 U  Q
  21.         
    & o, s3 Z. s" u; e+ ~
  22. static void do_it(void)4 B/ U/ @# y8 N+ Y
  23. {) a0 Q& c$ x) T
  24.     int4 E& _; L( J: X% [
  25.         n_uom,+ Z) x+ q# P+ U$ G' z
  26.         ii;
    ( P5 n8 _0 E& H2 r+ E* g
  27.     char$ M# K9 G8 M: G" W9 b8 J  S9 T
  28.         *name;3 \6 p1 s- B: A9 d( w, ?
  29.     tag_t
    , j9 U, x) R0 b" {2 ~) _! p4 h. Y) C
  30.         *uoms,7 C# [4 k/ l9 G/ K7 H0 x
  31.         new_uom;
    4 f. S  k! x# g7 q: ^1 Y0 f! l
  32.    
    5 g, u- V6 G- ~8 s( f. X
  33.     printf("Before UOM was created...\n");    ) W! R& h/ x) ]8 ]4 f5 G8 I+ {
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
      K: {- Z# F9 K  O; u$ t! |
  35.     for (ii = 0; ii < n_uom; ii++)9 P7 s% K& S* z0 u1 O
  36.     {
    2 [. h+ g5 `- [; e% R
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));' }' u' D! O# p8 n' _! n: E* F+ J
  38.         printf("\t%s\n", name);' U5 e' b; V: f5 q! u1 v1 ]2 F
  39.         if (name) MEM_free(name);
    : i4 {6 q! @4 [; n
  40.     }
    ' _4 U( H/ J: R# J
  41.     if (uoms) MEM_free(uoms);
      v* `' r& [; y& |: s; R0 w9 @& X
  42.    
    # z7 s; V# b  g9 {" U  B& O& b
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    7 M( o4 F8 ?5 d# k& S, X5 Q5 p- C6 T
  44.     ITK_CALL(AOM_save(new_uom));: k+ z/ v& P$ S2 m- C' f6 {
  45.     5 S7 G5 U; i  [  M- N9 |) i2 m
  46.     printf("\nAfter UOM was created...\n");   % |3 g+ N9 d2 M! K5 w; ?
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    $ A3 U2 A9 Q# R; z9 t$ z
  48.     for (ii = 0; ii < n_uom; ii++)! X6 Y( E. h' ^5 e' K: y0 T7 a& ?
  49.     {; Z2 f: V) F+ N$ ~/ `7 [9 _& |
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    6 Q) F2 M6 S( g$ G3 A" B$ v' C
  51.         printf("\t%s\n", name);8 M; A4 S. a7 a7 k# o/ A  C
  52.         if (name) MEM_free(name);3 ], H% ?( x& S! B) n$ u: k5 b% X
  53.     }  o7 y! B" i& ?" U6 Z2 r
  54.     if (uoms) MEM_free(uoms);& f7 p3 R' X$ n7 C
  55. }
    : i: X0 |4 T" A( b

  56. ' n& S: P( M0 t3 j& H
  57. int ITK_user_main(int argc, char* argv[])& z5 `8 ^5 A" k0 H! \0 [. J
  58. {
    0 }: y- k/ p8 Z) o, h2 k0 p
  59.     int
      w* e" _+ q  l! `6 z% G/ m5 `- w( }
  60.         status = 0;
    1 G, e7 \" `' R# n" i3 C
  61.     char( b4 w: E! ?" m, Q6 S0 K& m
  62.         *message;6 |% P5 X, g! C* H
  63.    
    0 R& l( u8 K, ^8 _
  64.     ITK_initialize_text_services( 0 );% k2 y. f1 }/ W0 [* |1 H* M: h
  65.     status = ITK_auto_login();
    : l( c" z8 S% a( j( f- d. C" x0 Q5 O
  66.    
    : S- E/ x6 {+ V& H
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    ) J5 ?! V% |& d+ d+ \3 L. K
  68.     else( F* l! e; I3 Y. i, Z- f
  69.     {
    . Q# L5 C, q$ m) R
  70.         printf("iMAN login successful.\n");9 N6 }$ T' T8 n1 A; @
  71.         ITK_set_journalling(TRUE);
    # U9 X: p7 R8 f' X5 {  c7 b+ ?
  72.         do_it();2 I1 |" z9 O5 d, V. p' M- }# ]
  73.     }
    & ~2 V7 q6 ?; `3 n, N8 n7 f
  74.     ITK_exit_module(TRUE);
    0 _( {, M. y* K) `! a; h- \: z
  75.     return status;
    ' G# h, l* V& I' D9 B
  76. }
复制代码

- c5 ^& D$ f' u  }- C2 |# a
' j% h  U% Z$ u# K
# }* ^2 K* s% U& w1 T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了