PLM之家PLMHome-国产软件践行者

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

[复制链接]

2014-1-15 19:39:16 5379 0

admin 发表于 2014-1-15 19:39:16 |阅读模式

admin 楼主

2014-1-15 19:39:16

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

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

x
9 d( p# L4 c$ R) ~4 [
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures$ N6 @- I" x$ x8 x$ k* U3 R
( z, ]7 s$ C+ ~: m; u1 f; r
  1. #include <stdlib.h># [4 U& v3 }5 d0 X
  2. #include <TC/tc.h>7 l1 e3 k* o( n) n6 p$ P7 {
  3. #include <sa/tcfile.h>
    ; s$ M/ G+ V! `' j( `5 g; P" U3 ]& L4 M
  4. #include <tccore/workspaceobject.h>
    # X. g  _3 j( c
  5. #include <ae/ae.h>( d0 `- q* D, i7 ]1 m' G# V
  6. #include <tccore/item.h>
    / v. y$ ~# ?8 y4 z

  7. , a# K7 O& y! ^/ ~
  8. #define ITK_CALL(x) {           \
    & c) k: B- J& x3 L& A& j
  9.     int stat;                     \) h; e; p* D$ n0 ^' v* |! A: d
  10.     char *err_string;             \8 d2 N. ]1 K; D& r+ ]# q. P
  11.     if( (stat = (x)) != ITK_ok)   \
    4 J7 N  `& ?/ i
  12.     {                             \7 f5 n/ H) F3 R. z
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    3 w1 \5 J0 T! \2 C6 r" K; m
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    ) I* B$ U" n6 Z
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    9 l& T1 n) r. v% e; r
  16.     if(err_string) MEM_free(err_string);                                \; P! K: s) g7 G, z6 `4 y. `. i
  17.     exit (EXIT_FAILURE);                                                   \6 _% N5 ]  d6 s) K; f8 ^
  18.     }                                                                    \
    9 b1 x- h! ]8 x5 r
  19. }
    ! c; t9 r7 v! m+ F
  20. #define EXIT_FAILURE 1 ( X2 I, C) A* y' \4 V4 f
  21.         ! O# f+ g9 p: d- Y  y
  22. static void do_it(void)
    ; J3 {2 F  [. J- G  P
  23. {
    # n! n& K, V: l4 [; H. Q/ V& l% T, \
  24.     int5 ]1 _- @' u; S0 ?% K2 y& d" `) W! [
  25.         n_uom,) S9 e% O0 {. N6 n
  26.         ii;
    ) t5 A6 N, ]4 c( n) Q
  27.     char9 t% h# M- @: P  _1 {4 a; n# ?5 n& [; I
  28.         *name;
    . b' y1 n6 C0 M% J. a
  29.     tag_t
    / E8 C# H$ u# o8 |! w* |
  30.         *uoms,! Y/ C$ f0 H) M4 _4 _9 T; p7 A
  31.         new_uom;# }4 D9 a6 L& h/ @1 Z
  32.    
    & g1 z+ i& K% r3 o
  33.     printf("Before UOM was created...\n");   
    * \* L) B7 @$ ]* Q# h, j$ [2 C
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    % H7 G0 {$ x8 K) `
  35.     for (ii = 0; ii < n_uom; ii++)
    5 J$ h4 _" S! L% B
  36.     {& K/ y: a( P- H; \4 ^
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    & V4 a0 j8 n) l& d4 X
  38.         printf("\t%s\n", name);$ `6 |! t6 m/ G$ @  b
  39.         if (name) MEM_free(name);! w: b" l6 R! A5 q' g
  40.     }
    , z0 c4 y# ^9 E( [( j
  41.     if (uoms) MEM_free(uoms);
    7 ~) E" ?9 \- G$ }+ w
  42.    
    ! E( E  k+ C+ N: a. g
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    2 q; O$ M% x8 |$ [; ~0 a3 p
  44.     ITK_CALL(AOM_save(new_uom));
    0 Q; U# Z0 m2 H% f# ^  `
  45.     6 [; y3 f) Q! B9 z
  46.     printf("\nAfter UOM was created...\n");   : w) I8 E% o( {: D. m  z
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));! f7 S' H( @! C! O* M1 p
  48.     for (ii = 0; ii < n_uom; ii++)3 E& {/ z+ p( O/ m1 w9 C( \" ]
  49.     {
    1 C: X" I) M+ x6 }: T& c
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))& f! Q1 Z6 J3 C2 W: S( y" j
  51.         printf("\t%s\n", name);$ v9 L4 Y/ ~% f7 I/ f5 o2 c
  52.         if (name) MEM_free(name);; x' l0 h! r7 y! e
  53.     }7 T. O- C" K' B$ x' }4 n5 o
  54.     if (uoms) MEM_free(uoms);
    " k5 {: x& v7 ~! R
  55. }
    8 l# I; |# F# c& L6 b% e/ ]+ E9 q

  56. 3 V# r/ s3 V, G( C( N8 }
  57. int ITK_user_main(int argc, char* argv[])9 G" \7 g/ h# k& w8 c4 Q0 ]1 G
  58. {4 R9 p7 F( o3 s* i% R
  59.     int- D) g4 |9 n6 B- I# p
  60.         status = 0; - n8 y* W0 ^+ f7 `# W& q& t0 ~
  61.     char  X" Z; }# I) _/ P, d* O" |$ w  m
  62.         *message;- G% i- Z+ n+ x0 C. G; J5 g3 P6 b
  63.     0 Y+ g! x* N; ?) T/ s  R
  64.     ITK_initialize_text_services( 0 );4 A  Y* N7 \( B+ Y, w/ ^# ]! V/ @
  65.     status = ITK_auto_login();0 u* |2 R6 ]7 T( N
  66.    
    ; ~* j* k% n: L! _: I% ~  v
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    " ~, r+ }+ @4 k) w+ D+ J
  68.     else: k; L8 T: [$ H$ U' @& w" |! ]- R
  69.     {/ k6 U5 J/ ~% e* R* C: b- e/ L
  70.         printf("iMAN login successful.\n");$ z5 @2 r2 S/ M& }
  71.         ITK_set_journalling(TRUE);
    * Y6 A) j" J* o3 E1 F7 b
  72.         do_it();% B) d& p3 }) T% |
  73.     }- P, n! X& g1 W$ w$ H. @
  74.     ITK_exit_module(TRUE);
    + K! N- |% D  c0 ^% d, C+ W4 K9 V
  75.     return status;
    ( R" P3 l; a% ]( X
  76. }
复制代码
5 a* _1 g8 u- e, K

8 ?7 R- M$ R* e0 h
5 w" V; U+ j, N& k" `$ i, G3 Y
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了