PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

0 l: d: p, g. L9 m" @Teamcenter ITK二次开发源码分享:创建测量单位unit of measures2 ?$ L; C5 O2 b2 h

* S$ p$ L1 e/ Q' A1 z; N! }; A7 g3 w
  1. #include <stdlib.h>7 I+ g* X9 [, |* u8 d" f+ ^' s/ `
  2. #include <TC/tc.h># J$ K9 f, F4 J
  3. #include <sa/tcfile.h>0 p+ k- V3 l, g! G/ E" M" x
  4. #include <tccore/workspaceobject.h>% }! ]; B/ E2 W1 |  q9 ~% E
  5. #include <ae/ae.h>5 n% w; L" b# p/ K8 h9 G; P
  6. #include <tccore/item.h>' R' ?% g* l5 n  t8 r, H
  7. $ k' Q# |% a! S$ S  b, j2 k
  8. #define ITK_CALL(x) {           \+ z- y7 r$ V  ]0 n$ J1 p
  9.     int stat;                     \1 q0 \9 u2 q) t' V5 J) `1 g  |+ T
  10.     char *err_string;             \1 B6 K; }2 m+ a% `
  11.     if( (stat = (x)) != ITK_ok)   \5 v8 w2 Q, [! _0 ?2 H  T) Y
  12.     {                             \
    / e" `* k- ^, c. o- R% Q+ U; c
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \; P2 m0 d1 v8 U, I5 I! c
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \1 J' ?9 k0 L6 H9 r+ J
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    3 B! V6 w9 y/ i# m" B
  16.     if(err_string) MEM_free(err_string);                                \, w; W* x9 z% Z/ Z- e8 _+ s, M" `
  17.     exit (EXIT_FAILURE);                                                   \  d8 A; Y7 l) w8 `
  18.     }                                                                    \
    2 q2 A9 o/ a, u8 X/ k  R" @: L! ^
  19. }2 S0 \# M( q: }# a% j1 M
  20. #define EXIT_FAILURE 1
    ; |+ \) t. g3 e2 O# S% d. c+ b
  21.         9 @7 E" Y3 S4 ~* X6 d
  22. static void do_it(void)3 U0 L1 f5 z  ^* Z
  23. {" [( Y1 c, t5 J$ ~& s7 d
  24.     int
    3 q. O5 |# L. r+ [+ d9 R* z/ y1 m; g
  25.         n_uom,
    : X/ A# Q( w: a9 E
  26.         ii;  W( B4 t# o. s2 f
  27.     char# E. m" \: l: K4 ]* g
  28.         *name;$ M& D9 \* ?4 ~$ N
  29.     tag_t
    / ]& p: l' K3 A7 Y
  30.         *uoms,: N- f1 `9 ?+ I  r1 S: ?
  31.         new_uom;8 s# m  y8 n" h) H' w3 F: ?
  32.    
    " s6 k4 W" ?( H2 x1 ?" M
  33.     printf("Before UOM was created...\n");    * r4 I# L/ M; q* r
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));4 S1 Z# i; E: k: ^7 Z
  35.     for (ii = 0; ii < n_uom; ii++)$ j3 f6 L3 K- s
  36.     {( L" p% ^0 r& U4 {/ ^" k
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    8 F% i' M: C0 }
  38.         printf("\t%s\n", name);) [& j$ i& \) S4 Q' C% F
  39.         if (name) MEM_free(name);
    . {+ F& Q% L2 l# P, \9 K
  40.     }0 s" v# {8 ^2 w# v
  41.     if (uoms) MEM_free(uoms);/ x* B4 U* ?7 B1 N
  42.    
    $ _6 Y: X/ ]- z* W
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));* k7 p. A& C5 M5 }7 k1 N3 D2 r
  44.     ITK_CALL(AOM_save(new_uom));
    ' S( m0 h2 V- o
  45.     - B) p: `' Q" R  E$ L) R7 ?: L
  46.     printf("\nAfter UOM was created...\n");   # X- {+ o  i. }" G
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));) S/ P  s7 p# u/ m: T3 E' v  ?% O) E
  48.     for (ii = 0; ii < n_uom; ii++)
    7 f- D; D8 d9 Y, Q
  49.     {  ?7 L3 M" [7 @1 e3 _; _$ B
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    ( w4 Y$ v# |" E
  51.         printf("\t%s\n", name);
    - u) p% v, S- z, R$ ^7 W# o
  52.         if (name) MEM_free(name);
    , D: y% ]% Z7 q6 S0 R
  53.     }
    + N3 ]$ b) s# q3 i- c" D7 |
  54.     if (uoms) MEM_free(uoms);
    0 \3 n5 Q$ C9 q/ Z; Q
  55. }8 V9 {1 k; B9 q( ~& G% Z

  56. 0 X' X' f/ W' U( s
  57. int ITK_user_main(int argc, char* argv[])  J" {* v# Y1 M/ o( T, v/ n/ I! e! B7 I. p
  58. {
    , s  y0 n1 ], s( j& `( s$ l8 j" d; w
  59.     int
    % e# @% A; x5 [  o
  60.         status = 0;
    0 K- R2 Q' I! i
  61.     char
    3 j+ E! R& _1 f
  62.         *message;2 D7 n9 c# B3 W$ a( z/ k" y5 K
  63.    
    , p7 j0 _2 _0 Q
  64.     ITK_initialize_text_services( 0 );
    1 i6 C  L1 ^" l1 I' x
  65.     status = ITK_auto_login();$ I2 ~4 h2 O* E9 j" Q
  66.    3 N: G0 _5 W+ o4 `# B2 I
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    2 R" Q6 G2 L3 r6 I  R7 h# V& b
  68.     else: K- s, C6 I# I" @" W' [
  69.     {% |) r9 C& A7 U+ D" r9 ^) v
  70.         printf("iMAN login successful.\n");
    & b1 L2 o# h+ Q0 b7 ]2 M2 J
  71.         ITK_set_journalling(TRUE);  Y2 ^1 B( W4 q' w9 a5 w
  72.         do_it();5 G9 w. _) S3 Q
  73.     }
    ' Y8 h. B/ x# V& y9 j6 ~. C
  74.     ITK_exit_module(TRUE);5 T. @- i9 p/ J! z' m/ E
  75.     return status;
    , t" p* V* o3 H( l( j+ o5 m
  76. }
复制代码
2 e9 [- ^% N) U3 a
% a  ^0 e& m0 q) R  v

, ^& D$ T, t6 K! M) G/ 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二次开发专题模块培训报名开始啦

    我知道了