PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x
( o6 |' x3 p8 N+ I7 j) x/ S% C1 |( a
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures, a, x7 f5 ]  Y: w+ t7 q3 D6 L
6 p  a" V- t. d( w
  1. #include <stdlib.h>
    9 L# E. j0 _) g( S) u
  2. #include <TC/tc.h>( Y! }0 a+ F+ w% Z- N% A, J
  3. #include <sa/tcfile.h>7 T6 ~6 H: L3 x# M. e' s5 a
  4. #include <tccore/workspaceobject.h>" l- f6 S" p4 M, q, B/ E% N* D  _
  5. #include <ae/ae.h>
    5 R7 f  h1 h7 m* [6 N/ j, O# b
  6. #include <tccore/item.h>; k) v9 x# i; C
  7. : W$ ^5 s7 D( F  p2 i' l
  8. #define ITK_CALL(x) {           \( E  W* g1 d' Z7 @" b( _
  9.     int stat;                     \) v) ?& J! U# ^$ w& z
  10.     char *err_string;             \
    & x% ?( X4 N" q3 h  L! k
  11.     if( (stat = (x)) != ITK_ok)   \
    - P* X2 k! w( ~  R
  12.     {                             \
    ) D" O. I7 C( q- a+ `
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \$ i# f& O( Z: z0 V  E
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    * [# ^1 \+ i4 [& Z+ A& G
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    $ Z/ t, X6 T& ^, X% a: V
  16.     if(err_string) MEM_free(err_string);                                \* {1 L# D9 s* B1 j1 o
  17.     exit (EXIT_FAILURE);                                                   \
    5 W) S0 e1 j1 a4 @+ M  q
  18.     }                                                                    \0 A9 L! x! ^6 B2 a  n" k
  19. }
    : Y8 E* d- o# n2 q6 }
  20. #define EXIT_FAILURE 1 ; |% I1 T( }" ?
  21.         ! {- U1 ]9 j% {+ u! F" O
  22. static void do_it(void)
    2 l5 x1 S/ n, k  ?, S( M3 W
  23. {; y0 w" |+ H) S% d- `1 u
  24.     int3 V8 D, v- V6 n* i# m
  25.         n_uom,
    7 \5 E/ Y9 m0 r5 `# X
  26.         ii;
    * X9 y% C* e) O
  27.     char
    " P& _7 w# H: r% f* }" o3 v6 {
  28.         *name;, A: P6 H& b8 M4 z( g+ U
  29.     tag_t
    # a% l6 R. Z: o8 V) L# S
  30.         *uoms,5 U. F% l, @, _2 T7 y3 I
  31.         new_uom;3 I0 l/ n+ @! X7 o5 R
  32.     ; F! }8 a+ ]8 Q4 ?
  33.     printf("Before UOM was created...\n");   
    3 X5 G' g- ?+ z8 s( o
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));7 N1 X/ ]4 _6 \
  35.     for (ii = 0; ii < n_uom; ii++)
    7 k9 m0 A4 W1 Q- J8 z0 I4 V
  36.     {5 ]1 l$ \/ t$ ?: s+ p/ U
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));7 Z* U" T1 k6 }" T8 A
  38.         printf("\t%s\n", name);
    ( A# X1 a& [# W
  39.         if (name) MEM_free(name);
    2 J2 Y$ h* d% X1 h' {4 ^
  40.     }
    & z9 t8 b! L. K. G6 a9 |8 l- M
  41.     if (uoms) MEM_free(uoms);
    : H# b( }% \* P: N' U, p
  42.    
    - C# b1 V. M* L( J, Q
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));- V5 ^5 k* i. R! Q: o
  44.     ITK_CALL(AOM_save(new_uom));
    $ p: _+ X. B6 }
  45.    
    8 F2 `) d' Z8 B4 U5 y
  46.     printf("\nAfter UOM was created...\n");   6 k! S0 R  B7 I1 Z
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));2 c% _: y  k  i5 A7 Z0 \
  48.     for (ii = 0; ii < n_uom; ii++)
    1 E# L  L/ z$ Y& {8 b
  49.     {& ~; C; ^, P5 X! ]2 d& M
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    9 U9 N; c0 q/ S3 Z/ E+ o
  51.         printf("\t%s\n", name);
    : y" Z5 g1 f: _/ R2 ]4 {5 ?8 M0 ?
  52.         if (name) MEM_free(name);1 G8 s1 r' P4 \. r
  53.     }
    & a! R' [8 T* L0 Q# O; ]7 ]- ~
  54.     if (uoms) MEM_free(uoms);( W8 l# I: ^! O- V9 r
  55. }& R# J+ c1 G# c2 `% B

  56. 5 l. e6 x' H. m6 J* I) p
  57. int ITK_user_main(int argc, char* argv[])2 y. ~, z2 ]( G) V% I
  58. {' {- ?9 Z2 }& g. z- S
  59.     int- ?4 K9 y8 k  R; T7 G: p
  60.         status = 0;
    4 {" M! m) t: u; L6 L' j8 B
  61.     char) i: z2 {2 ^3 q
  62.         *message;
    5 g6 {1 L" N# n% X7 N% {( X
  63.     ! E) h# H) e  @6 Y7 p
  64.     ITK_initialize_text_services( 0 );
    0 z5 s/ x" S" \) `! I- h
  65.     status = ITK_auto_login();
    % ~; u& J! F7 p2 [: k# S% g
  66.    6 r( a2 h3 B6 U3 M+ v/ @
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    ! m6 \# G' \6 A/ i+ a" M: m; G
  68.     else
    ) L0 [4 U- R/ B" `0 g/ N. T/ m, A% k
  69.     {+ T2 l3 o8 n7 W  D+ r' r, Q
  70.         printf("iMAN login successful.\n");
    % R' K4 z5 y% V" }5 y
  71.         ITK_set_journalling(TRUE);
    ! _5 @1 M: g  j0 e+ [7 [
  72.         do_it();& ^! i! ]' t+ A! }$ t! L/ S
  73.     }6 m5 I7 T! u4 t; r' D" r8 e7 `
  74.     ITK_exit_module(TRUE);
    , n6 c6 v" N% O
  75.     return status;2 q; \3 s# {) L7 d
  76. }
复制代码

( K  i/ d- h3 p" D' d. o- z
  h& O- }+ {9 ?1 p" ?* C4 t# \2 l- z& Q3 x, V) B1 p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了