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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
, O% \7 ?% h( \7 J; `4 `" w" y
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures. H7 Q* O$ G3 L% M9 h2 m
3 C. Z! H. R' K$ I; \
  1. #include <stdlib.h>
    ! G5 {- K; ]9 ~. W
  2. #include <TC/tc.h>
    ' P! W' n  m* m8 R4 }
  3. #include <sa/tcfile.h>, B4 C/ V+ P* B7 o1 r
  4. #include <tccore/workspaceobject.h>1 `% E9 p) x3 E  o" w3 s
  5. #include <ae/ae.h>6 g' Z( ]% o. t% M/ n4 V& A0 I
  6. #include <tccore/item.h>0 d6 o1 q6 b' r' r- K1 B' H9 g1 a

  7. 1 z, S$ d, V8 ~& s3 U
  8. #define ITK_CALL(x) {           \
    0 v; R  p9 n2 A1 m# k
  9.     int stat;                     \3 ?  f2 M, B2 D
  10.     char *err_string;             \
    + z7 W3 C2 {# y5 f
  11.     if( (stat = (x)) != ITK_ok)   \
    0 q% ]2 ~3 {0 y" m3 L4 l/ O. P3 m
  12.     {                             \
    : A, X# X2 {2 Z, d
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \& G( \1 p* W1 ^  e: F# I
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \0 q% `5 K  h& C9 s
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \2 J5 G% |' B- _. G/ `/ v4 ]! u* \% y- a
  16.     if(err_string) MEM_free(err_string);                                \8 [# g+ ^* ~/ {5 I4 k- u
  17.     exit (EXIT_FAILURE);                                                   \6 E- z/ ?, E5 D/ p
  18.     }                                                                    \3 ?; A& B- s  j' u1 _7 `3 U
  19. }
    ! W5 B% X$ Q/ l  `2 T
  20. #define EXIT_FAILURE 1
    , [( r9 D9 Z: @2 _9 m# f+ n% J/ U
  21.         ( p8 Y  Z5 O8 v8 c: \& b
  22. static void do_it(void)
      x. W# }/ W0 H% d, ^5 n8 Z
  23. {
    6 Y. r# [' h9 g! ~! L
  24.     int
    1 u4 o+ d* P' ^
  25.         n_uom,8 o2 t; g8 u9 ~  T/ L# k: Y# |& `
  26.         ii;: z% b0 [: ]7 D, `" k; ^' Y
  27.     char
    # O+ f1 t: M7 u$ k. o
  28.         *name;
    . W3 E% `4 i  y  P3 m
  29.     tag_t- n& `, u! y& E; s5 F
  30.         *uoms,7 A& S+ g+ ?2 j* w2 O
  31.         new_uom;
    ! Z4 U+ P% ~5 w0 j" o( K3 b% ^
  32.     # z# \1 @/ _  L7 _+ n# I0 |
  33.     printf("Before UOM was created...\n");   
    / D" X3 ^2 O  g0 ]; D  J
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    " i, p; B' w0 f( J9 F5 J
  35.     for (ii = 0; ii < n_uom; ii++)% l) A; Z. b- Q
  36.     {
    " }8 S3 T/ t, J" b
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    ! G5 |9 A+ ^3 f7 V9 ^
  38.         printf("\t%s\n", name);% P3 Y; i+ T" u% i" F/ {" Z
  39.         if (name) MEM_free(name);
    - R/ N, ^; m) z" w0 D
  40.     }
    2 I2 A' h8 L1 x$ L$ t' \
  41.     if (uoms) MEM_free(uoms);
    9 e$ T& j7 n8 B& X
  42.    
    1 k" ]/ V: A* |2 X2 S# h
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));) R# X, P- ^" @) G+ H: j/ K1 |! W
  44.     ITK_CALL(AOM_save(new_uom));! v3 |) H# T3 g$ w0 d; a
  45.     * \: w& ~6 D, N" c1 a0 o
  46.     printf("\nAfter UOM was created...\n");   
    4 g' f# \% D4 j6 A6 ]
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    $ }0 Y9 ]! B2 k# X
  48.     for (ii = 0; ii < n_uom; ii++); I/ k: }3 k& B2 g$ }
  49.     {
    0 L3 x$ Y( }, E2 P
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name)): W) y2 s4 H: d; Z
  51.         printf("\t%s\n", name);
    0 Q2 t5 k5 v4 }( T" r& l/ Y. x
  52.         if (name) MEM_free(name);
    3 Y9 q' B& X3 R, c" \1 z* h! B
  53.     }
    9 a$ {' S$ ~, h
  54.     if (uoms) MEM_free(uoms);
      I0 R$ p# H9 z* f9 X# l
  55. }
    ; Q1 a/ ^! S" h6 _) n
  56. ' H- B1 u4 K. i
  57. int ITK_user_main(int argc, char* argv[])) b3 J! H5 Y- R  W4 G- [
  58. {
    / p5 s& J; y" C
  59.     int- W. T! w, d* u+ ?$ M4 `" e; ^
  60.         status = 0; - L2 w% p9 L5 Z  l" R
  61.     char
    0 X! d# X4 J; u& b2 c$ ^
  62.         *message;1 [6 t7 |+ D" Q7 K
  63.    
    & a+ w; W  Z: |# I7 [8 s
  64.     ITK_initialize_text_services( 0 );
    # b+ ?( Y5 p+ f3 z3 h' t5 k7 Q2 t) N
  65.     status = ITK_auto_login();# |0 A8 J, c$ n0 D" K5 J) g
  66.    * {$ m* I1 }/ T& h' M  t  w
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");& o4 }" f" ~6 ]
  68.     else: P5 s1 p  V+ U4 F+ y8 v& i% Y$ T
  69.     {4 p2 |2 \, D) y- ?9 B2 L* R. i9 \
  70.         printf("iMAN login successful.\n");
    6 \2 q  A0 \$ O: h2 T
  71.         ITK_set_journalling(TRUE);
      r" M: E! i$ H$ G+ e( l* n
  72.         do_it();
    : Z. H. t5 z. c' t' {1 a! B) G
  73.     }
    5 z: B! Y& M) U4 G/ ^
  74.     ITK_exit_module(TRUE);6 H  ~2 l: o, j7 \. Y8 C) z
  75.     return status;
    0 f- u' p0 @* i
  76. }
复制代码

5 u9 k  {9 @) D9 A( U5 d. p  m
) m8 w2 t' I+ I" h6 e* L5 k% ]! G; l! h! @) U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了