查看: 5766|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

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

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

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

×

3 A3 z1 v  {" k# {: c: qTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
3 G  ?  k6 {( L$ ]
1 ~3 n: w6 n6 H& h0 E0 {/ f1 a
  1. #include <stdlib.h>( M0 D9 }, ]6 v/ h
  2. #include <TC/tc.h>0 C; L% s' C( \4 ?9 t
  3. #include <sa/tcfile.h>5 X# V2 S' f, T. r  e1 F
  4. #include <tccore/workspaceobject.h>
    4 V4 b4 _% O  \8 u
  5. #include <ae/ae.h>
    : ]% W( I0 E! b  x: h
  6. #include <tccore/item.h>9 s. Y5 s1 r7 E5 p" c, @
  7. , l: W7 F! g; i  Q* o
  8. #define ITK_CALL(x) {           \" m2 T  ?% ?- _2 [' f- |
  9.     int stat;                     \2 r5 l; m) a* n9 _% t
  10.     char *err_string;             \+ r* k% e7 l, H8 F3 i7 @
  11.     if( (stat = (x)) != ITK_ok)   \
    4 ^( r; \) W3 \" L+ ~/ K
  12.     {                             \; `" r0 ^$ F0 l* _% B9 C3 r
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    + N' S, f6 V; Q5 _: P
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \/ ^: \/ H$ ]5 ?
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \6 L/ ?+ x! I) N5 p: G( j
  16.     if(err_string) MEM_free(err_string);                                \- G% X6 i+ |7 R& k; W  U  y0 e
  17.     exit (EXIT_FAILURE);                                                   \
    3 q5 I, `# S* w/ p! f( a
  18.     }                                                                    \) q0 q7 m4 q" D  M% T. [& {; f
  19. }' L; b/ a  _9 K4 n4 x/ [
  20. #define EXIT_FAILURE 1 9 Z0 b: o+ i# n3 ]% v
  21.         
    * q* K1 k# Y0 Q9 R
  22. static void do_it(void), w/ P3 e( L& f3 U
  23. {
    ' F9 q; f- R1 _$ }
  24.     int) r! a5 M* Z" T0 V
  25.         n_uom,
    ' ]! W' A, ]. f6 U: y
  26.         ii;
    + f' x' I9 Q" s! U
  27.     char
    - E, l  e+ Z0 S* Z6 Z
  28.         *name;
    0 L0 j4 d# z$ |& e2 ~
  29.     tag_t
    5 H! P  M: B  O
  30.         *uoms,
    5 E3 z2 B$ R1 [/ I. v
  31.         new_uom;& k& ^+ @  y& M! s
  32.     : f; S; P8 P6 l2 R  u
  33.     printf("Before UOM was created...\n");    ' f! y, `$ ?5 _0 n* d3 Z
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    ! Q/ t5 F; g8 a4 I' ~4 H7 K
  35.     for (ii = 0; ii < n_uom; ii++)
    - e8 P2 R# k& J$ k8 i+ r% u- x, y- ^
  36.     {5 G0 M  A9 X( G; p- k( e3 P
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));8 Z- k) a+ K  F0 b7 f
  38.         printf("\t%s\n", name);% z8 x0 K# @* J- P" `% c
  39.         if (name) MEM_free(name);5 l: r0 o+ k( q
  40.     }
    - Z$ r: C5 j+ E8 ?& n" ]. f  ?
  41.     if (uoms) MEM_free(uoms);
    ' N: V6 `' |; V/ ^! V5 I$ Q
  42.     ) X/ y" z% x. j& S* Y" D" B
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));6 o/ O; v* f- G
  44.     ITK_CALL(AOM_save(new_uom));% ^6 k3 s$ h0 ]* H5 [, f
  45.    
    . V( A- n6 o2 c4 P
  46.     printf("\nAfter UOM was created...\n");   9 p0 S7 \4 N( X) Q# y! q
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));2 k( K) m7 T- f$ D
  48.     for (ii = 0; ii < n_uom; ii++)6 d. W$ w+ s7 P$ p. u
  49.     {
    2 S7 m5 b0 f- b: m  b; _% J
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    ( U: P5 z4 O6 v
  51.         printf("\t%s\n", name);
    . ?% x* J$ [, ]& p+ a
  52.         if (name) MEM_free(name);  L) X; b- I% u
  53.     }& e2 E% ]; A4 Z0 P+ A) S- ?
  54.     if (uoms) MEM_free(uoms);; h! D) [2 G) g$ K$ K
  55. }( P& B( o' X! n/ b8 X

  56. ' c1 b) S; i7 ]; |" T0 d  c+ F
  57. int ITK_user_main(int argc, char* argv[]); Z& ~" t- e1 D; H( T3 M$ Q) R$ P
  58. {
    9 l$ d) y, v8 \
  59.     int" u9 o& u8 ?* t$ T6 U/ G
  60.         status = 0;
    $ X5 k" @: t# _6 E! O) P: [
  61.     char: y5 N4 D$ Q, {! k$ w7 T9 Y; C
  62.         *message;
    ; _, t, a6 H( W3 D" p
  63.    
    0 t) a. y% T5 k: l6 f) ^
  64.     ITK_initialize_text_services( 0 );
    . f/ i, x& b9 d+ Z/ E, h
  65.     status = ITK_auto_login();
    1 u) f. F8 z- D1 i0 P. H
  66.    9 S8 c6 `$ r9 z5 G0 s0 s3 A
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    / {- u7 r$ I# i6 ?& W# ^
  68.     else
    1 g" |3 f( e' T; t0 ~8 N
  69.     {
    , G: D0 ~  f: S. d! Z* J4 G
  70.         printf("iMAN login successful.\n");
    ! M  ?  t& E2 `. ?8 T) W+ w
  71.         ITK_set_journalling(TRUE);- t. @9 _- X! o6 r
  72.         do_it();
    5 x+ `7 E" l4 E  x- ]! n8 @  o
  73.     }
    * q* |$ c+ f. y, L; V
  74.     ITK_exit_module(TRUE);
    / a' B0 X+ i  a; @
  75.     return status;
    1 p2 P+ X4 J& V
  76. }
复制代码

/ Y/ L" G3 {8 G6 E8 _# G! S2 O( j+ z, k, i# `
6 O- Y6 [3 X& z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

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

本版积分规则

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