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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

( e: D8 }6 I9 MTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
% Z3 _+ O$ u& P5 {' i
6 y) f8 c; T# K' Q* z
  1. #include <stdlib.h>& W' k$ @; w, h9 M
  2. #include <TC/tc.h>$ N% b$ \' z2 i0 z5 O0 r: `
  3. #include <sa/tcfile.h>
    0 G5 b3 F. _" k2 H: V
  4. #include <tccore/workspaceobject.h>6 f  {4 S' q  l+ ]( \+ i2 k) y
  5. #include <ae/ae.h>
      x- e9 [/ _- `1 B+ b
  6. #include <tccore/item.h>3 E6 i3 a. G7 Q* S. @8 S9 S; z7 u
  7. . q# B: T! e* x: x- N" J
  8. #define ITK_CALL(x) {           \. ]7 Q, @1 z# t) {' r9 F( u
  9.     int stat;                     \7 o' e6 `/ z+ _" u
  10.     char *err_string;             \. |( _* K% P$ S# _$ K6 t
  11.     if( (stat = (x)) != ITK_ok)   \
    ) T" R+ D) V, J
  12.     {                             \- q, ~# q' Z( A7 _
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \  e4 {& Y9 k2 Z; `
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    ( q- T& K* Y" K
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    9 d1 z- z# \! M% n' D5 G
  16.     if(err_string) MEM_free(err_string);                                \
    ( b* U8 ~- z7 v/ v$ }, T* B5 }) S
  17.     exit (EXIT_FAILURE);                                                   \
    8 ^1 u- s! B2 Y" a5 ^
  18.     }                                                                    \. _# g5 }& u# Q: i+ k4 q6 L0 S: S
  19. }. z" ~9 E* {5 e% Q
  20. #define EXIT_FAILURE 1
    ; t, j# b9 @0 v1 m) o$ Z  @3 ?
  21.         
    $ {5 ~2 R4 H4 C9 g! E' ~1 Q' b
  22. static void do_it(void)
    ' O# B1 t: `: y. }, B
  23. {
    1 G- `- W) _3 Z' R1 G( N
  24.     int" g# C2 g# K8 t) h. }0 l
  25.         n_uom,$ }  a& e& Q7 T, @: m
  26.         ii;
    2 `. e' N$ W  l6 e/ }
  27.     char
    9 `( s- k* o! `$ X0 s4 A
  28.         *name;0 ^/ W6 c+ r* f  P6 r. ~; }
  29.     tag_t8 p: n( K2 M# O! T) H
  30.         *uoms,* x9 F7 e, U" g+ q& B7 B) d" W/ @
  31.         new_uom;
    $ ~1 L9 [1 C8 b* n! R6 E2 E& s
  32.    
    , _0 b) k8 K4 Z: u/ U
  33.     printf("Before UOM was created...\n");   
    : \2 w! C7 `: X& a5 Z
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));# o3 V$ x2 ]+ g  L$ s" V! Z
  35.     for (ii = 0; ii < n_uom; ii++)) [$ O" Q6 o: Z
  36.     {
    ( O2 P: z; m; q& c' `! D, u% A
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));& i2 h; u( N5 R  |3 D
  38.         printf("\t%s\n", name);
    4 V! x$ s" v: b2 [0 i
  39.         if (name) MEM_free(name);9 Z( X/ e" ]7 l" a
  40.     }
    . W# u: N/ M% [' Y5 F; Y
  41.     if (uoms) MEM_free(uoms);
    6 f7 ?  t5 P" W
  42.    
    1 A& Q6 i% ]- H( c2 H' X6 j
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));5 O$ t3 |: r+ p9 _! F6 D
  44.     ITK_CALL(AOM_save(new_uom));
    7 {' e' |; H# a5 |
  45.     / |9 w2 o6 u/ n; Z) m
  46.     printf("\nAfter UOM was created...\n");   
      I/ O; L9 C9 U0 ]' W1 d1 B1 A; j
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    " C, D  X- p$ t6 J# l
  48.     for (ii = 0; ii < n_uom; ii++): J( J, _% n" T0 i1 v0 V
  49.     {0 e2 |7 q& E( j6 F- |( u0 \0 s) X0 A
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))% [; G- t3 t- q$ {3 D% Y
  51.         printf("\t%s\n", name);
    & z6 Z& D) V! {+ \
  52.         if (name) MEM_free(name);
    : r/ @! T  W, H" w6 A) H1 R
  53.     }
    & Z% W; C* e4 i" G0 f( y. r8 E8 ^
  54.     if (uoms) MEM_free(uoms);$ s9 l4 N* E5 Z% l* s* x' ]
  55. }
    2 l+ X  ^% a: b! C; E, D: c8 Q

  56. ( Q% k4 F1 Y  {6 H5 n" l: J
  57. int ITK_user_main(int argc, char* argv[])% K; i) A8 w. Y; y1 v
  58. {
    % w) B: }2 d; r5 X
  59.     int
    + F9 {% z, {' P2 q8 p% q
  60.         status = 0;
    6 c5 b4 o* P1 R0 r
  61.     char: n% Q6 a. H: }9 `0 T7 `8 j
  62.         *message;7 {% e' w! {& [+ r. _9 Q# Q3 N4 e
  63.       ]( e! G3 B2 \/ I( {: r+ C
  64.     ITK_initialize_text_services( 0 );; k9 j" h. D& @6 C/ F9 A
  65.     status = ITK_auto_login();7 R' t& F0 ?. [$ j/ f" G# f
  66.    
    8 m- y  h+ M! ~0 o) R) m* m
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    % k" o! y- \4 m: l% s
  68.     else
    + H) ]. h# d, ^, K
  69.     {" A9 o) _7 |& M3 S4 i
  70.         printf("iMAN login successful.\n");
    % N8 H9 D( T! D0 _, l7 m) ^
  71.         ITK_set_journalling(TRUE);$ {; o5 ^/ V+ ~- u9 N
  72.         do_it();: Y0 o# t% p7 ~4 E- M
  73.     }, _* X# t8 w) n) l4 e
  74.     ITK_exit_module(TRUE);6 G$ O4 x8 X8 A2 a1 t
  75.     return status;
    - i. B3 t  l$ M$ a
  76. }
复制代码
6 g  G5 ]# H0 f$ X
& L* q0 Z5 e) A8 ?0 R

6 H8 r, j  n) W& ^. M9 {8 F& j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了