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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

# z6 ^/ |6 Y4 G4 J: C. rTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
1 g4 C# x2 F6 K
! ?% I2 a; p( c+ j* N4 n
  1. #include <stdlib.h>
    * i. x. j: U6 I2 ^; q" Q! s# O# ~1 k
  2. #include <TC/tc.h>" X0 M+ v( S# }0 u6 r( B2 _2 }
  3. #include <sa/tcfile.h>
    7 m9 a, \9 _+ P& ]3 \
  4. #include <tccore/workspaceobject.h>3 V$ p5 p6 r- W
  5. #include <ae/ae.h># D/ }. e" i3 t/ m
  6. #include <tccore/item.h>0 \1 c- P4 F: w! A
  7. 0 F0 H( S2 @# ]- A6 I% Z) ~/ ]
  8. #define ITK_CALL(x) {           \8 a; [! S( b# b( J6 g
  9.     int stat;                     \0 V3 [3 m( M7 W6 W5 X( A4 Z
  10.     char *err_string;             \
    / j# H; |5 }( W0 P8 i5 e( G
  11.     if( (stat = (x)) != ITK_ok)   \3 }" X- b& Y* z& K- ?
  12.     {                             \) _, I" X% d1 L! b& r2 I# ^* u
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \. m% }1 t# R! j
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \6 k" \! ?# |  p, V: [7 ?" V
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \# h- z) ~% X. @% {0 q5 }7 H
  16.     if(err_string) MEM_free(err_string);                                \
    " s2 C) ~! o% q) a$ k
  17.     exit (EXIT_FAILURE);                                                   \
    9 E$ _5 Y0 C4 G. ?* E
  18.     }                                                                    \5 q3 Y* m0 J) Z3 F
  19. }
    + M  K& y8 D2 z8 W; `# Y- G
  20. #define EXIT_FAILURE 1
    5 r, ?# h; c' @$ G8 }
  21.         $ s) K. S( u$ e
  22. static void do_it(void)# B  w3 O. P' V+ h% K9 B! V
  23. {
    ; J7 g- U9 ^5 c
  24.     int
    6 \+ W; N3 j0 B$ U
  25.         n_uom,' I, n7 ~" r2 B5 L9 |8 c& \6 d
  26.         ii;
    4 z# \7 R( H0 m1 R: Q, [6 u3 n+ t
  27.     char
    6 H9 U; k7 Y, F( }- b2 j+ m
  28.         *name;, h7 Z1 F/ N7 V3 ?3 j- z: i. P
  29.     tag_t, A  X  D6 b7 W5 v$ x! Z% K7 D
  30.         *uoms," V  a- [! m0 `6 b8 v
  31.         new_uom;; X+ V' B% t) V# \
  32.     4 m& x, J( ~  z( P! [; o( m
  33.     printf("Before UOM was created...\n");   
    & B! N: L; L8 k
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    2 P" d1 @% y# z( \" X/ k
  35.     for (ii = 0; ii < n_uom; ii++)
    * y9 H7 j5 g# o
  36.     {
    8 h% _+ E0 `0 n3 a9 g# ?  W
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    ! W$ r# G  i3 T: c1 p( h" w
  38.         printf("\t%s\n", name);
    ( w9 V# z9 a  B0 y( C
  39.         if (name) MEM_free(name);
    2 @) z/ z8 H5 J- M3 v+ [5 q3 k( k
  40.     }
    ( D: V. Z" A9 _% ]" Z9 d+ x' h! i
  41.     if (uoms) MEM_free(uoms);: v9 c# b; n5 K4 U
  42.     $ f5 O+ M( p( P( C0 y
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    + Y, z% j: [/ [; N; ?" [
  44.     ITK_CALL(AOM_save(new_uom));
      f, k# g  |3 h* |' h" a
  45.     ' I- @9 E: C% S( g9 V
  46.     printf("\nAfter UOM was created...\n");   ( j1 T3 ]# X0 z
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));( R. r5 u( Z( D) {9 T1 W' u' j' D* m
  48.     for (ii = 0; ii < n_uom; ii++). j+ b, Q# C9 B' q8 c! u
  49.     {
    & ~' R; @7 V6 K3 {2 c3 i! @; @
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))  t. z  M2 m- u; A9 L9 s
  51.         printf("\t%s\n", name);
    / G/ s1 Y4 k: d) w
  52.         if (name) MEM_free(name);
    , {  Z+ l$ B: C6 S' L
  53.     }
    4 b; a" L8 m* O" o
  54.     if (uoms) MEM_free(uoms);  G* k8 V7 J9 @3 u: E, f
  55. }
    ) Z7 X# E  D' |1 o& J$ p0 @) M

  56. 6 s+ q9 l7 ]$ |$ b6 N3 y! u( E
  57. int ITK_user_main(int argc, char* argv[])
    $ O) }4 {, w- O8 A# R9 V/ Q
  58. {5 b1 a& I9 {: i2 \! P5 d1 V/ M( d
  59.     int3 x+ D* v7 \9 A; i, U/ [9 v8 U2 A" \
  60.         status = 0;
    * w$ H  i  R8 W+ E2 M$ Y  \8 ]
  61.     char( y) ^8 A: w9 Q, D! |
  62.         *message;
    2 c& j% F0 b0 E( v3 P9 O- @7 g; M
  63.    
    3 t- I6 b' D+ g- }' A/ \
  64.     ITK_initialize_text_services( 0 );
    9 n8 K4 u: S; l4 E' b0 Z* e5 D
  65.     status = ITK_auto_login();# I- {4 Y! z; W4 x; Y7 s' n8 `# L
  66.    
    8 w9 t3 L9 A' t
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");& J# J" ^+ O% s6 j# a& U
  68.     else8 W; F/ _% E" a2 Q
  69.     {
    % G$ q" H6 t4 m8 b
  70.         printf("iMAN login successful.\n");( z/ X+ \! d2 ?9 C$ D
  71.         ITK_set_journalling(TRUE);7 I3 D+ L9 X! G1 w
  72.         do_it();
    % |' e4 w9 G, L
  73.     }
    6 f; g' p( u  I  m% r* q8 c
  74.     ITK_exit_module(TRUE);
    ( r' ~' i' _; [" ]1 H- K
  75.     return status;
    : x( G# [$ j2 a8 T. O4 S+ K( j' e# W
  76. }
复制代码

* @% P: B7 [  J
% g; S% L) \/ y1 r. j# v0 D: x9 @4 e' Q4 J, T8 K( W+ J# z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了