查看: 5763|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

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

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

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

×

/ U; D; m: ~; W$ |4 D2 @& RTeamcenter ITK二次开发源码分享:创建测量单位unit of measures& f) F" J+ ]: H6 H7 j4 N% S- }$ p. x5 i6 g
" T; x! g7 f' c) U- _
  1. #include <stdlib.h>: I5 R- G1 Y: u
  2. #include <TC/tc.h>+ X; ~( J0 s& k" \
  3. #include <sa/tcfile.h>
    7 U. H* G+ M& [
  4. #include <tccore/workspaceobject.h>+ W* c  k' `5 Y! b% a
  5. #include <ae/ae.h>" `% d+ m" v4 A3 M- R
  6. #include <tccore/item.h>
    ! |# [6 r& D. r+ H$ W: z
  7. . {, N6 b! `3 }; o
  8. #define ITK_CALL(x) {           \
    1 j3 ?0 r8 w5 a& ^' c+ |8 T$ j
  9.     int stat;                     \, @0 O/ f4 P8 \5 @) E9 Z
  10.     char *err_string;             \2 }- x# B* u! ~6 J9 @  D( M$ `" b; n3 F
  11.     if( (stat = (x)) != ITK_ok)   \
    , j& l' \% {$ l3 m
  12.     {                             \% g% Q2 U3 Q2 X2 \$ b+ z. S* c) Q
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \/ v. h' g( k9 u( `! ]' L
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    - \) b* H# g, n5 n' j4 t. s7 h, j9 \
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    * m: R) }" L5 M. f, d& C
  16.     if(err_string) MEM_free(err_string);                                \+ K5 _+ j) j8 [. H) S1 A6 C, \0 y
  17.     exit (EXIT_FAILURE);                                                   \. U8 X2 @7 k( E" @* u
  18.     }                                                                    \
    ! }; |) O/ u( w( E
  19. }
    ' ]9 a, M$ L. G# h8 I) u
  20. #define EXIT_FAILURE 1
    * t! }  h& e) d* M/ Z
  21.         3 S2 J& N, s$ ?1 |+ _
  22. static void do_it(void)
    8 K8 L% J' V0 Y; f# _8 j( J  ?
  23. {: k% B- o5 h4 h) \! B% y) x
  24.     int* J5 b! p) D) c& q2 O1 ~
  25.         n_uom,
    7 t3 r  ^6 Q7 M, ^" _1 L
  26.         ii;' E2 U7 p5 y, R8 ?) `, `. q
  27.     char: m" X+ J; g% r7 i: A. n6 o
  28.         *name;
    5 j6 V5 H) n/ d; i/ J, ~
  29.     tag_t
    6 q9 c" J8 }( Y1 B
  30.         *uoms,
    7 v7 ]- U/ W4 L2 G
  31.         new_uom;0 G6 u2 o. M, g' e' O- D; `
  32.    
    5 k' b- W' h8 M+ V3 v
  33.     printf("Before UOM was created...\n");   
    " f* J) s4 c1 S: X
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));0 X! \) r% G6 M& _6 K
  35.     for (ii = 0; ii < n_uom; ii++)/ I& [3 J# }& M; H
  36.     {
    4 Q) Z. E% o7 i9 r+ c7 f$ {
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));! C4 A! O0 W2 R) l( o& |1 S
  38.         printf("\t%s\n", name);
    / X4 W: N2 t# J: R* N/ A7 V
  39.         if (name) MEM_free(name);
    ; B) b: Q* \  K! c1 W6 U
  40.     }5 ^+ C! I9 [, @# D. R
  41.     if (uoms) MEM_free(uoms);
    / \. a! q8 N$ R9 [
  42.     6 P4 P4 s6 Z! j$ z1 W$ V- ?
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));) X  d+ |: H/ w# G) E; r
  44.     ITK_CALL(AOM_save(new_uom));5 U$ E6 D3 ^# `. ?4 \3 X8 l. F! P
  45.    
    1 j- a- E. }. U$ x2 i" s! z
  46.     printf("\nAfter UOM was created...\n");   
    ' y8 s, @5 z/ e
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    1 Y; d% I0 B" E5 }) I
  48.     for (ii = 0; ii < n_uom; ii++)
    , L- Q+ x9 V" g8 y0 H0 ]1 j7 O
  49.     {0 }2 j% N) Z$ i
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))+ p, C0 G: O4 `
  51.         printf("\t%s\n", name);
    6 _( `# Y( H% Z( R
  52.         if (name) MEM_free(name);. V+ N# d" y5 d& o) Q. K0 @4 D
  53.     }
      L- Q( ?0 U3 D& n( G$ n7 O  @6 ^
  54.     if (uoms) MEM_free(uoms);. S( z4 r6 {7 C& E# B* P
  55. }; D$ Q5 ?$ v5 z- J( F4 M
  56. ! x1 ]: q1 B9 Y, Y3 }1 W  M& K
  57. int ITK_user_main(int argc, char* argv[])# @; j. }& ^0 P$ K2 J
  58. {, |4 s! x0 L( B# D, S8 A
  59.     int
    ' }! Y: |; `" \
  60.         status = 0; 7 O0 R: J% K+ P* c. }' p3 ~9 i; a
  61.     char$ X* b3 \) g6 I
  62.         *message;' Q6 o$ a' S2 ^3 q+ G
  63.     / l1 C1 i0 h( r+ p; X: W, d
  64.     ITK_initialize_text_services( 0 );8 N# K: Q) q8 M+ B$ m0 w
  65.     status = ITK_auto_login();! T" x2 M  c. s
  66.    
    % G# F+ f6 N$ G2 u! E3 f
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");, ?4 K  r5 U/ o
  68.     else) ]$ f+ y, V  b6 W6 @% b
  69.     {/ F( @4 e/ j$ c! l6 Z# I: b8 d
  70.         printf("iMAN login successful.\n");6 n/ C% y6 ^) G4 F7 J) o' Y; @
  71.         ITK_set_journalling(TRUE);
    - D! Q7 F6 G7 ^! n4 j
  72.         do_it();
    & Y3 H8 _. J' W/ t& j
  73.     }
    & z5 M% J5 V6 D! c' J. \/ w
  74.     ITK_exit_module(TRUE);
    * [5 Y- u- D) d8 E: y0 c3 K0 E+ C
  75.     return status;
    - p4 j/ n0 ?0 n5 k8 y1 a
  76. }
复制代码

7 _. @" N4 E) x0 f" Q: j- I4 N2 T* w9 C* ?/ e8 A( e

' V1 ^2 H! K2 L: R& r
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部