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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

1 f3 n% Y. \5 N+ M/ ETeamcenter ITK二次开发源码分享:创建测量单位unit of measures3 }; N1 `. Y6 J: P! I0 ~

2 [# V9 T1 W, u
  1. #include <stdlib.h>; W8 n1 r8 Z3 F" D# n
  2. #include <TC/tc.h>/ U+ Q* ?$ v4 ]
  3. #include <sa/tcfile.h>
    ; A7 h, I. u* U$ s$ M0 x( P! V
  4. #include <tccore/workspaceobject.h>. J' J' s% U. b6 ~8 s1 ~
  5. #include <ae/ae.h>" x" m1 [9 ^7 V  P5 w( I6 G8 C- V  w
  6. #include <tccore/item.h>
    ; M" e- a) E- C0 d' |+ x6 K% P1 w
  7. , {" v) V- [  D- O" ]5 r, j) f
  8. #define ITK_CALL(x) {           \
    ( S: m( z- |/ y9 I  r8 f
  9.     int stat;                     \( n0 [2 }& \7 f5 n  v- c# p
  10.     char *err_string;             \5 I! y+ F  o8 c" F! m/ g4 q3 F
  11.     if( (stat = (x)) != ITK_ok)   \4 i6 g# d2 z& E6 V8 v5 t+ f0 E, _7 I
  12.     {                             \" S& j7 G+ o$ G
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    ; @: ]# t' U6 |# x* G( d% O
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    & ]: \' F* k& V9 X
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    + k" \9 v, R& W2 D; H+ P8 {
  16.     if(err_string) MEM_free(err_string);                                \
    . I0 ]3 A3 Y; X, V8 y
  17.     exit (EXIT_FAILURE);                                                   \
    3 U: v: w" u- S6 ]0 W" W0 i
  18.     }                                                                    \9 v$ ?6 @% a1 J# g: \! h
  19. }
    6 W9 y) ]3 A! v! h
  20. #define EXIT_FAILURE 1
    ) T/ F  y- G0 k) Y6 W
  21.         
    8 ]0 P; j, s7 z' I: B2 s# Q" V6 ]
  22. static void do_it(void)
    ; i) z, q) l& M# M
  23. {" q) D5 Q2 H( k8 ]: b
  24.     int; K# U) e( z( b( z0 a% t3 f
  25.         n_uom,
    ! y" h2 V+ o; U! g0 r
  26.         ii;4 M* G& j1 r1 ]# ^* `
  27.     char/ V# i$ D# b+ r. p  W2 d
  28.         *name;
    + W7 [$ B9 ^9 [  B. d- J2 I
  29.     tag_t
    4 |* P3 a: B- S  V
  30.         *uoms,) }1 N* L9 k3 @2 Z, V. e
  31.         new_uom;( r. Y$ H" [1 Q# c* B
  32.     0 s( Y9 y1 J: C
  33.     printf("Before UOM was created...\n");    8 L1 F) Q% y6 x9 a
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));/ N2 J6 Z" Y1 S7 C6 n1 p& c
  35.     for (ii = 0; ii < n_uom; ii++)- N( S/ D  C4 _: }* j
  36.     {
    * G5 s  i" V4 c8 F3 H1 e. s
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    ) f- A' z9 s0 @
  38.         printf("\t%s\n", name);
    : E/ L1 s" b+ E& g, \8 n
  39.         if (name) MEM_free(name);! q; }: f$ o9 e" X* ]$ i* ?
  40.     }9 i' a0 O+ A' `; R, w) C
  41.     if (uoms) MEM_free(uoms);
    1 [& F# N! v  d
  42.    
    # N8 e; Y/ Z* X5 y/ m
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));3 F7 H4 s* y; G! v
  44.     ITK_CALL(AOM_save(new_uom));: z2 n2 N' l" w
  45.     ! K, d( d" A% v4 n  v) n3 n
  46.     printf("\nAfter UOM was created...\n");   # w% C$ @9 s, s! n0 ^8 @4 |2 ?' |1 i
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));0 l/ H- |+ Z: O; w% \1 P& `
  48.     for (ii = 0; ii < n_uom; ii++)! V# Z- M0 R6 z! Y  g/ E; h" q
  49.     {
    ( v9 m# k5 q* |# v  P+ r* ^: d
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))9 w8 ?# I5 s% Q8 b5 n9 ?, b
  51.         printf("\t%s\n", name);
    # D$ G+ ~* m+ k, H# M% f4 o
  52.         if (name) MEM_free(name);
    . q4 E# K4 J+ v
  53.     }
    ! v5 L) O+ O1 H: _  W/ [; p2 u
  54.     if (uoms) MEM_free(uoms);& p$ J! N$ h; E4 o7 D/ n
  55. }
    6 ?9 [( m6 }8 D9 S0 E: a

  56. . }" M" L4 M+ O1 P0 A% b& q
  57. int ITK_user_main(int argc, char* argv[])
    $ O8 p. b! f( v- w2 Y
  58. {
    4 u  r8 E2 Z) e! E
  59.     int' ]& y  l. @1 o
  60.         status = 0;
    8 Z. o* e5 s5 j8 b7 ?
  61.     char
    8 L' M0 I0 |9 ?" s
  62.         *message;
    " J6 ?* a9 c! t3 b
  63.    
    ( T/ ?1 ?- H2 N* Y5 ^& l8 N
  64.     ITK_initialize_text_services( 0 );# }% v3 R3 o! a. l" X+ P
  65.     status = ITK_auto_login();
    ( I$ `% v( N6 z* \
  66.    : x3 V5 y9 s3 O% k  j
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");1 i$ J( K( g" D, n* H9 u9 D$ t
  68.     else& |  r0 ]4 S' [! L0 v
  69.     {8 N; {: ?. u- V6 Q' V4 o
  70.         printf("iMAN login successful.\n");
    ) ]2 |/ F% V5 M8 x
  71.         ITK_set_journalling(TRUE);
    5 Z& H0 A* S- z1 W9 N
  72.         do_it();1 V& H6 K/ p0 d6 l' F3 s% F7 @
  73.     }
    ; w6 f; q" q, }1 ^, i/ I4 `
  74.     ITK_exit_module(TRUE);1 ~; p% n- f- s# ?" ^6 u
  75.     return status;+ B# ]! K+ n+ z8 B1 r% b8 ^
  76. }
复制代码
+ e. S' W. d. B" _$ x  F

: u- L" i$ D; J5 Q! C! n4 K+ Y% y9 S9 l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了