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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
- y( Y; X' _/ [! g0 ]) i
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures: I( ?) B( S2 i) }9 W
- X/ l  ~( \  q& r5 o  M% Q4 S4 D+ I1 E
  1. #include <stdlib.h>- r/ |; ]' K2 o( f' U( n
  2. #include <TC/tc.h>
    " v0 a$ O, P0 e, g
  3. #include <sa/tcfile.h>
    - d6 g/ i& Q0 S# }$ l6 E
  4. #include <tccore/workspaceobject.h>
    1 p2 R7 H! m: k
  5. #include <ae/ae.h>
    / j/ H0 h+ s' @7 P
  6. #include <tccore/item.h>
    ( m. f0 \  g6 {# u& J/ W  Q: I
  7. $ W! }6 p6 O' [9 z+ g% O
  8. #define ITK_CALL(x) {           \
    ! V  w% `( X  y/ W
  9.     int stat;                     \
    , a# }/ F) ~- w) N2 h  T  H
  10.     char *err_string;             \  ~0 @+ G0 z, ?' ^
  11.     if( (stat = (x)) != ITK_ok)   \
    ! v. }2 \: a! x! l
  12.     {                             \
    3 ?/ m. U% E8 U" ^
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \2 A9 p0 n. J6 i1 O/ A
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \, q/ M! Y( Q. c. a& x9 }' U
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \! j" `3 c$ ?5 s
  16.     if(err_string) MEM_free(err_string);                                \! G. h$ u, b  `  o3 q' I
  17.     exit (EXIT_FAILURE);                                                   \
    : u0 j8 Z1 i1 Q4 X' }# J, D
  18.     }                                                                    \
    ( n, g1 r" b: G9 F8 e+ [( v3 K
  19. }5 ^# X3 b# A( s/ I
  20. #define EXIT_FAILURE 1 # d1 k3 a8 {( O+ h9 @
  21.         / @7 [) ?: e3 [+ W% j
  22. static void do_it(void)% w' j* N) A. I& Y+ k
  23. {
    7 E% \, W. q0 u3 ~  @
  24.     int
    * L! Q# ~, w2 `; _% w
  25.         n_uom,
    # B- I% {: t& H0 C& w% R# N' R% ?( u
  26.         ii;+ v, v/ S" B2 d, E2 ]4 @; J- j
  27.     char
    - v8 W8 m7 T$ `' p1 ]/ S  r3 J" M3 x6 q
  28.         *name;/ T/ ^0 J5 F" Q6 Q: ]& D
  29.     tag_t: X) S' O7 i5 d, _& q& [+ v
  30.         *uoms,/ i# ^% |; a4 m3 ^6 _
  31.         new_uom;
    + B) f, ?: y$ u
  32.    
    / q- k+ {! {; ^0 P1 Y, Q' W
  33.     printf("Before UOM was created...\n");   
    2 ^6 Q) ?6 I) K9 s3 a1 B/ _3 a
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));/ @3 Q7 B5 G. O) ]( y
  35.     for (ii = 0; ii < n_uom; ii++)
    / t4 g/ z3 B  Q$ }$ V
  36.     {
    5 y9 o* S! c! O) b1 S% q, [' a) Y. O
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));9 ~5 ]1 A2 N8 [" S% E6 R2 z+ F) y
  38.         printf("\t%s\n", name);
    " A. l4 ?4 m2 O( t9 h6 p, j
  39.         if (name) MEM_free(name);
    - W/ |" ]& T! L1 y- x
  40.     }
    : f& }* p% |; `7 H. ?7 p4 U: h
  41.     if (uoms) MEM_free(uoms);: V0 t7 i# _9 ^: w& ~- f2 P- \
  42.     : G/ J+ O% f% ~: h* x6 z4 z
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));8 l: p5 Z( n9 p7 F7 y6 r
  44.     ITK_CALL(AOM_save(new_uom));
    ; f5 B1 i2 S3 M
  45.       @( x& h. ?) |8 W5 Q
  46.     printf("\nAfter UOM was created...\n");   
    2 W( l( c1 h, t
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    8 n  R* a& \  T5 z: J
  48.     for (ii = 0; ii < n_uom; ii++)& _/ b" \( h) E- q: l7 U9 \- o  ~
  49.     {- |/ ]7 Y! w3 f$ g: Q$ C  Q; B  K
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))2 Y0 @& v. z4 k9 _; u) m
  51.         printf("\t%s\n", name);8 G+ A$ B: M' x1 ^9 I* m% S( v& W
  52.         if (name) MEM_free(name);' r' f' Q7 P: _6 Y
  53.     }. X2 Z+ P! |9 f$ u% F6 f. M3 g
  54.     if (uoms) MEM_free(uoms);
    ( j, {. G* }2 _5 K
  55. }7 E7 T  {* u8 i" t5 m
  56. * y3 c# l# F1 p
  57. int ITK_user_main(int argc, char* argv[])
    ; u. _. u4 ]# G. c2 L5 a& v+ G
  58. {: e8 `' I) S+ O: N) _
  59.     int
    ; A, [; [- ~- |# T( x
  60.         status = 0;
    : ]7 F6 |+ a1 Z; s! x$ Z" {* T" Y7 H
  61.     char, k" M4 C! N4 X* Z; u7 G* K$ B
  62.         *message;
    4 [  p# `) y9 ?3 f
  63.    
    % ^, T, D& \7 v6 h1 M# S
  64.     ITK_initialize_text_services( 0 );
    ) k; r" r+ k0 W. M" Q- \
  65.     status = ITK_auto_login();# Y8 ]: _5 Q) O( h
  66.    
    ' z* U+ s5 Q5 `4 j" `# s5 Z
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    ! E& o4 a* H% _! D
  68.     else
    + E/ A( c" r6 S" a/ B
  69.     {8 j6 h: C9 h' Y
  70.         printf("iMAN login successful.\n");( z' ^/ I$ ]! l  r
  71.         ITK_set_journalling(TRUE);
    % A( f! ~7 R6 ?: J% O
  72.         do_it();
    ; Z+ X9 M6 T8 y! U' e* g& a2 c
  73.     }
    . u0 u' Z9 d2 A
  74.     ITK_exit_module(TRUE);
    + V; m, j2 x2 C% T- v& s* x3 Q
  75.     return status;$ q# M' T( a+ v2 e
  76. }
复制代码
& H1 T& {( x0 J4 }. `9 ^2 g
1 v) }. q) T. u* x' r( e& V

; R2 O! A3 l6 P6 ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了