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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

4 H$ O/ a% b" M' K+ p4 _. x: G  `" ITeamcenter ITK二次开发源码分享:创建测量单位unit of measures
/ u6 n' N( R3 l; y0 |1 {% ?1 a: r2 M  J. _  }, h8 `
  1. #include <stdlib.h>
    3 f! ~7 \5 u  g1 r& @' t
  2. #include <TC/tc.h>
    : o) o. n4 k8 P/ ]
  3. #include <sa/tcfile.h>6 ~6 L/ B) J' N9 w0 x
  4. #include <tccore/workspaceobject.h>
    # ?/ @. I( t; _* u: p) h
  5. #include <ae/ae.h>
    " X# R) P: Y! i
  6. #include <tccore/item.h>  M9 k7 n) N- \8 X* l' A$ c; }

  7. 5 z7 [8 C2 R# z
  8. #define ITK_CALL(x) {           \
    ; D2 [, G- I0 ~! t
  9.     int stat;                     \5 C# r) r  s! h' H1 Z( b
  10.     char *err_string;             \$ O. I' O+ I% }) T" L- \0 A; T* X
  11.     if( (stat = (x)) != ITK_ok)   \
    5 P' A6 V" n% [. f1 v
  12.     {                             \
    6 t$ t7 p2 t0 E9 q+ b
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \% w$ |9 ~6 x8 ]7 {
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    6 q  Q0 _+ o3 ^
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \5 l8 w7 p- U( L; \
  16.     if(err_string) MEM_free(err_string);                                \
    6 {2 s1 Y1 g+ w* b
  17.     exit (EXIT_FAILURE);                                                   \/ ~* T4 A# Y5 o% ?9 {
  18.     }                                                                    \. [  M" L9 O4 ?& n; ?2 g0 Z
  19. }
    $ b4 i6 J" Z0 A" [5 t" `
  20. #define EXIT_FAILURE 1 , V0 x- z; i, [8 O
  21.         
    / J) n, `; e( C) F
  22. static void do_it(void)
    8 B" E2 d/ O/ V- i% a; G- |' }2 z) i# L9 o& v
  23. {
      b3 N1 Q7 n: M3 S
  24.     int7 {3 f# B5 n- J9 o/ c
  25.         n_uom,* u  H- R6 I; n8 B  w* L
  26.         ii;. [1 E! g, w; U! t" F6 K
  27.     char
    1 V6 W; t* D$ A6 }* h7 z5 a
  28.         *name;2 {; p; y3 l6 t1 ~
  29.     tag_t
    4 u4 i4 A: y7 {
  30.         *uoms,' Y* C2 @; b' y& M" u
  31.         new_uom;
    5 y8 R! Y% E, s6 P  r7 @6 P" W' u! l3 f
  32.    
    ! Z, F2 t; ?- U( O$ E! o
  33.     printf("Before UOM was created...\n");   
    * e( _6 m+ }5 d7 [& v- R- {
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));  Q- c* j$ a3 |" d9 B
  35.     for (ii = 0; ii < n_uom; ii++)
    ; b+ G. w+ X' f3 d+ s( Z# u
  36.     {
    / C8 L1 a5 Y( v+ i( q" |
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    4 m: n% ~% B# _! ?% Q5 u! r
  38.         printf("\t%s\n", name);
    & F& B* G3 n6 `- b/ D( s6 v- x& m
  39.         if (name) MEM_free(name);
    1 ^; s0 {/ g1 ^, P
  40.     }
    , K" a: l* q1 b& y/ Q. o
  41.     if (uoms) MEM_free(uoms);) q3 ]% Q% z8 @7 K
  42.    
    4 [2 n# W- z- T8 u$ O. A& s/ _
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));2 z9 [6 X% H/ j1 [5 @. h- y2 g1 g* x
  44.     ITK_CALL(AOM_save(new_uom));9 C% ]# ~+ B# }0 x" v- b
  45.    
    # F% B- _7 g  |2 Y9 C
  46.     printf("\nAfter UOM was created...\n");   
    ) T- M' w2 `# ?; j/ Z4 r' y
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));/ l" ]; w- p. W+ F3 N* ^* o$ N% J
  48.     for (ii = 0; ii < n_uom; ii++)+ N. U: b% V7 m4 {  l0 J
  49.     {5 j' H' `2 y* `1 f. Y( h
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    * ?& }) _$ |" m" J5 @
  51.         printf("\t%s\n", name);
    4 E, W3 ^, }# w$ O, ?# c! p
  52.         if (name) MEM_free(name);1 P4 R* E+ E& ~4 \, I6 }/ t" N
  53.     }3 @( |( n, F. f: n7 `
  54.     if (uoms) MEM_free(uoms);
    - H! J- ^$ y) N8 h
  55. }
    ! B( L* |9 r5 Z. f; L2 n/ A! c
  56. 9 K8 _' y" g" _: M, Q
  57. int ITK_user_main(int argc, char* argv[])
    % n3 ^# n4 G" y: G* V3 ?" \
  58. {5 G- n6 h: A8 v6 I5 z
  59.     int
    $ ]. i% M) F+ t2 U( X5 M4 v8 T
  60.         status = 0; , J3 Q6 w2 X  l; T6 m! G
  61.     char
    2 @+ j9 j% Y4 P$ E* h; V
  62.         *message;
    : {- P! y! p1 k. B7 t
  63.    
    4 m. w; o# Q1 m# `0 c# ^0 l
  64.     ITK_initialize_text_services( 0 );+ G! \' q  b' z
  65.     status = ITK_auto_login();7 k5 f0 X% @! D  X2 r  z
  66.    
    / Q4 X% w/ n/ ~( ~4 B) Y" O. l5 o
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");+ M9 \4 p3 o* K6 ]4 [
  68.     else0 E8 G* E; V4 U% |
  69.     {( @8 @: [3 U& }8 H3 n! B8 |9 d/ E
  70.         printf("iMAN login successful.\n");
    * \) b) W9 A5 d! L( M5 N
  71.         ITK_set_journalling(TRUE);+ t% }; ]: j3 z; a  @  B, H$ g
  72.         do_it();$ a5 `! j& T8 C7 f
  73.     }# a9 r$ X- S+ m6 t8 Y. n& j. s" b4 _
  74.     ITK_exit_module(TRUE);$ y( \1 T. e* p4 p7 [" m* D( a
  75.     return status;/ }& d! n2 P8 o0 ~2 z- O
  76. }
复制代码
8 e- }. e3 N1 j( ~7 R9 a4 e
- ~& t! F5 q. I; }  |

6 H! ^/ f& q' @2 ]6 P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了