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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2014-1-15 19:39:16 | 显示全部楼层 |阅读模式

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

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

x
: y( E: o; B/ K; S4 F+ Y
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures+ m. \. o3 g. ?/ {( ~) D

) z7 @! z1 p+ s9 }" V! {8 _* b
  1. #include <stdlib.h>
    & t; W9 K! \5 d  s% M/ i
  2. #include <TC/tc.h>0 p; ^. Z2 `2 N; W
  3. #include <sa/tcfile.h>& e, Q2 N, Z4 u% ^" k
  4. #include <tccore/workspaceobject.h>
    , g! Q% d$ D4 v4 C7 p' |
  5. #include <ae/ae.h>
    5 i3 N" c7 F2 m- E8 F1 S) Y+ O: ?
  6. #include <tccore/item.h>& n& x1 c9 ~& Z% ~8 J
  7. 2 g0 \6 G* d# O* G& M+ {
  8. #define ITK_CALL(x) {           \
    0 A; w7 [% ]" D- t# ]5 L% b
  9.     int stat;                     \
    : B; X8 C# \( ^, F" r
  10.     char *err_string;             \
    3 Z% j$ |3 l7 A( {; l
  11.     if( (stat = (x)) != ITK_ok)   \
    . C& G0 I, ~+ D
  12.     {                             \
    2 M7 g2 P0 Y& q/ u" t- z9 \) h
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    8 _: z, {, _( h& _# v
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \% i8 j! L; x7 x3 k( ]
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    6 }% j% r( ]1 s. m4 e
  16.     if(err_string) MEM_free(err_string);                                \6 p# f. o( W6 f. ]
  17.     exit (EXIT_FAILURE);                                                   \
    ) r3 ~, Z4 n1 h1 B) f# U
  18.     }                                                                    \
    ; x8 j5 {$ G6 v! R
  19. }
    2 ~' [. Y$ z: A2 l% t9 W
  20. #define EXIT_FAILURE 1 ; k* }) p/ Q# k# f  ~' Z5 k+ b, M
  21.         ( i4 N( v3 @4 Q9 f" {
  22. static void do_it(void)6 G/ T% U4 k' s/ d: B# L
  23. {9 K' `  }( s, A( J! }
  24.     int' n+ Y" r' K% x: @8 c' C
  25.         n_uom,
    3 P  K3 W+ Z+ ?$ H; w! {7 x! L
  26.         ii;- s6 X4 Z4 M9 E- R0 ^; ~& E# v
  27.     char) v; H( Q; c% q
  28.         *name;
    $ n) z7 e" m( z2 k9 m3 G
  29.     tag_t
    ' ]  o7 R6 Y; z, q
  30.         *uoms,
    , Y6 f$ w) w/ Y8 I; U. _9 d1 I! o0 Y' {
  31.         new_uom;- y3 d# A: b& a4 B' b
  32.    
    ; w$ w  u7 C" g6 g  a2 \( L. M
  33.     printf("Before UOM was created...\n");    7 I$ I; ?0 u/ c! X; V
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));) T0 t& N. V/ E# P& W
  35.     for (ii = 0; ii < n_uom; ii++)  O3 `+ s( _/ w! _; I9 Q6 ~4 n: `
  36.     {/ i, ~4 ~! }. O
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    $ E5 ?4 a1 ?, F# {- l# \- Z
  38.         printf("\t%s\n", name);
    # [1 o$ ^7 n! C! G& K# Y& Z# |
  39.         if (name) MEM_free(name);) s7 K( x0 Z5 ?
  40.     }1 U( h1 X. T2 s
  41.     if (uoms) MEM_free(uoms);
    1 o& v' ]" D; t7 H! @  a+ `
  42.     / ^+ ]' }; ]6 W% U; D% c% g8 }
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));! K; ?! C, f  U
  44.     ITK_CALL(AOM_save(new_uom));
    $ O3 O. h5 p3 U8 ?8 g; m
  45.    
    8 F6 v5 o; E) D- F0 {& d1 ~: j
  46.     printf("\nAfter UOM was created...\n");   & [1 n& [+ c+ p. J
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));! v2 n3 R: P! Y& C3 P% D7 a6 A
  48.     for (ii = 0; ii < n_uom; ii++)
    3 r# c6 ]  T0 `, D3 c, V' s
  49.     {! }' S9 L3 `" K
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    - k. n  f: d/ I) h! i3 ]
  51.         printf("\t%s\n", name);' Q: p' ?$ ^% N3 a( M# L! p  V- U
  52.         if (name) MEM_free(name);, J% Z; X3 n& n! B* f) I
  53.     }
    8 L0 J0 R( d8 W7 k
  54.     if (uoms) MEM_free(uoms);
    % l" ^  q5 u$ U' B
  55. }" E8 b* S) \! M# i
  56. + P/ M; G- o7 J. k- a5 H, S
  57. int ITK_user_main(int argc, char* argv[]); r* K  }4 t$ H. S: C
  58. {- k- M6 r, ~9 g* F
  59.     int7 h* Q+ ^5 }# O& `7 r" G+ E
  60.         status = 0;
    % R2 L( x3 m7 A/ ]8 [% m  J" a1 J
  61.     char
    ! a+ r* f; }5 t
  62.         *message;
    " E+ W5 p$ _% r5 R2 B8 C; [" I
  63.     7 J6 p' M2 Y6 _. d
  64.     ITK_initialize_text_services( 0 );
    % N9 v! @" f, X. `
  65.     status = ITK_auto_login();. g  y+ G! O# ]9 ^% V% {: C
  66.    ' H4 R, c3 G5 _8 C
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");" J& T: d1 ?- b  M1 C
  68.     else
    ; a9 Z; p. w# W3 \' x
  69.     {
    ; M0 k1 V" W( t2 `% B& g! B
  70.         printf("iMAN login successful.\n");
    # e3 ^7 ^; B8 O' ^# k# g. J/ n7 J0 t
  71.         ITK_set_journalling(TRUE);8 r* B" p2 e* p+ Q' w" U
  72.         do_it();
    0 [2 z7 O9 @& t- `
  73.     }. @. S9 k) h8 R6 y  H( ^( c( h2 ]
  74.     ITK_exit_module(TRUE);
    2 X9 H4 l5 K# k& D  h0 X7 c
  75.     return status;6 R1 O3 q- a, v8 N: P1 p; f- t
  76. }
复制代码

: Y9 E" m$ e) w& J) y2 J
' c6 O" U1 O. v( H2 l8 r  a! }
9 B0 u% x- x0 C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了