PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x
1 K; q% X+ u' t' v
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures. {& X" L4 R" S  ~

! T# R& K: G- i( G7 M
  1. #include <stdlib.h>* u9 d+ |# P, k$ a# U! u) I
  2. #include <TC/tc.h>% N3 ~7 X  P( e$ g8 H7 ~$ {1 D
  3. #include <sa/tcfile.h>7 y+ A  h  d: l1 d) D% k0 U* \2 B
  4. #include <tccore/workspaceobject.h>7 {2 z) @0 M$ h1 L1 R
  5. #include <ae/ae.h>
    ( W% }0 E1 c, C* _9 o0 ^6 ^' Z
  6. #include <tccore/item.h>( f2 l* w  S' N; R1 G" E! G

  7. ; l7 ~2 M% e$ k: v- h3 [& E
  8. #define ITK_CALL(x) {           \) i8 |+ ]  O" x* A. E, i' P8 N7 Q3 ~
  9.     int stat;                     \" j1 u7 z$ e9 D6 A
  10.     char *err_string;             \
    3 e" N  G4 S5 R, K2 R
  11.     if( (stat = (x)) != ITK_ok)   \
    $ }8 @4 Q5 i6 S3 S: ]
  12.     {                             \# n+ K) I! |4 m: R
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \- n- j# S) ]$ x- X3 ]4 c
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \- ~# D& e8 Q# |/ R5 U8 _
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \' j& R% c* F$ n3 F0 x" I
  16.     if(err_string) MEM_free(err_string);                                \6 v& A9 l9 X& r4 X2 \  Q
  17.     exit (EXIT_FAILURE);                                                   \! C9 Y( X# y% L2 `* }
  18.     }                                                                    \0 w0 D# ?  @( Y$ ~# w; _) E
  19. }6 |# \% g# v& k1 M' S
  20. #define EXIT_FAILURE 1 % ~4 i4 T- B, `- ]+ c
  21.         
    ! {" A3 I  R4 m: ~& ?
  22. static void do_it(void)
    9 ], g4 z  \! O3 h$ O3 Q- t
  23. {
    5 O( x6 e0 }# e; G& a
  24.     int. n% n/ s4 W/ Y4 l; R1 ]3 j
  25.         n_uom,
    5 x! N0 w% \: l- D$ i
  26.         ii;
    ( T4 }1 E' Q5 y8 v; @
  27.     char  V/ w. V' V: M/ }7 k. F# n
  28.         *name;
    & N# h* h/ J$ J
  29.     tag_t4 S% `9 v+ t; b# ]! N
  30.         *uoms,, B4 Y. ?4 D1 |4 Z8 X; `
  31.         new_uom;
    0 ?6 j, M% Y4 Q3 q9 n/ U
  32.    
    ) _) l) k# t+ d, H
  33.     printf("Before UOM was created...\n");    1 |7 k8 L: D9 H* l
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));  m  ^0 _6 {6 a8 K4 L3 G
  35.     for (ii = 0; ii < n_uom; ii++)
    # v* ]- D7 K0 h5 D* C+ u
  36.     {7 K: o- a) s# H3 u0 \, p. L7 {9 x
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    ( A! a3 `0 Y0 ?2 ^, b
  38.         printf("\t%s\n", name);+ @% o9 w" Y* ?0 h
  39.         if (name) MEM_free(name);6 J+ i  ~6 v$ n
  40.     }
    6 w& m$ M6 P3 O8 _% T4 c
  41.     if (uoms) MEM_free(uoms);! Y& {) U! E0 s( ^+ ~3 ~0 U
  42.     2 m6 Z1 s1 Z9 B9 |: v  }+ Q( B& L
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    : c# H  Y$ Q+ h+ O+ [8 o
  44.     ITK_CALL(AOM_save(new_uom));: @' \/ a/ ]2 ?' @; n# \
  45.    
    6 |* I0 n9 B8 j, @, m; x
  46.     printf("\nAfter UOM was created...\n");   
    * e" s- v6 {  \% i& \- `
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    8 A" h# }  H0 J0 [- r: e  u
  48.     for (ii = 0; ii < n_uom; ii++)
    + G; P3 M7 c* \  v8 N0 B2 @
  49.     {5 f+ R" U# b9 p: U0 M5 V
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))( x+ ^% B& N" T  o& g
  51.         printf("\t%s\n", name);$ J1 g) P, k, m% Q) T$ ~/ X  \# s
  52.         if (name) MEM_free(name);
    & |0 a. B# g6 u  X
  53.     }
    ! }' w# N* Y7 D( \6 G$ ~9 p3 L
  54.     if (uoms) MEM_free(uoms);
    6 d- n; X5 b* K+ T8 W
  55. }% U6 ~5 K' J( q; b1 j

  56. - e6 e/ \. m: H; _: r' C4 w* f- k
  57. int ITK_user_main(int argc, char* argv[])' i+ `1 B+ a: G
  58. {* E# V8 @. q2 A( R3 t) s0 f( _- m
  59.     int# N' e+ `! i; \  i3 `
  60.         status = 0; ( `# N( g9 _7 O6 U
  61.     char! ]  q! r! Z, v# Y% J8 P
  62.         *message;% P6 T) m. h: S
  63.    
    * ]8 p7 R$ j, `6 w
  64.     ITK_initialize_text_services( 0 );
    ( }3 u4 p9 e/ w, d. n5 D
  65.     status = ITK_auto_login();' O7 \8 ~1 z! g; c5 f; M+ ]" v) z
  66.    
    - z, d0 e7 r6 r! f8 H$ u* ?
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");5 Z1 u; ]) {- @; k) W. s, h: r
  68.     else
    ! O' U* S5 S; V" a% I$ z
  69.     {8 l; Z0 `% ?9 w0 E& O
  70.         printf("iMAN login successful.\n");
    ) D+ N1 p- @1 |8 P
  71.         ITK_set_journalling(TRUE);1 F) ]% ~. I  E' d" d) O
  72.         do_it();
    : N2 J" t) g  U) |( i. v  {
  73.     }8 W7 m) N. A/ A3 j
  74.     ITK_exit_module(TRUE);  X$ G, B1 ?: p
  75.     return status;6 q5 Z2 T. s6 f9 m( p
  76. }
复制代码

" ~7 q. L( w( a4 [! S: t) g/ `7 K6 \2 @; l
( ~; [. H* C# w; 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二次开发专题模块培训报名开始啦

    我知道了