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

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

[复制链接]

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

2471

主题

1276

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
2 J& o+ I( o+ d# x. H9 e  G
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures- C: p; P; u! V$ B4 t

# i6 O! P( n9 r/ E+ r1 K" \. J
  1. #include <stdlib.h>
    ' m1 \( C  g3 F4 F, C) F9 W! [
  2. #include <TC/tc.h>8 w8 G" o- n+ {, e7 o+ O8 x
  3. #include <sa/tcfile.h>7 B( q/ \3 B  J. ~
  4. #include <tccore/workspaceobject.h>
    % n. R5 j6 C4 w+ m
  5. #include <ae/ae.h>7 [/ K' K, E+ \$ C; e* g+ h4 D3 k
  6. #include <tccore/item.h>
    5 W  y" u0 z1 d" z( I4 \6 Y# ]" T

  7. 3 R% d$ x' q/ M" H8 t! w
  8. #define ITK_CALL(x) {           \
    $ q; x9 n1 n) l; {9 I
  9.     int stat;                     \: \5 S' c1 T2 o$ m4 g6 E$ B
  10.     char *err_string;             \% ~& A# D2 H& `2 T+ Y
  11.     if( (stat = (x)) != ITK_ok)   \9 }2 H* }4 O+ N
  12.     {                             \
      U2 L" o2 x( n: d- q3 S+ Z
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \, {' {% F* Y4 F4 D
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    % u2 _" X: j6 O5 O1 }
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    2 ?3 B3 ~, [: i
  16.     if(err_string) MEM_free(err_string);                                \; b! e% z& ^5 z: P4 R3 a
  17.     exit (EXIT_FAILURE);                                                   \" X6 i  q( k, K/ l* u7 v% O/ q: K& o
  18.     }                                                                    \
    8 y6 o) u- g/ j  b3 |5 d
  19. }; d# K4 M, W  A% }5 F. E7 `" j; q
  20. #define EXIT_FAILURE 1
      v& Q) _# t. N0 \
  21.         0 u$ T. D* l3 Q1 S: L  F; K" {4 E
  22. static void do_it(void)" y2 m( }& f( h
  23. {
    : G" ?% D, s/ Q' ]1 I# o
  24.     int
    ! C: \9 v2 R" u, Z% |/ B
  25.         n_uom,6 e4 }& Z/ q( F* o& r9 }" S) J9 i, }
  26.         ii;
    ( b3 a; B  S# b: R$ q
  27.     char
    , V- K4 ?: g' S* R: y
  28.         *name;; Y6 g# G) n' w5 y; c% j
  29.     tag_t5 d2 s, [( t' Z" c/ B3 i# \
  30.         *uoms,
    1 n3 l  N" X8 b6 S7 A/ q
  31.         new_uom;  }' b8 p$ C8 ?' I
  32.    
    : R1 }5 u* P  a3 |. N
  33.     printf("Before UOM was created...\n");   
    & X3 P3 M, F" l3 n1 q# @9 O
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    . m7 K: q8 p/ Q& D% d" m
  35.     for (ii = 0; ii < n_uom; ii++)7 ?8 {' @" G9 R, A
  36.     {
    : x! @1 ~: j6 e
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));
    : g' D/ X: i8 ?  L4 x6 N) S
  38.         printf("\t%s\n", name);
    1 u3 R: K9 v# l) [; Z* j' L- J3 d. T
  39.         if (name) MEM_free(name);
    / \* [# @! V1 L5 i8 r
  40.     }
    9 i9 X9 i+ h; E# n( ~9 u4 Q3 x
  41.     if (uoms) MEM_free(uoms);9 u; Z5 Z! |# O  I, ~
  42.    
    7 c5 I' v# Q; f& T, M4 |% d3 j
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
    $ U/ m! D: h0 A1 Z3 [
  44.     ITK_CALL(AOM_save(new_uom));
    . @" C  H- V* C/ v5 {
  45.     0 P! S+ g& z; n) ^  o! o- m
  46.     printf("\nAfter UOM was created...\n");   / Z- w+ y) b# R. q$ h" _8 F
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));' g+ P1 a/ z  N& {' S$ @, g  @' d6 A5 y
  48.     for (ii = 0; ii < n_uom; ii++)0 H; L) n5 b% u% a8 u
  49.     {
    5 B' }  N7 B9 `4 b0 n
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    , A  w  h9 V- {6 e) _+ Y
  51.         printf("\t%s\n", name);2 P% l+ l" b- I- z- E  w2 g
  52.         if (name) MEM_free(name);! p' w1 J; u7 a$ ~. K
  53.     }
    ; G8 e5 A& W& Y" {! u+ C
  54.     if (uoms) MEM_free(uoms);7 f$ P* C1 e" ^, B3 D. A
  55. }, |( U& z/ P* V

  56. ! _  u( x7 K8 I' J
  57. int ITK_user_main(int argc, char* argv[])# a/ J- }5 \" w# e
  58. {, D% M" d  q- E7 X4 ^* x
  59.     int
    * ?. Y+ ]1 y4 H9 E4 D8 o
  60.         status = 0;
    - e1 x- `3 N# `% N7 W% Q& e
  61.     char& A4 ^- w* J  `$ A) A* C
  62.         *message;  ~# k" P' @/ ~, w: I9 g
  63.    
    % {5 g. \- C4 `2 ?8 z
  64.     ITK_initialize_text_services( 0 );
    % f7 F* {# S0 D9 u4 O
  65.     status = ITK_auto_login();0 |; I9 ~$ n" F0 X
  66.    $ P; F/ W$ p5 E7 M8 U
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");6 E' Z( K0 G% d' l/ v* b
  68.     else4 j8 A8 o# P' Z7 \& r# l
  69.     {
    * T# h8 Q4 S/ ]1 u
  70.         printf("iMAN login successful.\n");
      K1 R% g1 O5 y, O2 ?; ^& `
  71.         ITK_set_journalling(TRUE);
    9 a; H) W# @' L: [. q4 ?% z) G/ {% ^
  72.         do_it();5 s$ q- K6 \% s; O
  73.     }2 ^! p! w& S, ]! J& ~- ^
  74.     ITK_exit_module(TRUE);8 [3 L6 n) v4 G' L$ W. j( o" }
  75.     return status;1 p. _7 q1 C) j/ o9 x
  76. }
复制代码

4 k* X% ~& y& v. I( a! [" H6 U3 D& r0 R; I9 n2 u) r

. W" B( p* X! P$ t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了