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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。7 \, l  k. {$ k- g9 X- x
关于ITK开发中的模版,我制作了一个,大家可以在这里下载
4 ~+ e' p/ Y. n. L, l$ u3 Z
  g" K4 w  `6 M, n* M此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
8 w( V. I9 z2 \: A
; X* O& L3 G! D# p( B$ D这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!4 y! ~# r! D* S! V8 Z
9 I. M& W( t. [* d) S% W2 ]% E6 p
+ ?6 }& T# a6 Q* x# m
  1. #include <TCcore/aom.h>
    ; t; y1 s! }# t$ ^* h
  2. #include <sa/user.h>$ j6 d9 o) `; {( K3 c
  3. #include <sa/person.h>7 [; K: p, g* A+ I" V
  4. #include <tc/emh.h>
    8 X: @/ }2 Q& a4 O/ ?0 `
  5. #include <tc/tc.h>
    9 P/ a; p/ ]! ]% I
  6. #include <stdarg.h>
    6 ^1 Z8 n1 {6 R* b  t

  7. ) m$ z9 x/ ?) @8 n. p  W
  8. static void ECHO(char *format, ...)+ q& {: h4 N* x; j* Z; ?
  9. {
    % O& E( q7 T9 P# l
  10.     char msg[1000];8 Q7 C. q" c9 G' I
  11.     va_list args;
    ' D. x" _; z. A$ X9 {
  12.     va_start(args, format);
    " S+ S% o7 D8 k+ D& r4 f
  13.     vsprintf(msg, format, args);
    7 b! \8 [; u6 D& p' I
  14.     va_end(args);4 y) Y4 n* L# F, B
  15.     printf(msg);
    % l1 [5 u! w: M! E6 ^9 C
  16.     TC_write_syslog(msg);
    ! [2 t& w2 o; Y: X' X4 `9 s* |
  17. }$ P2 g$ ~$ o7 W1 F
  18. % {+ w: s7 V5 O6 r
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE)), X. J% F1 ?3 G8 `' f( A+ b/ F) _8 Q7 W

  20. " d% }5 D: m: `3 l' s
  21. static int report_error(char *file, int line, char *call, int status,
    3 e/ `; ^8 f: M( `
  22.     logical exit_on_error)
    , }, J% {0 c( k# o7 z) Y: K
  23. {
    . i0 ]+ _" C2 S1 B
  24.     if (status != ITK_ok)
    ( J2 ^9 Z" g6 ^* _' y4 h- Q
  25.     {8 G6 [5 r9 `0 e. [# f& ]* |
  26.         int/ J  F0 t# d% h' q% z
  27.             n_errors = 0,' ~) U! E* K  u
  28.             *severities = NULL,$ T. A1 T  R+ D& V
  29.             *statuses = NULL;
    , s; `" S: P) t; f% {
  30.         char. h( p. b0 X# l' `! a( [
  31.             **messages;& @# G. a; t" b8 o5 k2 W
  32. + L4 a1 P( Y1 x- X/ ]* |
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);) F- Q( U/ z9 P
  34.         if (n_errors > 0)4 T/ i: D+ r4 @/ y8 }
  35.         {
    2 x' G- U; J  H1 V5 v
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    ! |  g/ o. C% P/ V
  37.             EMH_clear_errors();
    , X$ q- E! O; R. [
  38.         }+ \" C2 J$ F5 i0 p% E, Q9 z
  39.         else
    * G2 [" N) D0 j+ S" s7 B# W* l
  40.         {% ?( s" ^* I* t5 g0 D" {
  41.             char *error_message_string;
    : C* f) k* L5 S& N" N- A
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
    " {2 \3 d$ `  D! g  O! `9 e
  43.             ECHO("\n%s\n", error_message_string);. |& }# ~' Q: V' s8 {5 T: A
  44.         }8 G3 f( d: P: X1 T; R4 ^
  45. 5 F/ f, ]4 }7 t$ V% p- g2 t9 [5 B4 Y
  46.         ECHO("error %d at line %d in %s\n", status, line, file);2 o: V4 c5 a2 u: Q- q2 ^3 f
  47.         ECHO("%s\n", call);* e4 a' o8 n% f: m( f0 ]  i: Z/ P

  48. 8 l- G/ x& }5 w- _' O: b
  49.         if (exit_on_error)! B& K0 ^' ?7 m2 ^0 w7 D4 {
  50.         {2 B( P, ^/ s5 K8 N5 b
  51.             ECHO("%s", "Exiting program!\n");
    ; g( a& Z( l  a& }' M
  52.             exit (status);7 ]: q5 q1 m5 M5 U+ x( x
  53.         }
    5 b2 p# v! W2 P( o0 {2 j2 ~
  54.     }$ a. m9 A6 |2 N$ `, m

  55. % t4 O0 o/ E. m5 N# n" [: ]6 p
  56.     return status;$ }2 R% I* v) j- Y0 a0 N
  57. }
    + P1 X9 Q0 F/ F9 [9 Q$ w7 O

  58. 1 A2 `7 Q/ ?: T1 @! @

  59. 4 S8 C( T  u! B: z
  60. static void do_it(void)5 F9 S( ^- ?3 F* _! D$ n, b, m
  61. {0 C3 z1 |( [8 a2 H7 v
  62.    // write your code here; j9 @  G; j+ U1 \
  63.    # I' s+ P" l5 J* R5 I% R+ t
  64. }
    $ B0 k. @! j) r: C3 j% m0 n6 P

  65. ; c  z* v, m6 R
  66. int ITK_user_main(int argc, char* argv[])6 ]# P) }+ Z5 @" o2 F
  67. {  H8 t5 \6 V# o
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    - F9 Q4 n/ Y' F! a! ]1 X
  69.          ITK_CALL(ITK_auto_login());; N+ T, e/ X5 c; d
  70.      ITK_CALL(ITK_set_journalling(TRUE));% B5 ~# @* o+ q2 y

  71. 5 r( i" F0 L/ N+ y
  72.                 do_it();9 d0 |) T4 M- ?- D

  73. 0 y# I. Z: R8 N2 Y' x2 S
  74.      ITK_CALL(ITK_exit_module(FALSE));
    ' H, ]; D/ Q1 ]3 W' i& z
  75. 5 n% f1 D6 ~2 A' d4 h, n7 h
  76.     return ITK_ok;' C) P! H( @: q0 H6 ^  J4 w
  77. }
    # H( k$ J$ [# O/ Z8 U+ Z9 F
复制代码
' P/ W% L6 s2 U

) p; A- O, Z# j3 u% D8 F+ ?) \& c( j
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

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

admin 沙发

2015-1-21 14:46:15

模版下载地址:
! Y  w5 P4 u" D2 p" h5 Q& b- j9 k) D
http://www.plmhome.com/forum.php ... &extra=page%3D1
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了