查看: 5680|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

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

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

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

×

; \9 a1 r7 k) cTeamcenter ITK二次开发源码分享:创建测量单位unit of measures  Z2 j: o6 ]. ]
; A( O- H, G/ E7 b% m; I8 K
  1. #include <stdlib.h>+ t" I9 W3 f& e7 Q
  2. #include <TC/tc.h>5 o4 [3 v, d  n1 s
  3. #include <sa/tcfile.h>
    / d' s( v! B3 a3 z! o
  4. #include <tccore/workspaceobject.h>
    5 q% p3 U4 f2 {5 G/ V- U
  5. #include <ae/ae.h>) B+ `: X$ K1 g" p" K6 ]+ k3 Q
  6. #include <tccore/item.h>$ K$ E! B* T, T* n% ~

  7. ' g2 ]2 e# Z% u* y- A
  8. #define ITK_CALL(x) {           \* W* f9 C2 _1 m" d/ z3 C
  9.     int stat;                     \" b5 V7 s% f4 b* |" e# e
  10.     char *err_string;             \
    1 L/ C) x" M' v8 K
  11.     if( (stat = (x)) != ITK_ok)   \, C# T; H+ l6 g% F
  12.     {                             \8 P; A' L7 n4 V* r. y" A% k
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \6 R) m! |/ ~: T5 Q* z
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \  `) |% l7 H  i7 \: B" A. a5 `
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    - L4 W# q4 j' H7 k  L% P) W
  16.     if(err_string) MEM_free(err_string);                                \
      v- b5 A- U" X* E# d
  17.     exit (EXIT_FAILURE);                                                   \
    ; E8 `8 J* C) S) X
  18.     }                                                                    \% N* w: @& o- O5 o- \# ~4 j5 V
  19. }" \. v9 o) P; ^
  20. #define EXIT_FAILURE 1
    6 J3 e: @7 S5 g+ X- l
  21.         3 h5 @2 y3 R+ m) W
  22. static void do_it(void)
    6 L: O7 u3 N! O8 `% S/ V
  23. {
    6 M. ^7 W+ j1 n# I
  24.     int+ ^- o/ O! H, ~6 h
  25.         n_uom,
    % I8 B$ b7 h- V: D# J
  26.         ii;. T0 c) u/ J3 l
  27.     char
    7 {) p2 V2 ?$ k) e8 H6 r
  28.         *name;) K* u# K8 h2 M' t' g4 Y1 y4 C
  29.     tag_t! m8 r* ^" y4 L% h% l2 R, r
  30.         *uoms,
    8 b. s" m  n/ A; I" ]5 k5 ^: V
  31.         new_uom;
    $ m+ w  C4 \1 V3 K
  32.     2 F6 [8 S3 x4 l. ]+ S
  33.     printf("Before UOM was created...\n");    + p8 ^% w! h2 p, j. r
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));( u* V1 {, c2 \; v) S
  35.     for (ii = 0; ii < n_uom; ii++)1 J( _" k: ?2 _1 F2 k0 u
  36.     {* w2 C$ }" j+ l& e9 e
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
      J4 u( @9 A# n1 ]) v4 C
  38.         printf("\t%s\n", name);
    $ N* e' y5 u7 J/ p# f9 Y
  39.         if (name) MEM_free(name);
    + x6 D8 U) x" i9 q2 ^
  40.     }
    ' R( q7 l( \' w
  41.     if (uoms) MEM_free(uoms);6 W! l% c+ v9 c. T+ {* F
  42.     # z+ T0 k2 M: l6 n
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));2 H( R( n" x9 Y7 N
  44.     ITK_CALL(AOM_save(new_uom));
    3 K' G7 v9 B7 q4 U! u- Y
  45.     + h1 L6 Y6 b. ?, ?" n- T* U
  46.     printf("\nAfter UOM was created...\n");   
    , g" h, F* l' z8 R1 `5 j
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    ' P8 r2 |% D  ^& [
  48.     for (ii = 0; ii < n_uom; ii++). }! m& M% d- b5 W9 ^# A
  49.     {. }0 S+ ?) C, [6 [5 k/ b4 J
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    0 x5 R% M2 Q# m( s( L
  51.         printf("\t%s\n", name);4 S; _& U: Z  k
  52.         if (name) MEM_free(name);2 O& D5 L0 x( H% L
  53.     }
    ) a3 L0 K) A' d) j) ?/ t5 f
  54.     if (uoms) MEM_free(uoms);2 R1 j6 {7 e0 |3 u
  55. }7 K+ n" n' S! i

  56. , ]! x4 k2 ]- U9 |5 T5 i( i' Z6 O
  57. int ITK_user_main(int argc, char* argv[])9 ]7 R& E/ ?* x) ^8 p; J
  58. {0 i: S# `% j$ r: Q
  59.     int8 Q" }. _8 r# K
  60.         status = 0;
    " R! \3 k- S7 P6 }" D/ V
  61.     char
    4 K1 |: L: _0 \  K
  62.         *message;
    ' P# ]! D- Q: U3 Y8 g6 [
  63.    
    $ e5 L$ {) [! ]0 i9 l+ C% T; p' e) ^: r
  64.     ITK_initialize_text_services( 0 );0 F9 ^! A1 b0 j, C
  65.     status = ITK_auto_login();
    / V  O" _; B( i
  66.    
    8 F/ e8 ?0 h& v) ~3 }
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    1 [3 b- L& ?! C$ Z
  68.     else3 A# D" n1 \3 F; v3 R
  69.     {; v, C* T4 z5 V. d4 Q  e+ y/ i
  70.         printf("iMAN login successful.\n");$ o5 t" j: r. p4 T, y: n5 G
  71.         ITK_set_journalling(TRUE);6 d) e0 {4 ^6 _; Q: B6 P
  72.         do_it();
    . Y6 W! q$ ?4 E( S  O) B. I
  73.     }" L( n8 Z3 Q: L# S% y
  74.     ITK_exit_module(TRUE);3 F+ B8 i$ L5 n3 H8 E4 N1 G
  75.     return status;, f( E3 a' y" w& _1 W% x
  76. }
复制代码

, A" m* z4 S/ t( N7 N% t+ ~7 S& ~+ ]" K# k  Z( z; ^

# ]# d8 T2 s9 m
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部