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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

8 u- S- h% }, J1 V! RTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
& [; w0 R2 v7 s6 F3 x. J6 h/ Z6 v* P- K7 B# y2 O' g3 O5 N1 J
  1. #include <stdlib.h>) H+ [) Z1 W' c+ f8 s$ |1 \
  2. #include <TC/tc.h>& |- V+ p9 R/ U
  3. #include <sa/tcfile.h>" m7 z) Y* V8 f4 B7 s; I( [
  4. #include <tccore/workspaceobject.h>+ ~0 d" `5 U7 ^. f: U% h# k. W
  5. #include <ae/ae.h>! s0 {' H# O# `' \( E
  6. #include <tccore/item.h>8 n1 ~7 p" j# d- w! h% S5 G
  7. - [/ `, I" P: U9 P
  8. #define ITK_CALL(x) {           \
    ( d: C9 l' o8 j
  9.     int stat;                     \
    ( G, H) `7 p, H2 j6 M
  10.     char *err_string;             \8 ~6 e5 W2 Y6 b1 M+ F; ]
  11.     if( (stat = (x)) != ITK_ok)   \$ E" b; S1 l) A, G0 e
  12.     {                             \8 y' R7 m3 s3 P5 T) [3 a$ W
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    8 y- e3 Y: ^1 p
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
      _4 w9 [5 V! r& F. M" Q' k
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    0 r6 P" @3 f/ p5 e
  16.     if(err_string) MEM_free(err_string);                                \: u% I" i6 C0 ~  P8 v; N5 o/ j
  17.     exit (EXIT_FAILURE);                                                   \. Z! E, R) d$ A& t* T) X
  18.     }                                                                    \( D% N5 ?" M) _/ S" i2 x
  19. }) F- Y3 l6 r0 c; ~) X3 j# ~
  20. #define EXIT_FAILURE 1
    6 W0 \4 L5 C, h
  21.         
    1 d$ ~( G! d8 B$ s) z- O
  22. static void do_it(void)
    1 v0 j9 t- c: H: Q8 ?
  23. {
    # v9 m, ^' r/ G! j
  24.     int
    / D9 V( j: n2 ^- q+ s
  25.         n_uom,, j' Z4 p3 N+ p1 M2 ~- q5 [) R1 I/ H
  26.         ii;
    0 w2 e7 N) |% T+ j+ S+ l
  27.     char
    $ b4 |9 }7 Z1 q& [* r* `
  28.         *name;
    " u" q; `, U4 b
  29.     tag_t
    3 j9 f& K( d2 O5 a: @, `6 V  e4 j0 W
  30.         *uoms,
    " r: s* C3 I5 T- P
  31.         new_uom;
    # w+ b! p% h7 x
  32.     ) z: L. H1 S9 t7 k
  33.     printf("Before UOM was created...\n");    ! J  g0 W6 b* n7 i+ \- Q' C
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));; F! S7 G. k- u
  35.     for (ii = 0; ii < n_uom; ii++)
    1 X3 e( c2 ^8 @5 {. \
  36.     {- e6 t/ T6 X4 v% n2 h' e1 K: S
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));3 T6 w( S) R6 h- R
  38.         printf("\t%s\n", name);
    ; F% X0 @) f3 I1 ^0 j( `& s3 W
  39.         if (name) MEM_free(name);
    ! H! c. u' Q  U0 m
  40.     }( o0 T$ d7 p. T% p% u5 ]  |0 [
  41.     if (uoms) MEM_free(uoms);
    ) q' t5 H/ b; K/ E3 ~7 r& J
  42.    
    ; N  h7 a: i$ g" R( W# y7 Z
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));* E2 `& Y2 X9 Z; R  v
  44.     ITK_CALL(AOM_save(new_uom));; F% ?% f" C; R" `
  45.     - U0 \3 J8 b% l3 ]: V! G
  46.     printf("\nAfter UOM was created...\n");   3 v# B0 m- [. e) }, m1 h  ?" `) C" W$ `
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));' T# d8 ]& w/ r
  48.     for (ii = 0; ii < n_uom; ii++)5 N' t$ i9 r, g! O
  49.     {
    % T: r; A- k6 E7 r
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    " N5 u. `1 p7 d0 l5 b
  51.         printf("\t%s\n", name);
    ( b" l* B, [5 ^) h3 Z. b
  52.         if (name) MEM_free(name);
    4 `+ d. V8 i. \4 \5 o% v1 i) h6 M
  53.     }; g+ b9 k$ U/ P! f% h
  54.     if (uoms) MEM_free(uoms);
    - H4 z- Q- D! ?% S2 e
  55. }
    3 }+ r8 @" [, t
  56. 9 ]6 s; R# ]' i
  57. int ITK_user_main(int argc, char* argv[])- Z3 o- J- C* |1 h3 N6 q6 j4 {
  58. {
    + j* {: d8 X- M9 M/ A( i/ Y) F
  59.     int1 X" R* D% |" \) C3 e5 _$ h/ U
  60.         status = 0; 6 Z, K  G+ Q6 l4 X8 \3 p" D
  61.     char
    . l0 I3 @3 b: N6 e) a
  62.         *message;0 z% c0 e2 A$ i( W( S
  63.     9 p5 L+ g- o1 @
  64.     ITK_initialize_text_services( 0 );
    " \2 S# [5 |3 R' o4 F2 t
  65.     status = ITK_auto_login();
    9 w' R( Y- I/ |+ G; p, d% U$ ~* R
  66.    
    3 R7 q( u% W9 |7 V" B6 _
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");. E% k  D' {4 I/ Z' t$ ~: A* a
  68.     else9 E1 D7 J1 n# U( d9 B, K5 {& I
  69.     {4 p5 b& M% R7 u7 c4 Z: T
  70.         printf("iMAN login successful.\n");/ j; C. D9 T+ g, I0 c
  71.         ITK_set_journalling(TRUE);
    # Z) ^& C* B- X) N
  72.         do_it();" W& Q3 X& Q8 Z5 Z) k: z$ S
  73.     }
    ' \  z) P0 H+ _/ p6 v# }$ r: @3 |) e
  74.     ITK_exit_module(TRUE);' E3 C1 T5 d$ z
  75.     return status;5 N! @' ]5 Y) ^: v, Z! @
  76. }
复制代码
% d& h/ p' \' V: g" X, E
9 @7 z- s- F( \

! g/ {0 B, ^6 v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了