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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x
6 z& {4 ~2 P7 w
Teamcenter ITK二次开发源码分享:创建测量单位unit of measures  K# w7 l5 e! Z% i* p

: ^4 e% Q) B7 l9 ]/ j9 _
  1. #include <stdlib.h>0 D3 {1 B- e* `, b/ k
  2. #include <TC/tc.h>  E: e( [4 E* L! O
  3. #include <sa/tcfile.h>
    6 E& D3 s, B; M' T* |) R; A" {
  4. #include <tccore/workspaceobject.h>
    : y; f6 H" `% b. P3 |0 p8 Q
  5. #include <ae/ae.h>& l$ v" Q+ y7 h1 }. k
  6. #include <tccore/item.h>
    $ S/ s% ?* ?9 W) I6 q
  7. , y- j/ C4 U& T( w" K( @
  8. #define ITK_CALL(x) {           \' Z1 e+ ]2 X9 C, s1 C% S3 G+ p7 V
  9.     int stat;                     \
    9 Y( r0 {$ E8 ~
  10.     char *err_string;             \
    % k" V9 t# q2 s, {0 z" v. h# N( ~
  11.     if( (stat = (x)) != ITK_ok)   \
    ) n; p; d; P" B" e# q
  12.     {                             \# y+ T  W/ P2 L$ ~
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \2 w$ N8 r5 j. w4 F3 L
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    8 X  o1 g3 _' {
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    7 k1 P0 r" s' Z$ C: w% T
  16.     if(err_string) MEM_free(err_string);                                \( I: p: l% f0 N# y1 o8 N
  17.     exit (EXIT_FAILURE);                                                   \
    5 _4 @8 s4 t+ M1 T% C/ [8 u6 C
  18.     }                                                                    \0 X1 w6 n; D3 J# m
  19. }
    1 g" d1 u+ s, @, N9 ]  ^7 P/ {
  20. #define EXIT_FAILURE 1
    , F( D; V6 T& k/ q7 }
  21.         
    ' s, A& `9 ~; _1 g7 O& Q. B
  22. static void do_it(void)
    * ~6 M9 w5 a8 y* x: t/ b/ Y
  23. {
    7 h5 w) `# Z1 O% F' S
  24.     int
    2 H- `! A# i3 L$ ^9 {
  25.         n_uom,$ l5 I) \3 u8 t5 F5 N
  26.         ii;- H$ R2 E# o+ I' [2 T, ~
  27.     char- z7 Q8 S& V% I: n9 `
  28.         *name;) |( l9 X+ ~1 p0 q. k* c
  29.     tag_t
    % a) K( W% m- ]% E' v8 }5 R" z
  30.         *uoms,% I- z  `8 k) v! M/ \1 A& X2 k
  31.         new_uom;9 T5 D7 t$ f  Y! p3 i9 a+ G$ n
  32.     9 f8 ], Y5 _" J) p7 ?/ r
  33.     printf("Before UOM was created...\n");   
    $ Y: Q) a& E7 H4 j4 k2 o$ w" _5 D
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    8 h: g5 e! Q- V2 \' ], e
  35.     for (ii = 0; ii < n_uom; ii++)
    % E3 v5 p4 K9 m  A
  36.     {, R1 ]/ i  A0 v" Z) r5 a5 X
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));% c( \# v% r8 z
  38.         printf("\t%s\n", name);
    # s; \$ l/ b& T) ^* i& {4 ]
  39.         if (name) MEM_free(name);5 r- `) G* B  U3 L1 f8 W
  40.     }
    $ M$ ~( X* n6 h$ |$ G
  41.     if (uoms) MEM_free(uoms);& Q- Y/ h3 V, q: j. v5 z! m/ [8 G
  42.    
    9 H; n- P0 f. N' D( ^) C/ \+ q
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));
      x' t4 ~! _7 P; n! U6 A) b+ |
  44.     ITK_CALL(AOM_save(new_uom));
    3 Y% |' y9 l8 Q& s/ |% `
  45.     2 k% ]/ G9 j+ F) U1 `" Z: H
  46.     printf("\nAfter UOM was created...\n");   3 ]0 r7 k# m# R+ ^6 M7 _, i
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));& U) Z' l5 ]- `  _3 @' {+ Y
  48.     for (ii = 0; ii < n_uom; ii++)5 e" C2 H  V8 _! ^
  49.     {
    ) _, Y& V+ a; B  L" y  R% }
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    % b! [; M- U/ }' G8 E+ m
  51.         printf("\t%s\n", name);
    : V' M# |" M- y
  52.         if (name) MEM_free(name);
    9 U7 B/ U* k9 L# T) f3 C/ F* e
  53.     }$ \5 L8 a( a* |& S$ @, i; [
  54.     if (uoms) MEM_free(uoms);
    , T% d( l6 \; k/ q/ R+ _
  55. }
    $ {9 V. t- u6 M% s
  56.   \+ h' P' X1 f& d5 d0 a& V; P/ E
  57. int ITK_user_main(int argc, char* argv[])
    0 l; |/ D0 B3 b" ^# [) ~  P
  58. {" c. ]6 k) Y( }) c
  59.     int
    : f% _0 q9 ~6 f% F
  60.         status = 0; ' T+ c4 ^( l. V% J( Q9 z9 |
  61.     char
    3 ?5 G- L' P2 c- H" Q
  62.         *message;
    : E7 c5 [  N# |6 c
  63.    
    * l  b1 m1 ?7 m; I4 \
  64.     ITK_initialize_text_services( 0 );
    7 s6 O! A$ F% S( d" E% X( [
  65.     status = ITK_auto_login();( D( Z* |. b7 e& P
  66.    
    , k( X( |7 T8 @
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");
    ! U, c) u4 o& ^( ~
  68.     else
    ' x% G! _2 j$ x0 d/ Z& W0 Z$ z
  69.     {, W9 c' k) }& ^" e, a  {
  70.         printf("iMAN login successful.\n");& R6 B' K1 X) ^
  71.         ITK_set_journalling(TRUE);
    ! _; ^  S# k1 K# _
  72.         do_it();2 `# N/ G( f$ V9 w" N; i
  73.     }5 J1 Y# q$ A/ M1 M: o  v; g& S3 q
  74.     ITK_exit_module(TRUE);
    % b8 W9 |* y4 f1 F
  75.     return status;
    ) m( h! e% H+ ~' n3 `; I0 J' p
  76. }
复制代码

) {8 _) O- P: b/ |0 z8 O' P9 T) r9 f
3 N4 y) H' w5 {+ R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了