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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。5 Y! f/ v4 t7 X6 [7 g) {- Q" x0 t
关于ITK开发中的模版,我制作了一个,大家可以在这里下载, k, V6 M6 u- D9 E: G$ }' i
" h- |2 k2 D4 R9 \; A
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!: `) {1 a1 k5 G6 T1 E* P
5 n& q8 f0 E* Q. h) ~+ E
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!
7 @: D" Q) G9 g/ p6 K- r3 c
7 O) S, m8 ^2 N- H* @
- a6 x" |& L, @& m
  1. #include <TCcore/aom.h>: D2 }2 L: C( B8 c* S
  2. #include <sa/user.h>) u; R: ]5 i' x1 E
  3. #include <sa/person.h>
    ' K3 g- g" i" T, ~8 Y
  4. #include <tc/emh.h>
    8 e( B' m+ }. }* S
  5. #include <tc/tc.h>
    5 y& f' ?0 w0 M" n: ]3 p8 L% T, v
  6. #include <stdarg.h>9 A- R' A$ D/ E9 Z0 D  l# z/ M

  7. : t9 ?9 \# g0 f' P$ k/ \7 F
  8. static void ECHO(char *format, ...)6 @. [1 l0 w% e4 h7 Y
  9. {) w5 m/ F) O& o. w6 w% K( v0 u
  10.     char msg[1000];" c. u  j7 Y2 Z% f+ R5 m
  11.     va_list args;
    + i0 Y6 a- o2 E$ {0 f" ?/ `' Y% k
  12.     va_start(args, format);
    3 a7 ]0 g( u. o( k2 o5 r  o
  13.     vsprintf(msg, format, args);
    * V+ N% w% q$ I9 @  w- p* L
  14.     va_end(args);
    : V7 \0 J* ?* k  @
  15.     printf(msg);0 S" ~# t0 G3 G
  16.     TC_write_syslog(msg);+ `6 J8 [( S4 I3 Q  s
  17. }
      p4 w9 c, r$ n) g' v
  18. 6 T: M/ N$ ^6 j9 n! v
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))# b4 @0 p$ o$ p+ }
  20. & r* u$ y- A  k
  21. static int report_error(char *file, int line, char *call, int status,
    9 m. H& f8 O, q$ u" `) g) M. G
  22.     logical exit_on_error)
    - D/ p* |! p2 r8 V& z
  23. {: E1 U. h/ U/ T
  24.     if (status != ITK_ok)
    # [- J0 [: ]& N
  25.     {
    / b. t6 }. [& _9 k7 U9 {7 {
  26.         int" Q: ~; c  }5 o8 V4 k! @+ Z
  27.             n_errors = 0,
    . Z' z$ u' I* I
  28.             *severities = NULL,1 W2 I4 X* j. A  o$ R: m) i
  29.             *statuses = NULL;" c1 ]" }4 y% z$ m" z' }
  30.         char
    5 t/ H4 l8 c2 [( z2 }
  31.             **messages;
    5 V8 @9 n' _- A) j

  32. ) T' W# e- ^/ z1 `) X
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    # w- c8 }" e+ i
  34.         if (n_errors > 0)
    1 Y8 D& @' `3 K( X
  35.         {8 ^3 C! V4 F% X$ U; E9 C
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    6 P, |! J4 m+ o! Y1 Q% G2 Z; B
  37.             EMH_clear_errors();5 s9 D$ H' l4 u  M- u
  38.         }
    % G" e( [$ {! _( X+ ]
  39.         else
    9 L+ @& c* D0 ]/ d- d" K
  40.         {
    / J  h$ m7 A: a5 y' {' r- i& a5 G
  41.             char *error_message_string;8 _! t- Q: i& \+ ]: G  j) o
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
    0 y6 r* ^8 p4 y- H% v8 R( t
  43.             ECHO("\n%s\n", error_message_string);
    7 e! \" U# x, G# c
  44.         }! w5 T- {: I3 y- }! x. g( b
  45. 7 C7 I! |) ^" [+ _% u
  46.         ECHO("error %d at line %d in %s\n", status, line, file);% F, S8 r4 o+ E+ @1 H
  47.         ECHO("%s\n", call);
    7 L: k4 C, v' d+ |/ a
  48. 8 B, m7 s' U. V% o! \
  49.         if (exit_on_error)
    3 @0 d5 x2 v( D3 K3 o4 J: v
  50.         {1 ]9 i" m! G! u) r" W3 A! b
  51.             ECHO("%s", "Exiting program!\n");( Z3 W4 Y5 ^9 d( F; r
  52.             exit (status);& q" N: x/ L1 z+ Z
  53.         }
    % t+ D# @: t# r% F
  54.     }( G# ~" Q/ L- _  j$ I3 _1 `4 N. T% y
  55. * U1 @3 c% O4 j3 ^
  56.     return status;
    ( K7 I2 ^0 Z- V5 y2 T0 n9 P
  57. }
    + q( M2 E$ S, p3 e' E

  58. 8 M2 D1 f" B+ e  k' k2 i
  59. " w7 j: E' g1 @  i' K+ V' w8 |; m! ~
  60. static void do_it(void)( P; T+ ]3 {6 G4 T( K5 B6 s  n
  61. {1 s1 ^6 F- e' x
  62.    // write your code here
    8 x2 P& Z, i$ `1 G; R, x9 @
  63.    : B1 w' j  Q, T
  64. }& [9 f9 |% |9 x

  65. 0 F  j6 x8 d$ o9 |
  66. int ITK_user_main(int argc, char* argv[])' \" l( b' F: e% G2 `: i
  67. {
      Q& }2 K% z1 @0 k' C: y7 l
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));& \4 m4 s! _+ W$ g) C1 N: k2 D
  69.          ITK_CALL(ITK_auto_login());% t. \  A  K$ z: k2 D
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    3 b/ x1 m( U( x7 J6 }" ]3 \. \

  71. 0 l1 j- @2 [, K# n  H& `
  72.                 do_it();
    9 i9 l* Z2 F8 {
  73. * h8 U& X8 o2 z$ b* B, X; x5 d& ?6 B
  74.      ITK_CALL(ITK_exit_module(FALSE));7 [6 p0 y9 B4 e5 Q5 w
  75. , e" F: x9 K3 @8 ~, e7 t7 G
  76.     return ITK_ok;: c: ?2 C3 ]& ?% [3 {5 E8 Y% F- o$ J
  77. }
    6 k* z* h6 ~2 D) S; S
复制代码

# J6 i: M+ R# h3 s& a5 I
4 v6 {: K5 ^1 e" V& k8 B
上海点团信息科技有限公司,承接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

模版下载地址:
0 m2 N# V/ F* f6 b# V& T& _! P* O1 S) O0 Q5 i
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二次开发专题模块培训报名开始啦

    我知道了