PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:39:16

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

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

x

; ~5 a, \# a. dTeamcenter ITK二次开发源码分享:创建测量单位unit of measures
9 `6 h/ s! J5 v* }6 `3 P$ h. A
7 @: i! ~( o, X2 l
  1. #include <stdlib.h>$ R+ u5 |* f; \/ X8 z) @8 E' W
  2. #include <TC/tc.h>) W4 z) M( M2 c0 \
  3. #include <sa/tcfile.h>
    & v* k4 z/ e' B, E4 \
  4. #include <tccore/workspaceobject.h>
    7 i2 W, K- A+ R$ q! t% \& s  u' z6 B$ |
  5. #include <ae/ae.h>  X; A' L4 i/ Z$ g& M# Q( Z: l: X
  6. #include <tccore/item.h>
    . q* e, c: R$ x/ a1 @6 s: b
  7. 0 d' C& n+ ^/ f7 v: M# ]
  8. #define ITK_CALL(x) {           \/ f* N9 K$ S/ i" b# C
  9.     int stat;                     \
    $ [5 u, E5 s7 W! V' k" O% H
  10.     char *err_string;             \
    / q+ g  U9 |4 ?9 K5 A
  11.     if( (stat = (x)) != ITK_ok)   \
    & T+ J, s/ A9 C" ^" D
  12.     {                             \! X' g8 I- A# x4 ?8 s' H7 `# U6 ^
  13.     EMH_get_error_string (NULLTAG, stat, &err_string);                 \
    5 C; \" \# }9 j' L5 n- }
  14.     printf ("ERROR: %d ERROR MSG: %s.\n", stat, err_string);           \
    $ N. g5 \( G3 q% E7 I1 W. R
  15.     printf ("FUNCTION: %s\nFILE: %s LINE: %d\n",#x, __FILE__, __LINE__); \
    0 ~' T" V* c% d
  16.     if(err_string) MEM_free(err_string);                                \
    $ t( N0 q% _& u* h& G- F4 ~/ Z
  17.     exit (EXIT_FAILURE);                                                   \
    / H( j; N/ S# ]$ h# I
  18.     }                                                                    \4 N2 s6 X5 d/ e
  19. }( G. H9 T+ D4 w( [+ a+ l  U$ \
  20. #define EXIT_FAILURE 1 * _2 C/ K% [3 E# k3 W3 }5 d9 |. D
  21.         5 U* J' e* p: Y/ s; Q# V# L
  22. static void do_it(void)# k  L! |/ ~  s5 k! U! A. Z  ^
  23. {
    # ?) ~* f( F7 J& D: }
  24.     int
    & ]7 q0 R4 F2 A: t; A8 l
  25.         n_uom,
    % r+ @! z1 P5 {
  26.         ii;
    , T) J9 d# `% M) l& e
  27.     char+ t! L( `/ A8 r
  28.         *name;
    7 S0 W& U$ a! y. k2 K
  29.     tag_t9 {8 ^( n& s$ ^
  30.         *uoms,0 b# }+ J4 [' E6 Z5 t3 L; s
  31.         new_uom;
    0 ?; D- v+ N/ f0 w" L# V
  32.     + t" M! m" n* F" S; ^, ?- L
  33.     printf("Before UOM was created...\n");   
    / e# ~1 M7 I% c" _9 [5 N$ a* V
  34.     ITK_CALL(UOM_extent(&n_uom, &uoms));
    0 w3 f$ _5 Z/ k, B: p' |: b) S% Q' Y
  35.     for (ii = 0; ii < n_uom; ii++)
    * Y& K3 F+ @1 c+ I6 T) T) r
  36.     {
    4 S/ @# j% s) O, ?. e
  37.         ITK_CALL(AOM_ask_name(uoms[ii], &name));0 K) l, B, c: k  n' m5 Y( w% J
  38.         printf("\t%s\n", name);
    % M0 g: n3 h% I
  39.         if (name) MEM_free(name);' b7 I9 L8 a8 q; D: r& o& y
  40.     }
    + a6 R4 Z5 h% w
  41.     if (uoms) MEM_free(uoms);
    $ ?8 t% i) g1 `" j# n0 w
  42.     1 V" ?9 V* D$ D& X
  43.     ITK_CALL(UOM_create("inches", "in", &new_uom));) p" X- F% \; G( N
  44.     ITK_CALL(AOM_save(new_uom));) O2 M6 V! V( m
  45.    
    * @6 R/ R' b6 o6 U4 O2 x; T0 f4 U
  46.     printf("\nAfter UOM was created...\n");   
    7 _0 @$ H( |+ z5 V& r. w. F
  47.     ITK_CALL(UOM_extent(&n_uom, &uoms));$ n7 s6 \0 x3 B
  48.     for (ii = 0; ii < n_uom; ii++)% N7 d3 X; h  g0 e! x  z6 |7 l/ N) V! H
  49.     {
    # C/ Z0 B0 r$ o% ~' J" a
  50.         ITK_CALL(AOM_ask_name(uoms[ii], &name))
    ( e$ T  d% u0 t: [8 A
  51.         printf("\t%s\n", name);4 ?! v  N( ?! {9 u
  52.         if (name) MEM_free(name);
    . o  S# D1 `9 k8 ~. ~: n/ ?; p1 w3 u
  53.     }, _3 q8 K8 u/ t+ B# W% I2 E
  54.     if (uoms) MEM_free(uoms);
    0 ~! ]7 P% E' {7 G! @
  55. }+ p/ f! c- y7 q3 d$ z. k; m# ~
  56. # ]- ^! Y6 U* N
  57. int ITK_user_main(int argc, char* argv[])5 ]0 d0 J# R- C. p
  58. {
    4 H5 e( W* D, d7 n  k& y
  59.     int" P7 F/ A/ J: ^, U
  60.         status = 0;
    ( w, A- F1 b7 V
  61.     char
    " \+ G/ |0 w4 p! j1 I% W+ h
  62.         *message;$ B2 |; y$ n. G1 Y7 O; ?0 s3 u
  63.    
    / t1 `9 Z! l; j, }1 e
  64.     ITK_initialize_text_services( 0 );
    " ]0 j# D' t; [
  65.     status = ITK_auto_login();1 T( m# p* ^$ U
  66.    
    ! m* d& H7 i7 `1 ]! h  f
  67.     if (  (status != ITK_ok)) printf("iMAN login NOT successful.\n");, u' `* x* h: j4 F9 ~
  68.     else
    % r$ W* B5 F+ _4 t% h8 z
  69.     {% A& K) V' D- @8 n7 H9 a
  70.         printf("iMAN login successful.\n");5 R8 n, ~1 f+ ^9 L
  71.         ITK_set_journalling(TRUE);
    4 X$ Q- g7 ]* J- K
  72.         do_it();  z& P0 `" Y- \+ ^# A
  73.     }
    5 |8 ~/ L2 g5 K
  74.     ITK_exit_module(TRUE);# E4 \3 {, r2 h1 q4 v" @" y
  75.     return status;
    1 \! T8 ~- G+ y* h$ S5 h- P
  76. }
复制代码
2 ~+ Q: v+ O# w9 G7 S* {

! ]( T( T' K: t. p# ^) p* j: T! [& E! Z8 T$ d
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了