查看: 5652|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

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

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

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

×
8 ^+ X* J2 f+ A
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures4 y  `: u5 L) R* \  n
. _* x2 o, A& f5 c
  1. #include <stdlib.h>' v6 Z, m6 b5 U. ~8 {( a8 |
  2. #include <TC/tc.h>
    4 H9 _( |) {6 b5 _
  3. #include <sa/tcfile.h>
    + t1 p$ R2 a& ?, q7 x2 P1 \
  4. #include <tccore/workspaceobject.h>: B& @2 {3 u9 F) ]0 T9 V
  5. #include <ae/ae.h>
    6 M$ D2 e) [+ i8 R; m
  6. #include <tccore/item.h>2 {' Z1 f, d6 I3 a3 `* ]* `

  7. , ]: |" n# I$ [5 y4 M
  8. #define ITK_CALL(x) {           \& N* g8 b7 i4 N7 j+ z6 j3 t
  9.     int stat;                     \
    * Q9 T8 n/ h8 r' z9 S
  10.     char *err_string;             \
    ) {8 g3 ]: \$ ?( j
  11.     if( (stat = (x)) != ITK_ok)   \# B) A! v5 `% l1 z4 H, d
  12.     {                             \
    & E2 O8 e/ m2 V
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \$ b" R9 Y0 M; S5 }  M
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    % }$ @# ^' D. D
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \5 Y. o# {. @( p) k
  16.     if(err_string) MEM_free(err_string);                                \- k1 S8 ~* t: N2 n
  17.     exit (EXIT_FAILURE);                                                   \5 q2 ?  T1 i, _. e# f. A
  18.     }                                                                    \
    1 d2 a: a5 {* d9 t! J3 C3 \( I
  19. }
    7 b7 S( L5 V$ Y6 a. b
  20. #define EXIT_FAILURE 1 ' F! L) g/ d0 \" Y: Q3 x
  21.         0 C1 c  R* K( _% l
  22. static void do_it(void)9 H$ t: q! {6 w1 ~6 O
  23. {
      H! T) V( w$ j3 g# Q2 |
  24.     int
    0 V; [% y( \- C' u3 ~; @
  25.         n_uom,0 D0 D3 C3 _- Z) L
  26.         ii;5 t- ~9 W6 c, P* O# l) Y
  27.     char. k) w  g% k% T
  28.         *name;5 C  \( }7 B" O* e! [7 d0 R
  29.     tag_t
    5 R7 {/ C: `* a9 L$ r: a
  30.         *uoms,
    / Q6 }2 M2 p3 j. N; {- x$ p4 b6 s
  31.         new_uom;  Y% f8 l2 c& t) a2 q. S# h7 C0 @+ A
  32.    
    : m* J  m4 J! p* y
  33.     printf("Before UOM was created...\n");   
    3 Y9 L" s7 D8 p' _, {. }3 {, N
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    . ^/ n! Z7 S. a) m
  35.     for (ii = 0; ii < n_uom; ii++)6 A5 `' S3 M1 z  W# l
  36.     {( I" }& E, v& E9 R& I1 j" B
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    & v& m% b$ g- j$ d1 p: B9 M+ W1 l7 S
  38.         printf("\t%s\n", name);% h5 l2 ^/ J  g1 V# Q" v
  39.         if (name) MEM_free(name);
    ( z3 `; }2 d+ W, I$ Y
  40.     }- e2 K6 y0 c6 D! f/ K) p
  41.     if (uoms) MEM_free(uoms);
    1 k  o0 k, t( |1 R0 V
  42.       P1 L' A% z# o" [6 v
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));2 Z" d  v$ e+ s" B4 v1 |- \
  44.     ITK_CALL(AOM_save(new_uom));
    8 L+ t/ o3 K% j/ r  z
  45.    
    1 ~2 `% o6 X4 H0 x3 h, p4 Y
  46.     printf("\nAfter UOM was created...\n");   
    0 i. i) V7 F6 j1 _* e2 O+ D% X
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    & x+ n7 U6 g0 C0 o* [
  48.     for (ii = 0; ii < n_uom; ii++)
    8 R, l4 T; E% }  W% l
  49.     {- U1 N0 e+ \6 w% ~
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    ; R6 Z" S. T7 `4 u6 m  e
  51.         printf("\t%s\n", name);
    ; X# k1 Q$ L7 k: Y1 G2 o! b* v$ x5 {
  52.         if (name) MEM_free(name);8 E3 e6 N4 Y. Y1 r- m/ ]
  53.     }
    & A( ?8 H+ u; h  I& I$ u. s7 t
  54.     if (uoms) MEM_free(uoms);3 {% s  X# I6 l( U" A- j$ L
  55. }
    & P4 C& g7 i0 K) w3 z/ D

  56. 9 R6 V# o0 O3 m9 \" A3 p
  57. int ITK_user_main(int argc, char* argv[])
    , H: F. t4 n" Z" y1 Q: m
  58. {, K! f. b6 D8 G! G0 D- a
  59.     int
    % d1 S$ S& H4 ~& m. p- G1 R# Y
  60.         status = 0;
    - u8 ?; h6 l/ H. P" r) O
  61.     char" U* c5 x+ s5 S& m
  62.         *message;
    $ w) i5 V3 E. Z4 H+ S( G
  63.     7 j4 z; f6 y  @9 C
  64.     ITK_initialize_text_services( 0 );
    : G: S+ ]  Y2 u  [0 B, C! }. S
  65.     status = ITK_auto_login();- Q' m8 P6 P% s
  66.    - Y! {9 p/ @- c& i
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");. u, Q' i1 H+ K: a
  68.     else
    " q" a7 ~$ q$ q# l8 V
  69.     {* f( Q, P- p, Q# H, x
  70.         printf("iMAN login successful.\n");6 F, [, |! j# D8 ]# h/ ~! z) `
  71.         ITK_set_journalling(TRUE);
    6 z  L$ n3 k4 ~1 D- V# Z
  72.         do_it();
      [+ k* {# z5 @: w
  73.     }0 a; p8 Q# B' V! v3 }
  74.     ITK_exit_module(TRUE);
      E: u8 b& R  A9 f* f; v* q
  75.     return status;+ p  r2 e+ r4 D; R, _5 ?6 \1 R
  76. }
复制代码
8 C7 Y5 ~. W8 ~% }+ x* u

, d) m" ~( a0 e- x, X7 S% |9 A  H
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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