查看: 5591|回复: 0

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

[复制链接]

4

主题

3

回帖

40

积分

管理员

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

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

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

×
, d2 t$ }: v+ `' E. b5 Y/ v
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
/ j) z" ^- |- I& v0 V( X- E8 i9 n6 g5 y5 J  W8 s. Y
  1. #include <stdlib.h>: R# \) V6 H  b. _/ F! i
  2. #include <TC/tc.h>
    9 d- m, E( ^# u$ Z2 ?
  3. #include <sa/tcfile.h>
    1 Y( W7 d7 H0 g/ w
  4. #include <tccore/workspaceobject.h>
    % d, N% @% n6 S( D! v6 M
  5. #include <ae/ae.h>1 ^4 Q$ D. y5 P) W- c
  6. #include <tccore/item.h>
    ; h8 n' T/ g) x4 E. X5 f
  7. ! ]: T6 ?4 Q$ [9 S
  8. #define ITK_CALL(x) {           \0 z' d, d' L5 s
  9.     int stat;                     \: g2 Y7 r/ A! i6 a/ d) a
  10.     char *err_string;             \! N7 n, d$ c  X" R' @
  11.     if( (stat = (x)) != ITK_ok)   \
    * P4 p1 t4 c- x. r5 X+ @6 H) B( ~
  12.     {                             \$ B' O6 }4 A3 E% D" X
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \* M- F, k! k. H0 ^8 m
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    ( s2 `& k" P" l+ d: s7 H4 _
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    ! _& H/ v6 `# v6 l* B* `0 c
  16.     if(err_string) MEM_free(err_string);                                \4 K3 E. [. e/ S9 Z2 O; N8 V
  17.     exit (EXIT_FAILURE);                                                   \
      h" O& g& R! M5 q- J+ S2 g8 T
  18.     }                                                                    \
    / j- v8 I$ W8 s5 |6 i' O
  19. }
    ! F3 [, w% `2 \. s, c" K
  20. #define EXIT_FAILURE 1
    2 [# y+ v' v$ Z" c3 c! k
  21.         
    3 k# ^5 c/ G/ c. x7 v! c: _
  22. static void do_it(void)
    ' t. q$ ^& R' l% [! ?( [
  23. {; z, M& ]/ T+ ?1 [
  24.     int
    1 F6 Z; T: \5 c. C1 j; s# ~
  25.         n_uom,9 ^+ `' s2 y- O' A6 w1 n$ y. n
  26.         ii;. R/ d* l* a! P; n8 r1 k/ m; J4 E
  27.     char0 g1 m: _/ j. r) U0 U
  28.         *name;* @$ N# t. k* l& g4 b1 H) r
  29.     tag_t. Z5 R$ l) A5 W
  30.         *uoms,, @9 K5 R1 Z. o0 |+ V
  31.         new_uom;
    : H; h% t. l, Q& C
  32.    
    5 A7 ^# T8 S. @  N9 R
  33.     printf("Before UOM was created...\n");    # I# {, z) Y4 Q. g9 B& L) ^6 j
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));1 I0 J* h3 j4 q; L1 A' G
  35.     for (ii = 0; ii < n_uom; ii++)+ P* K' U" N5 m  k5 B
  36.     {
    . D9 w0 v1 d& O1 k5 L/ w
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));; u& b5 {7 ^4 Q
  38.         printf("\t%s\n", name);  M& W. q5 }4 ?! t7 w8 v$ c
  39.         if (name) MEM_free(name);+ @8 K- {8 C! Z
  40.     }4 T! R* W) b' C2 r! l4 c
  41.     if (uoms) MEM_free(uoms);# i# b5 O8 @# R
  42.    
    " M% u4 j; d' h0 c# J* M
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));2 T. l( G+ l$ y
  44.     ITK_CALL(AOM_save(new_uom));8 K1 o- s+ F* A- h+ N
  45.     & M' _; L4 l) p% K- M: Z* R4 {
  46.     printf("\nAfter UOM was created...\n");   6 r5 Y* Q) R' {4 w* c) P
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));) [: p5 I+ W# P9 N! R! X+ |
  48.     for (ii = 0; ii < n_uom; ii++)" W0 S! {# e) Q* W: \
  49.     {8 Y: U; l) H; A; Q0 S. l  y; c& y) L
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    7 R, ^9 }: ]% A$ l7 e
  51.         printf("\t%s\n", name);1 y# ~: }# s/ v9 e, w2 K# X0 E
  52.         if (name) MEM_free(name);
    7 c4 p8 J5 T* e- }2 \2 Q0 d
  53.     }9 s: B2 c0 l$ W9 A4 A
  54.     if (uoms) MEM_free(uoms);9 S3 J9 S+ i1 \
  55. }
    9 P. L$ t# S' P8 {' T6 V

  56.   e+ V  K( t' H2 a0 u/ S
  57. int ITK_user_main(int argc, char* argv[])" c6 k1 `+ h# W3 X- o' i
  58. {
    6 D8 G. I' R5 B: `$ |3 Y5 v" X
  59.     int
    , E6 n9 Q6 @4 t- X1 E( y# H0 T- x2 G
  60.         status = 0; ! U# F/ g; @* A3 o$ z7 k7 z4 [
  61.     char
    . P+ c; X4 M6 ]
  62.         *message;
    & R8 ]+ q) ]. M" B7 t% L+ g, @
  63.    
    ! ~: u1 f( L* ]8 ~
  64.     ITK_initialize_text_services( 0 );
    $ q- x2 s/ O5 J* B  l" f9 b
  65.     status = ITK_auto_login();6 b) P; k0 a& z! J& S; v) |
  66.    " g' E1 u. H7 {$ Y+ H6 l
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");, Q- y& d7 V2 R+ u" g7 b$ ]$ p5 B3 S3 M
  68.     else
    # k" i) a9 I0 M* k% [. W) `8 u1 O; N
  69.     {
    ! U7 c  d( }  c  Q9 Y
  70.         printf("iMAN login successful.\n");
    / `. `+ E: m: X$ H, _9 _& U" G
  71.         ITK_set_journalling(TRUE);
    , ~& |7 \, }8 s5 V. }* R
  72.         do_it();# d/ }7 H+ b2 p% q
  73.     }
    6 S& H4 a3 G' k8 C6 u
  74.     ITK_exit_module(TRUE);+ d: t3 a' Y5 m( D
  75.     return status;8 |. l# m: d) ~, L% ^
  76. }
复制代码

# y7 a4 }6 ^* G/ D' }) V: X* P
4 B5 T' D3 R. a! @! T5 J, U9 |0 B) h) x- g! A+ V/ ]
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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