PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82166
QQ
发表于 2015-1-21 14:42:57 | 显示全部楼层 |阅读模式

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。( S- ~8 s- a) z+ {5 _7 u; {5 r* V
关于ITK开发中的模版,我制作了一个,大家可以在这里下载
, Y. B% C- G! _) X  ]4 L
5 a, U) m( R& d1 ]1 [) p: m0 J此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
9 n/ e2 T, a5 ]1 E, \
) S2 h: ]6 J: k# X这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!
( Y1 p5 P9 }  v7 r, y. _% D1 T7 s
8 n4 V) N6 v1 D- ~8 k; k' {% W2 G! o5 M8 z, q
  1. #include <TCcore/aom.h>
    1 A- ~# G; o8 ~
  2. #include <sa/user.h>: A, k5 l( l8 C5 |$ Q* _
  3. #include <sa/person.h>) K" @3 }7 v; A- R$ s
  4. #include <tc/emh.h>
    : L, O2 a! d: d0 m4 B' ~
  5. #include <tc/tc.h>3 [2 o8 q: `8 Q$ R  c
  6. #include <stdarg.h>5 T% _8 _. E% v
  7. " Y) A  A: H6 u, k
  8. static void ECHO(char *format, ...)
    ( X" O2 ^9 a& k% f+ j0 x
  9. {/ U. H( ~: o1 c' @9 s
  10.     char msg[1000];
    ; D/ e8 D3 n" [9 x
  11.     va_list args;
    9 Y7 j8 h% ~2 n( A# z
  12.     va_start(args, format);
    ) i; R+ ~- a3 r
  13.     vsprintf(msg, format, args);2 I2 f$ Z$ e+ Q- B8 @8 R$ u# P
  14.     va_end(args);) W! j! y% A- R) h
  15.     printf(msg);' M/ P- h+ ~3 c; f
  16.     TC_write_syslog(msg);
    + r, q' R; G- D) H
  17. }5 x! @& C! @( i9 q9 H! [
  18. # s6 o0 m& d9 q2 U
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    ! [, v. h5 d' D$ j5 D/ l! h8 v

  20. % F0 n) l: H/ [" G
  21. static int report_error(char *file, int line, char *call, int status,
    , w* ^- o2 T: X* w1 t2 |: e* q
  22.     logical exit_on_error)
    8 A: m' U" g  {6 p
  23. {
      }/ D5 u. W7 i3 F) c1 a
  24.     if (status != ITK_ok)
    7 Q; }5 v5 F% ^3 n; o& q
  25.     {: f2 ?' ?2 i+ `5 F! l7 [0 {% K$ |# W) Z# q
  26.         int3 z9 P. H6 x8 J: v5 o  Z5 b
  27.             n_errors = 0,
    - l* o/ n. a1 o; s
  28.             *severities = NULL,; {( }  I, y+ i9 G5 D
  29.             *statuses = NULL;
    ; D0 Z' S  a% \( a$ a: z1 n
  30.         char
    ! x4 s3 F' B, n8 R7 R0 A* a
  31.             **messages;2 i( v( F3 w& v- s9 |- |2 b

  32. - [. w" x2 V: Q$ q; }
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);- _8 p/ L2 b* U6 k- K3 r2 N
  34.         if (n_errors > 0)
    3 R5 y1 k& K, D6 Y) x& |) w
  35.         {% I+ ?9 z: ^2 D$ X7 j1 G3 ?
  36.             ECHO("\n%s\n", messages[n_errors-1]);* n1 r' g; f( \; ?& w8 e
  37.             EMH_clear_errors();
    2 E& @1 i7 S4 U1 e. R  U5 E
  38.         }
    , b1 `. ?& ]" G0 P; p
  39.         else2 G2 t+ u$ r3 Z( I; D+ g. p
  40.         {: V; q) t  d* r' T; [) P
  41.             char *error_message_string;/ ~  i( j3 ~0 D4 {) H3 o) |, F5 b2 @
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);9 ?. u4 g8 b5 Y6 `! c2 _- }
  43.             ECHO("\n%s\n", error_message_string);) R6 r0 ?$ I4 o& Y) S0 ^
  44.         }
    0 m5 [6 [5 @5 U  k$ O8 T. ?. q

  45. 1 a3 b" }' p2 f! \% X
  46.         ECHO("error %d at line %d in %s\n", status, line, file);) Q$ ~' N) n% Q, e9 b4 t
  47.         ECHO("%s\n", call);
    ' Y/ a3 c$ I* ^9 T

  48.   g- F0 \+ N& |( K
  49.         if (exit_on_error)4 k, ~) J% v7 P- R' p# t6 m
  50.         {6 v% O3 H8 v1 z7 s- m! Q- W$ m
  51.             ECHO("%s", "Exiting program!\n");6 f) G! K3 v- g, s( T/ s
  52.             exit (status);4 j- y' U  w0 Y8 |! F- O
  53.         }8 `6 @* Q+ F' I% F- j8 c3 Y
  54.     }
    1 U& P7 y# z6 f9 Z; Y
  55.   V5 N6 Y# X' Y# T, I( S& R
  56.     return status;( L; @$ k% p1 V1 ?, R3 V4 G3 r. H0 u
  57. }% U! p3 `, h) I2 p  ?

  58. 6 r" o6 Z4 B' N
  59. ) t# H+ M! b- i+ y* w! H+ R. E
  60. static void do_it(void)
    / _5 N) ?! a7 m9 D, b# l
  61. {/ @* B# C2 i5 N1 W, b, u
  62.    // write your code here  c/ P9 n/ d3 a/ B% P1 J* a: _6 D6 [5 |
  63.    
      M( H9 _$ b/ p+ P
  64. }7 P1 |0 t6 M( H5 S% G- N8 U

  65. ' K/ f5 c$ z  W' ~  u+ z9 J/ r# ]$ L
  66. int ITK_user_main(int argc, char* argv[])0 b7 V! Q! u9 y- [  z
  67. {
    4 Q: N8 J) [1 b! i: K$ J
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));' F7 J- }$ j9 r. v
  69.          ITK_CALL(ITK_auto_login());
    9 x0 J* T2 S6 x
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    0 ~) N9 p4 a  b# ^8 r
  71. 2 L" F" a! g$ u; u, q/ C8 B
  72.                 do_it();) ^' O% F8 e, `  D0 b2 c1 ^2 _* y

  73. , l( b, `2 t/ T+ Q$ u
  74.      ITK_CALL(ITK_exit_module(FALSE));. E% P$ z1 v) x0 ]# V: ?. u2 s
  75. 3 W4 I, K5 u: \$ d
  76.     return ITK_ok;, [" R/ b. Q+ S* |( d
  77. }; u+ ^( c( y3 ~0 A9 ]9 J! v' A
复制代码

& G9 p5 v) S& s  y& J) H4 h$ _* f8 e/ ?+ ]' t) E
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82166
QQ
 楼主| 发表于 2015-1-21 14:46:15 | 显示全部楼层
模版下载地址:
; D7 c5 U8 H/ C2 u) ?) \" Y% Q1 i! J' R$ D0 x1 u  u
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二次开发专题模块培训报名开始啦

    我知道了