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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

) n6 R8 H( C3 MTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
* y, K2 w/ j9 _2 C- Y+ j
" C8 D$ \. h' _8 W
  1. #include <stdlib.h>+ X8 o5 e8 r3 p6 O: k# A$ g3 a
  2. #include <TC/tc.h>
    , y6 X! L% f: _' }9 N% D9 `6 N0 @
  3. #include <sa/tcfile.h>* n, L# z; @  G, W
  4. #include <tccore/workspaceobject.h>
    3 v  z$ C6 Z/ J& }' B- K: R6 U
  5. #include <ae/ae.h>4 X' w6 A# O& U, |& |5 f9 s* l: O
  6. #include <tccore/item.h>; y/ X# c3 P' Z4 F
  7. ) L  s$ u1 y" Q* Q
  8. #define ITK_CALL(x) {           \
    . E: V& M$ Q9 `: o- M2 H3 N
  9.     int stat;                     \
    7 ~) u7 u( U; K
  10.     char *err_string;             \' l, q9 T1 O' M5 B+ Z
  11.     if( (stat = (x)) != ITK_ok)   \' e: G* `$ ~, V4 e2 Q
  12.     {                             \
    8 Y2 N3 u) Y! I9 ]- F! A7 [( `
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    # C3 {& e4 l. D; o
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \2 \( ^$ j% j( U; g
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \+ }6 J( S# {6 h" U2 z# \$ X# L$ O
  16.     if(err_string) MEM_free(err_string);                                \
    - N' |. P- l/ {# y5 c
  17.     exit (EXIT_FAILURE);                                                   \
    % ?; n6 {3 J* Z4 \8 [3 y) D
  18.     }                                                                    \9 A, b$ o  [- |  r% Z
  19. }, S- O$ E3 Q# i/ H( E. g7 w
  20. #define EXIT_FAILURE 1 - L! H' B0 a: O' G, H2 _
  21.         # S9 n+ F7 }) |  ]
  22. static void do_it(void)
    3 q6 k- ^! A% @1 v& I
  23. {" [0 e5 E: m6 v; t) o0 A
  24.     int3 s$ K$ p2 P* O9 X$ Z& D9 A% n
  25.         n_uom,& \+ q7 E$ |9 A: J5 D
  26.         ii;/ ?2 `3 b! q- Z$ Y; |2 @8 ?
  27.     char
    4 h. C- E1 q# [' w  P' I6 H5 A
  28.         *name;2 Z3 B2 y# D, F  c) V# t, L6 T8 l
  29.     tag_t. t' x5 v) \: ]  [( {3 A5 I% J6 n
  30.         *uoms,
    & s3 X% ^8 O0 z
  31.         new_uom;
    4 ~2 x% O- y* B0 f
  32.    
    " S! I% [$ L! ?, Q) g: y
  33.     printf("Before UOM was created...\n");   
    0 Y9 k! U6 y; [: [4 L0 U% r
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    & d2 R/ @, h& I/ v) O1 `$ r  Y
  35.     for (ii = 0; ii < n_uom; ii++)
      Z' z: U, B: k) ~. k' A5 [) \
  36.     {
    , W7 G% M& ?! l/ @& a& h
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));& Q2 I' F4 t  S0 P6 j
  38.         printf("\t%s\n", name);
    * e  i$ t6 w( N$ Z+ l; g4 G& B7 {4 O
  39.         if (name) MEM_free(name);, Q8 M" h+ A# {3 |3 A" F( B3 K" s
  40.     }
    & l- A- \" B, i, d& k
  41.     if (uoms) MEM_free(uoms);, M  m& J  G& Z. G# b2 Y9 l
  42.    
    3 j) @6 N& u; Q  {2 R
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    % S+ M' g2 u, e2 U' ?4 o2 Y1 V4 C
  44.     ITK_CALL(AOM_save(new_uom));
    & ?4 E* N) L5 `% R. C0 B( w4 S/ R7 i
  45.    
    - C% Q2 N( c+ F( ?3 @
  46.     printf("\nAfter UOM was created...\n");   ! P% B2 p3 r% {/ L: X/ O
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    * X9 m9 N5 Y' j) q: X
  48.     for (ii = 0; ii < n_uom; ii++)
    " ]( L1 _% g, l) E) z; ~8 z( s
  49.     {
    % p3 R6 d# i8 q+ \# V
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    ) V3 l/ y! h% y9 s' m6 a
  51.         printf("\t%s\n", name);' A% c2 C% T) w1 a
  52.         if (name) MEM_free(name);5 k3 L$ ^& V  [+ D
  53.     }7 G& Q* `& s5 w( i$ s3 s* [
  54.     if (uoms) MEM_free(uoms);7 w# c3 T! ?" j$ C4 O) g
  55. }* I5 T' S2 A8 ]# s; \8 l9 Z

  56. 9 q2 T% r8 b" {8 d6 f
  57. int ITK_user_main(int argc, char* argv[])" a3 }. c! r4 F5 m+ X0 p) B& w2 h0 t
  58. {% N$ ]0 y/ Q$ D* s9 u# N% l. O
  59.     int' `5 N/ ^0 |1 S; N& j
  60.         status = 0; 6 f7 M1 K% f0 W8 |7 V
  61.     char* H) _1 }# Q, j6 B% s9 `+ O0 c6 m6 o
  62.         *message;+ Y" ~5 y" i) K0 G
  63.     1 m. B, Z" _" j. B4 k6 S
  64.     ITK_initialize_text_services( 0 );8 i8 [6 t, z! e) w' ]! V8 J
  65.     status = ITK_auto_login();9 c  y0 g* t3 k
  66.    
    , L. d3 u  D3 |' l3 S
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");" ]( \3 [2 {! k( o: Q" ^
  68.     else/ q/ ~' ]9 Y+ |+ c" Z3 p+ V* o- B
  69.     {2 ^. t+ J* C2 e( x( y
  70.         printf("iMAN login successful.\n");
    9 p* j' S& B, q1 K, D' `
  71.         ITK_set_journalling(TRUE);( J+ z& |% W; H5 `- Z6 y9 b
  72.         do_it();( b. s7 U4 C3 {7 ]' i5 n9 k
  73.     }
    ; P- o. y! M, j1 R+ M
  74.     ITK_exit_module(TRUE);, k8 T: z, W) ]
  75.     return status;2 V2 |9 x3 _2 B) H& Q  `1 {
  76. }
复制代码

2 @: y9 M; L# U( V8 g3 e0 \- W; q" x; z1 i
2 w" q. Y( g6 c; U+ F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了