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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

! ?/ q/ g: a" |Teamcenter ITK二次开发源码分享:创建测量单位unit of measures( w8 y7 Q: W( H1 i5 T
( i0 R) b1 \3 r, l) ]
  1. #include <stdlib.h>
    7 t" |8 }5 h+ x7 l1 m5 ?, n; K
  2. #include <TC/tc.h>
    ' x* H2 @; [* e9 E9 t5 N3 j1 W7 D
  3. #include <sa/tcfile.h>
    ' J, ]. W( N: t0 ], ]/ A& V1 f
  4. #include <tccore/workspaceobject.h>0 Y* l3 U9 `8 v& d, K2 n6 Q' o
  5. #include <ae/ae.h>  i5 `/ K; [7 n8 F: v- s# B
  6. #include <tccore/item.h>& @. S' C5 [1 o' J- r

  7. 6 i0 q+ V6 x/ Q! W9 e4 s
  8. #define ITK_CALL(x) {           \" C7 Y7 A9 k1 ~" n& `& d
  9.     int stat;                     \
      u: Q' {+ d0 D  q2 I
  10.     char *err_string;             \
    & P# A4 B1 E4 c5 x0 g( d
  11.     if( (stat = (x)) != ITK_ok)   \
    5 p7 t1 T; u& d3 K0 ^) K6 b
  12.     {                             \
    8 B( f+ L' T1 T4 ]/ Y" R' n
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \) c5 I7 a$ X4 o6 i! D6 z, J+ d/ R
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \; i2 H/ a6 a- z
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    , U& m# R! v( a) p' o
  16.     if(err_string) MEM_free(err_string);                                \
    3 k5 s4 D7 K) X' K1 C  x. p5 T
  17.     exit (EXIT_FAILURE);                                                   \. P- }4 r7 L$ z. |+ p
  18.     }                                                                    \& ^/ S; {, k! h& ?' T
  19. }" Q5 Y, w% s: Q& i$ V
  20. #define EXIT_FAILURE 1
    & y) I5 }8 s4 u) c8 k
  21.         0 e1 q* k- n- G6 w
  22. static void do_it(void)
    $ P- V: y. o" [
  23. {1 C$ G' ~- b" D2 B0 U  j
  24.     int
    . T% \* `" V9 s" h$ @
  25.         n_uom,
    & z) E' e! b+ G. w+ t: P$ R
  26.         ii;
    0 z. ~, k* d1 ^9 w; T3 J2 r' |
  27.     char
    # n9 k; x/ E5 ]9 b# B
  28.         *name;
    8 |8 P( s! c/ f% a' @
  29.     tag_t) O) W+ \# u2 ^* O% d, b: n; [
  30.         *uoms,0 G- m+ t4 F3 a0 L3 ]
  31.         new_uom;2 Q9 G5 Q* P2 N2 e8 h
  32.     + g# v7 q4 b) ]7 _# f) h
  33.     printf("Before UOM was created...\n");   
    7 y+ w1 q% L  [! D
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));2 ]. r' `" _* v
  35.     for (ii = 0; ii < n_uom; ii++)6 X% t1 o1 c' W, o4 ?
  36.     {) j+ k4 r6 @# X/ z9 Z) K# D% r: g
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    . r7 Y. Y7 x# J" y3 J/ n" _
  38.         printf("\t%s\n", name);3 w5 O; v+ O$ i8 o1 b2 f1 S8 H' z
  39.         if (name) MEM_free(name);
    & v5 S' }& L2 G( S' d' P; W
  40.     }8 i1 d2 S: P! O  s4 _. Q2 i3 T
  41.     if (uoms) MEM_free(uoms);! _1 E+ j, s4 \4 e
  42.     $ H# V  r/ [# j' D4 E
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));# d5 i  \. F+ I! h. K" g7 q
  44.     ITK_CALL(AOM_save(new_uom));! N) M, X  O: U1 M8 F) T) t
  45.    
    " ^  \8 S' W- q+ m2 j. C7 z
  46.     printf("\nAfter UOM was created...\n");   
    * X, ^9 [' f* |3 N
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));7 Y) k/ e  N* @9 E4 i& V
  48.     for (ii = 0; ii < n_uom; ii++)* z7 Y+ Y1 w  O0 B% B0 B
  49.     {5 a  o1 M2 ?& _3 N! i! Q
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    ; Y( V3 J3 X/ B) C
  51.         printf("\t%s\n", name);, I, m: E. D) Z, A
  52.         if (name) MEM_free(name);! f6 `: T6 D# y
  53.     }( Q6 P+ \7 l% Q2 m' F7 t) P" g% t% }, A
  54.     if (uoms) MEM_free(uoms);
    2 F& u8 n" {5 c- j! Y
  55. }7 O9 x0 B5 g) M# _

  56. ) t( W& E0 `& y
  57. int ITK_user_main(int argc, char* argv[])0 Z! _" Q1 x; N" U4 M% v
  58. {2 y( D0 K% {1 B" Q
  59.     int: w% \) \, s& ], {
  60.         status = 0; 2 [4 C6 \# f1 M
  61.     char
    2 X9 n1 _; H# u' N5 J& k4 b# k8 y
  62.         *message;
    1 D/ }3 R! r: O2 V4 ^5 [  r8 F
  63.    
    , ]' K1 h! A; ]# B' R* K
  64.     ITK_initialize_text_services( 0 );, y$ |& H) k% o9 R5 c
  65.     status = ITK_auto_login();
    ' h2 F& Z( w; F1 T) Y, h7 j6 e
  66.    & j# I$ E. x" E( s- U& V5 P
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    4 A. y5 F7 O0 @- B/ @, W6 r+ f5 q
  68.     else! a3 |+ ~! j% g1 m- o: C- g
  69.     {
    / V# v* B6 {( y$ {* }0 }" [
  70.         printf("iMAN login successful.\n");" ~0 e0 ~4 W1 y; ?: G2 U
  71.         ITK_set_journalling(TRUE);
    * s* Y/ t4 z! G, Z& m' }
  72.         do_it();' l) K) j$ i) @
  73.     }; w8 ]& ^, V' k. S$ n. p+ p' w
  74.     ITK_exit_module(TRUE);
    " ^7 z, }+ `9 U  t
  75.     return status;
    + U- I) g. r2 H6 K) I4 d+ s2 S
  76. }
复制代码
- i7 v' s. f7 l2 Z2 c2 B3 p

% {$ `, ]  s" D* b5 q1 M7 t6 f/ j# Q  y0 m) P! ~/ m5 ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了