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

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

[复制链接]

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

2471

主题

1276

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

4 [+ S7 E5 n+ o; c8 W' X7 E) DTeamcenter ITK二次开发源码分享:创建测量单位unit of measures5 i  n& p) X* g1 \( L
1 k: J  u! ?, U7 k, v; L
  1. #include <stdlib.h>' [' A- ?3 i& _
  2. #include <TC/tc.h>
    $ L7 y1 d0 `4 J( A, u2 F5 M
  3. #include <sa/tcfile.h>
    ; ?/ O" u1 E3 C7 p, J* l2 {# L
  4. #include <tccore/workspaceobject.h>
    / ]# J9 _5 o* ^: {
  5. #include <ae/ae.h>( e+ a! n- T' j3 c" K" P- D2 n& H
  6. #include <tccore/item.h>
    2 j) p& M5 r4 u

  7. ( |! W, s% {& L, H9 j5 |8 o
  8. #define ITK_CALL(x) {           \
    7 U7 ~1 V- r6 J
  9.     int stat;                     \
    ! u) X  c) Q% q/ x* J. `1 ~& ~
  10.     char *err_string;             \; ^# w* y+ m) M  Z/ R$ w7 @, ]2 J
  11.     if( (stat = (x)) != ITK_ok)   \3 ?0 q' z/ Q" k5 B) b- s1 o
  12.     {                             \
    7 R; b% E/ W! d
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    " ]* @9 S# ]0 r$ C5 T& y" L& }
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    ! C( ^9 R0 E1 y0 L4 m
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \% l, X* w) l, f! o( }, v4 m. v
  16.     if(err_string) MEM_free(err_string);                                \
    ) k. A' p! {* L" o
  17.     exit (EXIT_FAILURE);                                                   \5 Z& K, F2 x: ~
  18.     }                                                                    \3 q, R/ _6 n1 ]6 `% ~% k2 B$ d4 M
  19. }
    ! ^2 `% K7 [3 X4 u- [. v
  20. #define EXIT_FAILURE 1
    $ J) C6 Y2 O' {1 N
  21.         
    7 ^# R# [1 Q4 D7 u1 F
  22. static void do_it(void)
    ' ~# ?. R( j2 h# g- e
  23. {
    & y9 k' V$ A& a
  24.     int
    $ }7 u! S  f% Y# h
  25.         n_uom,; D, D  H' b1 w: {
  26.         ii;0 m5 y2 \! |$ x% x1 C+ M# F: w- |
  27.     char( w! Y8 Q1 z5 r* S7 n. O
  28.         *name;' I" R9 h+ F: d+ S" y
  29.     tag_t: x( E6 X6 I' p5 U! ]9 i
  30.         *uoms,
    ( {9 r" g" k$ e
  31.         new_uom;
    0 `. F& H% ]( y; J( G8 M5 |
  32.    
    + c9 N8 ]! Y) ?/ z4 X8 h0 G
  33.     printf("Before UOM was created...\n");    4 R) v# F' K' n/ r' n, k0 v  @
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));$ d4 @- {5 q) |2 H% _# N
  35.     for (ii = 0; ii < n_uom; ii++)
    , d& i6 I7 @, r. {$ U$ e
  36.     {
      S; g- B! E- D8 O+ V* b# w5 R1 N: {
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    % ~0 u5 ^+ J7 E2 ^; r
  38.         printf("\t%s\n", name);
    4 C; E; Q! }. U/ @  ?+ [7 F
  39.         if (name) MEM_free(name);
    2 s4 [" w" M; a
  40.     }
    ( ~" D& \- m6 Q  L9 J
  41.     if (uoms) MEM_free(uoms);
    2 G; U  V* M6 O6 G2 Q& F9 q# k
  42.    
      A) w9 }7 M9 }2 i+ n4 m
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));( _4 \( Q/ [3 e, v" e. A& ^' _% }
  44.     ITK_CALL(AOM_save(new_uom));$ A  Q- f/ c% v5 D6 d7 _
  45.    
    1 w! W8 K3 E/ ^- N
  46.     printf("\nAfter UOM was created...\n");   9 v/ ]! Y! ]3 z( y1 A+ a( N
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    & f9 |1 J0 g- B. z9 S+ u
  48.     for (ii = 0; ii < n_uom; ii++)9 K8 V5 q) _: R% C, [* L5 u
  49.     {# v6 d+ b$ m) ?# M$ m" C
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    0 n1 v8 U2 {& A! ]' [5 n0 q, r
  51.         printf("\t%s\n", name);  Z9 g/ _' T1 P+ j$ o( ]
  52.         if (name) MEM_free(name);- j+ O) N* [. \7 t/ Q) v$ I. c
  53.     }
    9 `) k- N- Z* _, o
  54.     if (uoms) MEM_free(uoms);
    1 f0 J* K+ W0 l$ S9 z' w9 Z
  55. }" `' Q$ B1 p7 y
  56. + @4 w3 e9 F$ Y7 s! r, }2 T7 e
  57. int ITK_user_main(int argc, char* argv[])
    0 w7 q* `/ w# u/ T' O& \- O
  58. {
    / g$ x* J& ^. N5 U9 |! x! a
  59.     int' H  V0 ]7 g$ Z$ o
  60.         status = 0;
    , _+ {' M1 w, B. k1 W6 e; n6 J
  61.     char8 _/ u/ h) {% A1 }, {
  62.         *message;
    + @1 S1 i8 h. g4 m
  63.    
    & U: A7 `' L2 o7 J
  64.     ITK_initialize_text_services( 0 );& j2 k2 q0 j! M- h- `
  65.     status = ITK_auto_login();. p( j# E$ u/ Q: |, V
  66.    
    9 R# x6 J1 m2 d2 W! H4 T
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");- Z% O, V' O/ }5 A9 _6 A: [2 t
  68.     else
    ; H2 r! y( t) [8 l' ^% o
  69.     {
    + t( P( b: N+ ?4 j9 o: O
  70.         printf("iMAN login successful.\n");/ M$ \9 q) J, l; K  t0 X5 G0 k
  71.         ITK_set_journalling(TRUE);
    # C( C2 r# ^' K6 M- B3 g+ [
  72.         do_it();
    5 \- o# `( ]( P: h& }
  73.     }
    . C7 x- j/ P6 @8 e
  74.     ITK_exit_module(TRUE);
    0 i2 a1 k1 Y$ O' W' ^# p, e( y. [
  75.     return status;/ O' }; Y1 a- _- |: d* \
  76. }
复制代码

; N+ ?$ m) G$ O# E' {
. W. K& F/ _' o" @0 m6 o( {
5 V. Q' G/ a2 l- M& z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了