查看: 5733|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

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

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

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

×
- m' E! M. ~1 y0 N
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures4 H& q+ E- L; X8 ?

' I: t; V% c9 o" R9 B
  1. #include <stdlib.h>
    , ]2 x4 x2 d: Q  j7 |3 U4 A
  2. #include <TC/tc.h>
    9 T1 v. r0 f1 E0 N6 F! `
  3. #include <sa/tcfile.h>
    7 s" r* f6 \0 F; `
  4. #include <tccore/workspaceobject.h>. V) C6 H& h+ \: y- o. c
  5. #include <ae/ae.h>
    # M( I  r% v" ^; h; ]
  6. #include <tccore/item.h>  }1 c$ L- o" Q$ b7 A  R! z: ^7 i

  7. # O5 X+ v6 J/ I$ ^$ `% Y
  8. #define ITK_CALL(x) {           \
    - U7 n: ^) ~6 p2 h- L0 v8 ~9 p  @
  9.     int stat;                     \
    ; }5 d3 H+ }2 Q1 |* T6 @
  10.     char *err_string;             \
    0 \; Q  y0 i' v; G; z+ R" x
  11.     if( (stat = (x)) != ITK_ok)   \2 @. L- u' F4 I/ V9 z) G
  12.     {                             \
    2 J( I" c  l; F  I
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    4 O1 Q1 q/ P* Y: v) W; X. S
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \! d! z) Z5 r6 a! v
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    * k4 z1 @; S. h! \" X5 A
  16.     if(err_string) MEM_free(err_string);                                \
      [# @2 Z6 A# y! [7 M
  17.     exit (EXIT_FAILURE);                                                   \  I* p! u5 n8 }/ K% V- ~% L# ?$ B& }5 O
  18.     }                                                                    \( C3 w5 Q% L5 D$ m/ `
  19. }' Y, m/ h3 B0 g; h# t3 z
  20. #define EXIT_FAILURE 1 , V3 P* E2 M/ T' ?0 U, k
  21.         
    6 G5 v) @- [( I4 j8 ]) q
  22. static void do_it(void)/ X' Z" n, n) p
  23. {
    : i# |5 D8 }% Y7 w2 ?
  24.     int
    0 ^# }5 }3 s0 B0 z8 Y5 S
  25.         n_uom,
    1 G$ ]$ e7 W% Q
  26.         ii;. |3 i  i# M: r0 t$ s8 ]6 i( B
  27.     char- P' y/ v+ N+ E: ~3 z+ p
  28.         *name;0 @, V  R& }8 l0 a6 T
  29.     tag_t, o7 `5 P! g' |- P) A, ]
  30.         *uoms,
    - u0 q5 `) g. q+ T# D5 i
  31.         new_uom;1 P  c& I4 L% @# L- u! O" y
  32.    
    " s0 Z7 ], P9 {) S* N! c8 a1 ~# o% ?
  33.     printf("Before UOM was created...\n");    4 ^/ ]" W9 z& d' B' u
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));# ?3 h/ S% a2 e7 f# M1 n
  35.     for (ii = 0; ii < n_uom; ii++)" J$ v; {' p! W: Y+ |) P( w4 t
  36.     {0 j; }* j& |0 A4 o5 t2 B; j' Y
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));: a7 Y; d8 m! I1 I) D
  38.         printf("\t%s\n", name);
    : O' {$ g% [# W6 f  `
  39.         if (name) MEM_free(name);: _1 J! L, _2 V5 Z6 L( J
  40.     }
    1 \/ j+ f" U- t/ t
  41.     if (uoms) MEM_free(uoms);
    4 `- H& f. I8 X; H0 s3 E
  42.    
    3 h' h7 [% g4 ^$ B
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));# s% e( n6 O* z" O. M5 {) f6 T
  44.     ITK_CALL(AOM_save(new_uom));
    ! _4 M6 ]4 B$ r+ o6 P" {
  45.    
    3 N9 |+ h* g4 d" l8 E# h
  46.     printf("\nAfter UOM was created...\n");   3 a3 t0 s, C. I, ]
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));' k: g) Y  z0 {/ K+ W
  48.     for (ii = 0; ii < n_uom; ii++)  V- o0 h4 N, B5 V* B9 G% O
  49.     {
    7 d  _4 ?, f3 x: `7 I7 M! f' h
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    # e) v9 _/ Y/ g% O" o- v
  51.         printf("\t%s\n", name);' f7 v* ?* A& d$ n) O
  52.         if (name) MEM_free(name);
    ; W* n! I+ t8 [3 ]# N3 R
  53.     }7 u9 R  P) t: k1 R* M7 |# J- S
  54.     if (uoms) MEM_free(uoms);! v" c  w3 Y  \; P4 g2 u
  55. }
    . K$ L4 n; O& ?$ p. E
  56. 2 V' x3 f: m4 S1 y& Z
  57. int ITK_user_main(int argc, char* argv[])5 T+ }4 h9 _" v3 b
  58. {0 H5 T7 j  A5 J- i3 r
  59.     int: b, X" i' b6 \$ H: m) o' N
  60.         status = 0;
    ( v5 i2 @2 ^6 I/ r1 U8 I; O
  61.     char
    8 g2 i  f/ d6 J. n7 n2 T! `
  62.         *message;0 t* O, x: f+ z7 n% d
  63.     , Y0 W9 ~! M! ]' }# Z5 G  e
  64.     ITK_initialize_text_services( 0 );
    : G5 G! |% H1 G/ U# u4 @8 a: b
  65.     status = ITK_auto_login();
    3 H7 m5 K2 O- G( d' y
  66.    
    # `9 u* l5 m, l& B# b) L' k. e
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");0 C3 d. f# i7 R
  68.     else
    # Z  N7 [$ z/ z# k
  69.     {
    3 ~3 Z$ n0 X! s8 x7 N
  70.         printf("iMAN login successful.\n");* y* }) p6 e' o6 f8 V
  71.         ITK_set_journalling(TRUE);4 \, \! y. f4 `8 _/ z
  72.         do_it();' X3 a1 c- W" k5 ]) G" o! p
  73.     }
    , k/ i9 K5 c4 \4 |+ F3 Z6 [& \* G
  74.     ITK_exit_module(TRUE);; w0 g+ m6 Q) P/ f- b. t
  75.     return status;
    " K. D0 w+ b. s# n7 X
  76. }
复制代码
+ M: L0 O4 z1 ~, l2 T. B! O
$ T6 |6 K9 g9 m* J# O1 X% z
& F3 H5 s" ~( H
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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