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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

( B: w; }; Z& t: OTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
' _# P& v( A% K8 o2 M4 ?
3 O7 b" p! [. ~8 }9 a/ F' N
  1. #include <stdlib.h>
    % P3 h; [  N& w. {
  2. #include <TC/tc.h>
    - e3 g4 {/ N& L6 ]$ o
  3. #include <sa/tcfile.h>7 b" e9 w7 C  [
  4. #include <tccore/workspaceobject.h>
    3 x% f  B2 }3 ?! }3 m
  5. #include <ae/ae.h>
    . I& n3 p3 ]2 c
  6. #include <tccore/item.h>! v' x0 w0 m* E

  7. ( B; [  B' }" }/ _
  8. #define ITK_CALL(x) {           \% R$ F5 }) ~6 B' `
  9.     int stat;                     \
    " s7 V% K( t8 G% l1 C$ s7 ~
  10.     char *err_string;             \' O- c8 S+ ?% Y& P2 ^: m% o+ _
  11.     if( (stat = (x)) != ITK_ok)   \5 b' _; i( O# x6 [+ M* T2 b
  12.     {                             \4 Y/ A, o; |( _5 o
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    ' Y2 C! r3 ]! y' J
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \/ b, p+ t, s5 k; F
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    ! H4 e9 Y( |9 u, ^4 Z4 }
  16.     if(err_string) MEM_free(err_string);                                \
    9 v6 l; I1 u& `' U6 X
  17.     exit (EXIT_FAILURE);                                                   \, u; U/ j2 {5 ~6 B# Z% t* K" k
  18.     }                                                                    \# V. ?, g0 b1 F; w+ k6 C0 e% d( l# s
  19. }
    ' X* Q& u% s2 U+ M' g0 k
  20. #define EXIT_FAILURE 1
    , b" j3 Q) F/ m1 R
  21.         4 f8 i. b! z; r$ O7 T
  22. static void do_it(void)
    ! T, ?* d: C9 R9 g8 l2 X
  23. {& J9 Z# ^2 d0 S% H3 S8 k
  24.     int
    $ Y9 R9 d$ P# r) `# i! o
  25.         n_uom,
    : _+ I3 Y% _- d! C) {9 {
  26.         ii;( U$ m8 r2 i, e$ n) }
  27.     char. g6 ?% l2 P, ~4 l' q; c; n
  28.         *name;' N6 S) }5 [1 i
  29.     tag_t
    4 o, e- v- A2 h( B
  30.         *uoms,' e# \: \% }- V; W4 t. m
  31.         new_uom;: `, B5 s. C% {. T$ c0 E
  32.     1 T" h. G" g6 B2 a2 o: P7 T9 Y
  33.     printf("Before UOM was created...\n");    8 _# ?' i, {+ R. w9 [3 b' d% X
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));! a6 |# }. s- s% V0 y7 C; w
  35.     for (ii = 0; ii < n_uom; ii++)9 y# s( |# e, n5 K, ~
  36.     {( {9 M) o8 ?, ?& }: c- r: A* k( h" q
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));& g: Z* W! D* G0 d6 _. n
  38.         printf("\t%s\n", name);- P4 h0 ]6 w7 j3 J$ d
  39.         if (name) MEM_free(name);
    ! u4 z% ?: ]) B$ r8 c+ D7 A' q9 B
  40.     }2 Z5 S( V  P- {/ U
  41.     if (uoms) MEM_free(uoms);! ^' F6 O; ~* _4 z; }5 Q4 y$ f* K
  42.     : q. ~7 Y" w/ j+ b7 ^5 \# m
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));4 d8 S+ c( X7 z  n( O8 P2 L
  44.     ITK_CALL(AOM_save(new_uom));
    * }% q. {6 A' `) R( U2 Z/ S  c" b
  45.     6 b6 ^5 H" Q, X& j
  46.     printf("\nAfter UOM was created...\n");   
    0 c5 Z# Z5 v4 l* U1 v
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    + g0 i3 D1 a! K. K. i# ~
  48.     for (ii = 0; ii < n_uom; ii++)# v/ L/ L& {/ ?* {$ L
  49.     {" Q% C$ E* z9 L/ I  B/ ?; x$ W
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))5 |( a8 M, X8 T' Z/ H% q
  51.         printf("\t%s\n", name);8 `$ s; i. p6 O6 Z
  52.         if (name) MEM_free(name);
    / U; I4 O- B9 U' y5 T" i1 i
  53.     }
    % }  p4 s5 |7 _
  54.     if (uoms) MEM_free(uoms);
    % k7 V" o$ \# K9 q5 Y
  55. }3 X# Y* K" X2 ?$ L8 u% I, r6 z! x

  56. % c4 O3 A3 v8 A' ?) N
  57. int ITK_user_main(int argc, char* argv[])% A4 J3 S5 D2 A; i1 I' G
  58. {3 l( i# a. [1 Y7 D( P) G
  59.     int: C6 r6 \( O/ S# P; m0 K2 w
  60.         status = 0; 5 \" z9 V5 N6 n1 O* D
  61.     char2 d, r# T: S0 p2 U
  62.         *message;
    , H$ G* u' m: k+ j  j6 O
  63.    
    ( p6 c/ e5 \9 r6 I* w$ ?
  64.     ITK_initialize_text_services( 0 );
    % I4 r/ [+ D  ~/ p! W- n8 v+ [1 C% K& Z
  65.     status = ITK_auto_login();
    3 O9 O* u7 [6 |7 ]' W5 ?
  66.    * p% T2 N( x6 B- o1 J+ f6 X5 r
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");) [6 l& i7 E7 r* Y1 A
  68.     else5 d. j- F+ L0 R6 I
  69.     {
    6 t- z) J  C8 r2 ?. S& d  O
  70.         printf("iMAN login successful.\n");
    + Z! u6 h' T( o" W* Y0 V2 B
  71.         ITK_set_journalling(TRUE);
    # R5 W9 v9 f( t" _- Q% v0 R
  72.         do_it();, |$ L6 w0 X0 c- u
  73.     }; k! W& ^8 ]% k/ Q7 P# v, [1 l( x
  74.     ITK_exit_module(TRUE);5 ]5 _7 v! z# w: }8 V5 K
  75.     return status;" E9 a  y$ Q: O& w1 L0 P$ v: @
  76. }
复制代码

2 x9 H+ d, S6 z3 t4 I
3 w+ e$ }( D* Q  ^9 ~7 I. d- F1 R: m" M. R+ u  Q) j1 E
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了