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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

' e0 h! c5 r# S) r4 H  vTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
+ ?3 v- K5 Z* r! T, v8 B+ E' D6 i9 c) G1 q' \6 q! W8 i* @1 l( v
  1. #include <stdlib.h>  j3 B' r3 r1 a
  2. #include <TC/tc.h>
    1 T7 i7 h/ }' x5 ~" p+ c
  3. #include <sa/tcfile.h>
    + q4 h8 ^- C' G8 G0 i' S* _; p1 f
  4. #include <tccore/workspaceobject.h>+ }$ Q5 w; [8 G$ ~3 H! f* ]- r
  5. #include <ae/ae.h># p0 ^9 P! j  n; [
  6. #include <tccore/item.h>! Z1 f0 y. Y4 B" c

  7. . S+ L" }" H* C
  8. #define ITK_CALL(x) {           \2 j4 R6 j# Z' h4 T, n7 i
  9.     int stat;                     \1 j. R5 \+ D; n7 Y  R! a
  10.     char *err_string;             \5 B) M9 ^  y0 r; G
  11.     if( (stat = (x)) != ITK_ok)   \
    : P+ i# F9 V, C7 W5 @
  12.     {                             \+ m. K2 {- X" l# L$ L1 h4 ]
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \7 J5 t$ H$ \* q* d4 l
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    + p  ]) p5 n! t$ z
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \: t  h- ^& S5 d# Z
  16.     if(err_string) MEM_free(err_string);                                \
    4 u6 P+ N& }8 T
  17.     exit (EXIT_FAILURE);                                                   \- ^: L) l1 D- e! g: f
  18.     }                                                                    \# c% x4 Q. P; Y( D& I: L7 {6 e! A
  19. }
    0 t& \. |- Q/ B( z8 A
  20. #define EXIT_FAILURE 1
    * G( V8 L, R% c, A9 ~
  21.         
    / u4 A& }" M: g% S
  22. static void do_it(void)
    : l: @- E, m  Y) _
  23. {
    0 z2 K/ H( r4 ^5 M( j
  24.     int( H; Q2 l7 n( T0 a3 g8 ]1 i
  25.         n_uom,
    0 P! R* `; L3 B% C2 ^" G
  26.         ii;
    7 f' }' R9 S( @, a, R
  27.     char3 v; ?. N* Z8 V
  28.         *name;5 V+ \; y  c- f% D
  29.     tag_t% P7 Z2 c) f- y: M: {4 V
  30.         *uoms,7 _& h" m$ {0 k$ e
  31.         new_uom;
    - w! [; e9 h6 X
  32.    
      `' _) ]5 O0 c* u0 s% G
  33.     printf("Before UOM was created...\n");   
    % S- v7 z" b! a/ Z) T
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    4 Z- j$ P% T- E' k. |
  35.     for (ii = 0; ii < n_uom; ii++)$ i" E$ t; R9 D+ ^# ?, N% {; O
  36.     {
    . B* l  q7 p+ D0 Z, ^
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    ' r5 u$ t# C) U' J" O6 y
  38.         printf("\t%s\n", name);# a9 h; [2 A; b$ y
  39.         if (name) MEM_free(name);7 w3 K  G4 W/ j' N
  40.     }
    % s5 v3 H9 H* {% f7 ^
  41.     if (uoms) MEM_free(uoms);
    - ~3 B* |" f- _, h8 P) A6 U3 v0 p
  42.     # X9 U" @9 _1 g" Q7 h8 ~4 G
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    # J; @2 k) C  T( C0 e
  44.     ITK_CALL(AOM_save(new_uom));: ]- n1 w7 F% F
  45.    
    0 Y3 i" Z# Z+ Z( |8 g( m1 [! F
  46.     printf("\nAfter UOM was created...\n");   # {9 }: `( M7 u, A8 T: t+ j
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));& I+ ]6 g- U$ J% T' ~3 R
  48.     for (ii = 0; ii < n_uom; ii++)
    , ]! L, E* t9 a5 ?
  49.     {, P4 q1 L: w  p' o2 ?4 H$ T
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    9 f2 [0 i6 A' X- C  h
  51.         printf("\t%s\n", name);
    2 w' E  l! v" _& V2 W5 U9 n
  52.         if (name) MEM_free(name);
    ) o# v# C- m' S+ K: l0 r
  53.     }
    & X# i5 _8 z# {8 k8 b
  54.     if (uoms) MEM_free(uoms);. E) j5 ^7 e7 X1 U) c
  55. }
    ! b' {  a" K7 t: A9 C- H
  56. + D( g& y$ i& {" i. w8 @7 x
  57. int ITK_user_main(int argc, char* argv[])
    . u: L; r4 p! X
  58. {5 [9 d2 t+ p. f9 X
  59.     int
    ! w' d6 f8 ?/ M3 D
  60.         status = 0;
    , n' q# L6 {4 i* H! c$ \+ v. y
  61.     char
    0 r, h# q+ o9 x2 ]0 o
  62.         *message;) ~; R$ a0 W0 g' o- A  O" u0 ?
  63.    
    5 y) v2 g8 H- \" ~  w" s" _
  64.     ITK_initialize_text_services( 0 );
    + L. Y0 `5 j$ R* c
  65.     status = ITK_auto_login();
    3 `/ C; R9 ]) ?: J8 x, H6 r
  66.    / g7 w& n7 A7 F+ w  u1 P2 s
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");5 ]& ^. e; f6 T! I* w# ?- [( d
  68.     else
    2 F% n$ w: F% V! T$ f3 s/ |. p+ ^
  69.     {, }$ S: E7 X2 d6 e/ i" \+ ?
  70.         printf("iMAN login successful.\n");+ H/ e) L6 g/ K' ?4 Y5 \  x
  71.         ITK_set_journalling(TRUE);
    % t. p$ e8 `. Z% S- k
  72.         do_it();* p  k' v- C5 Z/ d, D
  73.     }
    0 Z0 b: K- Y' ?
  74.     ITK_exit_module(TRUE);/ Q; d6 l% Y, P$ g+ Z# o$ y+ V9 S5 R
  75.     return status;
    7 i- x6 L/ C' ?0 ~' A
  76. }
复制代码

/ Y9 C, \( c% z2 O/ p$ D* A4 a0 Z" v2 [& L: j+ e: y# r
3 _( w4 R- V9 |, a% w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了