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-国产软件践行者

热图推荐

从NX二次开发转化层teamcenter ITK二次开发的模版分享

[复制链接]

2015-1-21 14:46:15 5961 1

admin 发表于 2015-1-21 14:42:57 |阅读模式

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
. @: _% U- n6 E* q; g6 U$ m+ `关于ITK开发中的模版,我制作了一个,大家可以在这里下载* J' a0 _# b8 S' V9 _6 t+ b
$ |) W9 T' r( D3 j) J3 u. {
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
) d  V. w+ n/ l) I# V0 o" p% }, f+ L
- V5 `2 E* {* h+ [7 o8 G这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!2 R8 _! T! x0 t. {1 y) G3 K
- J; w6 Z( l/ z: s6 a

; N& N) e  n( C( s
  1. #include <TCcore/aom.h>& H# v9 u, G4 R0 \( `9 L
  2. #include <sa/user.h>
    4 E0 \0 _/ G: t
  3. #include <sa/person.h>" C! U$ \+ S' d) c& [
  4. #include <tc/emh.h>) Y, c$ D0 B6 s
  5. #include <tc/tc.h>
    ' x' j. @" _" Q" Y- i7 h  p
  6. #include <stdarg.h>6 F) p) w: _7 C! x( w
  7. # m7 i0 ~/ y/ Z* [" L6 g5 S
  8. static void ECHO(char *format, ...); ]* d$ G* ]4 \& B$ H" M
  9. {3 i9 ^  f9 i- r
  10.     char msg[1000];. F4 _( D. w0 m5 O( t, Z) M
  11.     va_list args;
    0 b* s+ G5 B7 F" Z$ l2 S4 g8 H1 o
  12.     va_start(args, format);; u$ h3 e( w" q5 M2 W, r
  13.     vsprintf(msg, format, args);& Q) u2 R2 W, z- y
  14.     va_end(args);
    & V  h/ V) m) x4 ]" H& G: Y. E
  15.     printf(msg);
    6 D: j9 b& q* E! K
  16.     TC_write_syslog(msg);4 M' {/ J1 [! A0 k& y  j( ^- B6 O* k
  17. }
    6 J  P; x0 _0 n- b/ }( m4 h

  18. 7 B- K, }3 m+ H) P0 }/ K2 D
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    0 [9 v5 C8 ]% v7 u& |- r% V, u9 E
  20. : k, T. \6 ~- `1 `8 O$ d5 x
  21. static int report_error(char *file, int line, char *call, int status,
    & R5 U/ @7 o/ N- D3 z" V9 Q
  22.     logical exit_on_error)
    / P1 N; }/ {* {! Q
  23. {; L% r1 X/ {/ J0 }6 M9 `  t
  24.     if (status != ITK_ok)
    0 U% E, }# _$ d3 B" c
  25.     {$ |* ~6 B, e, i* E9 B; v
  26.         int
    ' ~" Y$ L( P/ p" N
  27.             n_errors = 0,) ~$ Q; e4 n# v8 j- `4 T3 K' A
  28.             *severities = NULL,' }( }7 d7 o4 I- j; o
  29.             *statuses = NULL;+ o8 N9 [0 U' @4 L0 B  r, v2 x
  30.         char
    1 F* {' w+ I3 Z
  31.             **messages;4 o$ H& s' g5 A) u6 T

  32. , {- C: o, N: ]  S2 c9 q
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);* T+ L- C1 y# f: ?7 ]* _$ V
  34.         if (n_errors > 0)
    - `& V( w: Z" q- F
  35.         {  T* {* x/ b- m
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    2 m8 Q* D; e# r6 P! F5 _
  37.             EMH_clear_errors();7 y4 Q( N- h- O4 v0 W( y- E9 O' q
  38.         }
      J  N( ^8 {; d
  39.         else
    , v- T5 T# _* s5 @$ f
  40.         {' e+ {% P9 ^0 t+ b  m! Z* a+ M
  41.             char *error_message_string;
    . r2 A: i9 x4 x, H5 d/ C
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);: ^6 c8 V9 O8 C- B0 ?( J
  43.             ECHO("\n%s\n", error_message_string);' i4 _+ K% I! S
  44.         }
    # B: p. p! c, `1 H1 B3 [5 g

  45. , w9 Z3 r! c* s+ v6 K, N
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
      Z, J8 u4 [2 B; `( G" l$ k
  47.         ECHO("%s\n", call);
    1 V% @  R( @+ s9 f) N) J( X# W
  48. 9 Y" w1 m4 `. ^- p0 E/ B8 B
  49.         if (exit_on_error)
    ! s3 L5 M0 ~% L  A5 L
  50.         {* o5 |# V3 w- z# F
  51.             ECHO("%s", "Exiting program!\n");3 n) z7 _9 Q- C- G5 s
  52.             exit (status);
    ( J) n- f! l0 O" @
  53.         }
    % C& {4 |, J" b
  54.     }
    * S/ y3 i! `! M# c7 l5 U

  55.   {+ a+ b" f: w" q
  56.     return status;
    ; L! ]# S+ R* L& x5 ?/ r
  57. }
    , w' O3 h7 x& Y0 k
  58. % U" A' g4 u+ L7 @" m
  59. - k: m  d% h0 v  I+ E% y7 J$ {
  60. static void do_it(void): @- w2 U4 J$ q+ |
  61. {+ k) C( O# `6 ~: u. D$ ]
  62.    // write your code here& ~, ?9 p3 q4 c3 P
  63.    + x$ B0 L: ^7 d, \& M$ {
  64. }
    , u/ @- L! r, A

  65. - N: U+ n. H8 t
  66. int ITK_user_main(int argc, char* argv[])" Z. n# ?9 R% y+ X# z4 v3 l
  67. {
    " m: E$ I- h* T: ], ^
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    1 y9 I. I8 y( F3 }3 G) U0 q! q
  69.          ITK_CALL(ITK_auto_login());6 R6 Z* j$ S3 z/ f) b4 k0 e( a
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    : ^9 R, G; b8 r- T( r/ S3 `9 M' y
  71. 6 y$ ~) m( w# ]: V& Z
  72.                 do_it();! @' F9 t2 `3 t. K

  73.   b: H0 L* p% M5 z: O
  74.      ITK_CALL(ITK_exit_module(FALSE));4 a) B, g$ [6 a6 T) ]) L' K

  75. 0 w; p; |. I; D: U& p
  76.     return ITK_ok;
    ) E! [: t: v8 X- n9 d* ?
  77. }1 D% ]9 r+ M7 @' Q: r8 x
复制代码
' L% \2 y' U. j
! S( u0 p$ g  [: s) ^  e/ w
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

举报

全部回复1

admin 发表于 2015-1-21 14:46:15

admin 沙发

2015-1-21 14:46:15

模版下载地址:+ Y7 ?+ \. o. g! d2 ], K. p

' \! q. N: X$ F0 vhttp://www.plmhome.com/forum.php ... &extra=page%3D1
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了