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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。7 g, k+ P) u7 K% f9 v
关于ITK开发中的模版,我制作了一个,大家可以在这里下载6 U. u$ ^3 _: [1 v
5 E! D, n( M# j! @  s! U
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!1 G% ^8 I# K' N1 S

  P7 O' O: ^6 |/ w5 B; n; @8 ?这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!+ _! N) a9 P; a$ C! \+ m$ e
5 `* d) A& h" w8 b! p

9 O$ Q3 d/ O7 v# H' z
  1. #include <TCcore/aom.h>0 h0 d0 g4 e2 }" G
  2. #include <sa/user.h>: Z% q8 t+ ]( J/ z
  3. #include <sa/person.h>2 K- U7 P; l4 T6 V* m. e/ H
  4. #include <tc/emh.h>
    3 C, Q3 n, X, T3 q+ r3 i( \
  5. #include <tc/tc.h>% i( P/ {# s  }5 F" ]% V% A
  6. #include <stdarg.h>
    . A& ^8 g1 |- ^$ G' u) y
  7. : Y: j+ s# i  e1 }) W
  8. static void ECHO(char *format, ...)( `" z& G" `+ k$ ~
  9. {$ H% x* N, T( |& n& f$ |6 w+ y& N
  10.     char msg[1000];5 e; u! D0 v: u7 ~" I
  11.     va_list args;4 M$ t$ H- t) s- K; n1 [
  12.     va_start(args, format);$ k: X8 V! }8 j5 m5 C% |# v
  13.     vsprintf(msg, format, args);
    + J! g# y# S# v
  14.     va_end(args);
    : I  e- G6 k( C. w2 w
  15.     printf(msg);) ]+ ?) N+ Z' t$ t# q9 _8 z
  16.     TC_write_syslog(msg);- \8 O3 B/ |, w& s% z# c' J' x
  17. }9 v* u5 D7 q% X

  18. . {% d# F% M. N( \
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    6 I+ x, J7 g; `, C

  20. 5 b; I: H4 L8 |
  21. static int report_error(char *file, int line, char *call, int status,6 a3 W7 @, ]* w9 M
  22.     logical exit_on_error)
    ! E$ ^& Y& z) X! S: s* k
  23. {6 X: b+ W2 C! z* D% S
  24.     if (status != ITK_ok), C# h* m! ?5 X" V2 i7 B' u
  25.     {
    , p! U9 Z$ R) T" o' [% Y* l2 X+ ?3 n
  26.         int' i6 ^. D1 r& p* @3 j& a, B0 _
  27.             n_errors = 0,) h: \5 u9 o3 U
  28.             *severities = NULL,7 E3 s2 J* x* f, F0 E3 Q. T, R7 C
  29.             *statuses = NULL;
    # D( y% l: r$ f- A
  30.         char
    6 l+ M/ y* M1 P" w! L
  31.             **messages;
    7 G; O% E  z. h
  32. 6 q- l# `) O0 p& m6 A/ C8 w
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);( w& }% z6 |/ C( B6 [; z3 D0 c
  34.         if (n_errors > 0)
    $ c' h9 l$ P8 r
  35.         {1 K5 m! T0 t# O# {: h: O
  36.             ECHO("\n%s\n", messages[n_errors-1]);; p  q8 M& U6 ^8 l
  37.             EMH_clear_errors();
    ) C( K. E/ P+ V( j9 @6 O
  38.         }
    6 t* B) x% f. [* E! I% _! K, O% s
  39.         else/ T& L2 [) ]% @4 w' _' U) X
  40.         {" f0 }* h$ y4 {7 H" ~
  41.             char *error_message_string;: k( E  J' S; z* L9 H& Y8 r
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
      ?2 u% t. n, H, ~5 V2 |
  43.             ECHO("\n%s\n", error_message_string);( J$ D& x$ r$ Z
  44.         }
    7 I' |: `7 b0 r8 E/ t3 H
  45. + C! \; w2 [+ r
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    $ G6 P, ]8 X  P8 ]" ~
  47.         ECHO("%s\n", call);; w6 [% R3 V4 M+ ~) M" l. c

  48. 8 T4 ^0 u" j/ v5 ^; C0 @" j3 [
  49.         if (exit_on_error)
    - |" x" m8 Y5 P+ h5 \$ \9 c
  50.         {# l' i2 y2 J* D2 |2 M
  51.             ECHO("%s", "Exiting program!\n");& P) P6 q3 L- S7 O
  52.             exit (status);/ G! X3 Q: G% R6 {6 {+ Y0 p
  53.         }
    $ n( E+ r" D- V" A! \% `* ~4 N) R
  54.     }
    / e' Z# n5 M8 i9 `+ `2 g
  55. 8 a' Q1 u5 O2 F5 D& u$ W4 D1 [; k
  56.     return status;
    2 t# i  [5 A; J5 P1 u/ v
  57. }& v8 ~% F' |9 v
  58. * ~: P- a, X- `2 g
  59. 6 Y& r# H! f% b! k2 t9 l8 j7 p
  60. static void do_it(void)
    ) \! M& H* H" o! f# E
  61. {
    4 Z1 ~% }% P; X% }( n/ N
  62.    // write your code here
    3 h  [/ V4 X/ o9 ~8 z7 K# @
  63.    
    9 [( b& F# P, k% w$ _+ R( U/ L
  64. }
    5 U$ C% _6 @( c+ ]

  65. 3 O' g2 s4 C& ~# Q
  66. int ITK_user_main(int argc, char* argv[])
    1 l- W8 V3 T9 `. q4 t
  67. {7 y' G+ G( S( e( d3 N
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));. D! u* D" Z; l/ w( v% Z
  69.          ITK_CALL(ITK_auto_login());( j, o( a, ^8 l- ^9 A
  70.      ITK_CALL(ITK_set_journalling(TRUE));$ q/ \( W/ B2 H" @. ~

  71. # E  y0 y' {& E4 ]% V* z
  72.                 do_it();2 u2 T9 s/ r  W. }; f. b. g" u  L

  73. ; R  i: u, M0 F( w
  74.      ITK_CALL(ITK_exit_module(FALSE));; [+ w. S% T5 O* r  [1 a% P5 @

  75. ! x% I; j5 _  K5 v0 c
  76.     return ITK_ok;. I9 M; R" E/ v' [5 g7 Z, Y$ j
  77. }
    3 u. t0 |4 H9 v  x" Z1 }
复制代码

4 i! M" |* {# Z4 s3 b. W4 \& z" j" o! p9 G/ O% Y
上海点团信息科技有限公司,承接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

模版下载地址:# s6 h  W3 k/ A8 ?0 _- F) |+ G

: p" ~+ T5 f) ~1 xhttp://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二次开发专题模块培训报名开始啦

    我知道了