PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x
! S) I9 B# g- C/ Y7 Y  Y
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures
- q& d! g) H6 Y
8 y4 a- ?: k- K8 t' ]
  1. #include <stdlib.h>% t% p( p& o+ g/ T/ ~
  2. #include <TC/tc.h>
    3 p# ?3 U; I% R! w+ w
  3. #include <sa/tcfile.h>
    ! p4 `" ]- x7 W
  4. #include <tccore/workspaceobject.h>
    6 M5 F8 [3 H. P; J% u$ f  F
  5. #include <ae/ae.h>
    3 z! A' R& t2 M* `
  6. #include <tccore/item.h>
    & o' g( Q+ l2 L7 P

  7. # m/ J( F9 r2 L7 v! m+ B9 L+ H
  8. #define ITK_CALL(x) {           \
    , X: g) v% N! X$ S6 z" ~
  9.     int stat;                     \' V8 H. y* ]/ o
  10.     char *err_string;             \( @5 M; a$ H5 w( ?; L
  11.     if( (stat = (x)) != ITK_ok)   \
    , {9 P; u" ~! [" g
  12.     {                             \& j( g- v4 N+ C  ~& h/ G, M
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
      R, N* _2 m, J6 O4 V4 e
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \' I- h" N4 z4 G: d5 s
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \/ `- F% p* ~" p! o* k: ]. I: h- g
  16.     if(err_string) MEM_free(err_string);                                \9 L% w8 c. m" k1 V$ n
  17.     exit (EXIT_FAILURE);                                                   \0 l1 c) ~0 ?' I5 c
  18.     }                                                                    \
    8 J4 i* w# i! \1 ?
  19. }& o9 ~) N# x: y' w& G) S0 V
  20. #define EXIT_FAILURE 1 % S" N! c6 B5 M  K0 u) z2 I
  21.         
    , |  l  i+ o& Q* n$ h6 v
  22. static void do_it(void)
    / y1 A# ]5 o% ?3 a/ K) h* }  p6 @
  23. {
    : N1 E% G5 @& u1 j: N. j
  24.     int
    : [( Y4 p& u, N
  25.         n_uom,! M8 G, T# d, E- w5 N& ~6 f# \
  26.         ii;: @# U- L( H* a; z
  27.     char
    8 o, ^: M; k" W  b( G! r4 G
  28.         *name;
    ! x. D# X8 v5 k7 w  ?
  29.     tag_t
    5 }4 u7 |: ^  @5 w& U
  30.         *uoms,
    * e( z% A0 W9 g9 @& S
  31.         new_uom;
    " i' x! I5 q. w! Y( h# g- a+ `
  32.     1 D# e9 a- Q7 p' r
  33.     printf("Before UOM was created...\n");    & v4 j0 ~& X; ]! x0 a( d" x
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    ) R. J* e1 N7 S
  35.     for (ii = 0; ii < n_uom; ii++)
    * k- p" o5 ]( L. i
  36.     {
    + P( y- O! N6 H; l. `# L$ q# d
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    % P( G3 b. u" [* [" I. ?! v9 ^
  38.         printf("\t%s\n", name);' C& ?! p- P+ q3 C5 R
  39.         if (name) MEM_free(name);" s/ }* _7 u) M2 T
  40.     }
    1 l7 ?$ e3 \& Z& O
  41.     if (uoms) MEM_free(uoms);% G4 a  F9 |6 P! C
  42.       z4 g% i4 U6 P* w
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    6 }- K2 {6 C3 [" Y  E8 d! F& T3 {; a
  44.     ITK_CALL(AOM_save(new_uom));6 M0 k- ?) [& Y; n& I4 m: _
  45.    
    + z; a. H5 H5 J9 M) X
  46.     printf("\nAfter UOM was created...\n");   + {: G( _  P( {7 y5 _; t. [$ }+ {
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    2 p, Q" V4 k7 ?
  48.     for (ii = 0; ii < n_uom; ii++)
    4 G( `! x$ G& H- P: f7 M
  49.     {
    . Q/ S& M  S, L% `0 Y( K( _. m
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))) A. z* M6 m/ _$ ^, {: w/ U0 z
  51.         printf("\t%s\n", name);
    8 p! n/ D4 n* K1 n% h( B; ]
  52.         if (name) MEM_free(name);8 S, [; v* c3 k: N; _, K4 s
  53.     }- b# Y' i) t9 T" g8 S. D* n
  54.     if (uoms) MEM_free(uoms);
    7 @: V  q7 N+ K0 V9 }5 r! l
  55. }4 g3 j2 p! j3 j$ K; l1 s8 \4 c0 S- k
  56. ! g$ q% ?0 F+ j8 y6 O' j4 P! _
  57. int ITK_user_main(int argc, char* argv[])
    , _' B' Z3 x  X6 X$ v* c
  58. {' n2 u7 C) s, u$ m- V$ J" v
  59.     int5 D$ A+ k, N7 d3 R
  60.         status = 0;
    : ^: @% u+ d. j
  61.     char3 |2 ?* i' o- l. U, R5 S' j& F
  62.         *message;+ u3 \+ q2 A7 v5 j7 K2 S; X
  63.     ' ~- G; Q3 _$ C
  64.     ITK_initialize_text_services( 0 );1 x. g! S7 ?9 U" Y2 r: f* @* B7 T2 D
  65.     status = ITK_auto_login();
    ; T" ^4 @9 u! i. g( [
  66.    , y9 I7 [7 B; B- h% x; y  N- i
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");9 V; F/ o% ^8 |. ]
  68.     else) M3 @7 r( M: ~# k3 a8 t- h
  69.     {
    & i5 Y; p) l& Y& \! Z6 z
  70.         printf("iMAN login successful.\n");
    $ A, a! J/ E3 q0 y9 r) v4 w
  71.         ITK_set_journalling(TRUE);
    0 H* }! \' D  A2 u$ T; J7 L
  72.         do_it();. z- o( U" v% ?0 E1 U% w
  73.     }
    9 `; a9 W+ C2 ~$ |3 B! _5 _
  74.     ITK_exit_module(TRUE);
    + O! X% d+ o3 \2 v
  75.     return status;3 f: U3 F( c+ S% K* L' A% c
  76. }
复制代码
$ Y' m9 ?" x) |2 `
& l3 u2 z: Q) A  a

) B* F" p2 j5 n6 c- ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了