PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
3 Q& ^0 a, B2 P; e7 l$ Z5 M关于ITK开发中的模版,我制作了一个,大家可以在这里下载; Z1 j/ y' v) P! _" k6 l+ i
4 ~# b& s! V+ U3 m+ k/ `0 l) b" U  c; P5 d
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!, X) b& n5 A: f8 \+ h# t7 X2 A- l

- \2 d8 ?% V% S: R这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!6 v- C7 F7 k: i0 V) v
0 U" O& v1 U' B; o1 X

4 z, q( D5 J) N9 Z7 S9 ?
  1. #include <TCcore/aom.h>3 ^( p) f6 n! i; ^, e; X2 C7 t& f
  2. #include <sa/user.h>
    , U; _* d: \0 B7 P8 E
  3. #include <sa/person.h>4 c; C" }$ s: t6 j8 i
  4. #include <tc/emh.h>
    5 K  ?7 _: B" V# X# e0 @
  5. #include <tc/tc.h>1 M) X5 l1 m0 P/ F1 R
  6. #include <stdarg.h>/ f( Y' M% A4 \3 y6 q
  7. / B! F9 i& q" f' {* Z1 D
  8. static void ECHO(char *format, ...)
    8 X0 N7 o6 ^9 ~; `' n/ h0 H4 z
  9. {6 Q! R$ j- f  o( I0 R/ o
  10.     char msg[1000];" X* n+ J; _* X$ H$ ^+ S7 a5 {1 H
  11.     va_list args;5 @( o* S3 o' O; B9 q3 P2 i# C0 x
  12.     va_start(args, format);
    + q0 _6 p4 F1 a! E4 Y5 A
  13.     vsprintf(msg, format, args);
      ~; ^, R+ k& B4 M* c
  14.     va_end(args);8 f% J  {; v" v6 R1 C% H
  15.     printf(msg);
    0 h% m* P5 x( c
  16.     TC_write_syslog(msg);
    . ], C+ w. l/ E! T1 x/ y- e
  17. }
    / Y- }  P6 H7 U& E5 J! a
  18. . l- n' w4 J" Y9 d; x
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    : V' I  _7 C7 X* [, U# j2 Q
  20. . {* e6 T! {7 W* x7 ~' G& G& \
  21. static int report_error(char *file, int line, char *call, int status,7 e+ B) U8 j; E& i* Q8 _. O% c
  22.     logical exit_on_error)9 g" I; P8 Z1 W# }
  23. {" W; Y$ c# U" I; Z* k/ ^
  24.     if (status != ITK_ok)( }- @4 a1 S& t" V. O+ P1 u$ p4 \1 \
  25.     {9 J! q0 T  t1 ^7 C
  26.         int" r: B4 {) i/ ^) L) B4 a
  27.             n_errors = 0,# ?4 q( z6 f0 W$ p: p0 O6 |
  28.             *severities = NULL,
    - }2 C0 a; U# i! ?/ Z- h/ W, _/ w
  29.             *statuses = NULL;
    + L6 V5 `0 g8 h4 g/ u' D5 P0 I
  30.         char
    * Z+ B! d6 B' q+ T( r5 w& c
  31.             **messages;7 H. Y9 r/ `! O) w& k
  32. ) l6 F: `+ I# f
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    " c6 ^2 u- m: K: l5 {
  34.         if (n_errors > 0)
    & _5 m$ s& \+ U* N# A: v- M. u
  35.         {# f5 `; ]' W+ A8 B3 P
  36.             ECHO("\n%s\n", messages[n_errors-1]);& X: [3 r' y- y  P0 Z' `. y' A5 [: s% |
  37.             EMH_clear_errors();
      T4 R2 a$ G3 G& L! }9 \
  38.         }1 o0 L# G) o5 N1 Z7 {: a
  39.         else( |) e5 L0 I# O- J0 P* m* e
  40.         {! G* f9 p7 y4 o9 R
  41.             char *error_message_string;- N% X( x& n# r4 }2 D' H
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
      k5 k/ Q! V! S) a8 S3 a: a7 j4 s9 l
  43.             ECHO("\n%s\n", error_message_string);
    7 s+ ~* p' F' v7 i/ {  j' A* m+ V
  44.         }
    ; ~. i9 ~& u) [3 [- S1 b: X

  45. ) e, z  x) z) D" k8 S7 N1 G
  46.         ECHO("error %d at line %d in %s\n", status, line, file);* o- y* v! M# p# D& R( E! x
  47.         ECHO("%s\n", call);; w" R( a4 l% i3 x, Q
  48. $ k5 r; r8 W& `4 p
  49.         if (exit_on_error)& b  G$ V: `9 i: ]# K4 Q
  50.         {8 S9 n9 [3 k7 X, g
  51.             ECHO("%s", "Exiting program!\n");
    5 G9 e" C) m1 V, J; g6 u
  52.             exit (status);( e' P( A! Z6 D
  53.         }9 f/ I& P* `1 o3 n8 P
  54.     }
    - L4 t) M! p/ ?" k9 p1 Y
  55. ; Z, u' g/ c9 R( p: `
  56.     return status;& Q9 t- e" h6 e% v
  57. }
    + Z% Y% d7 \# p* N, |: h8 d$ ~/ ]# Q8 f

  58. - ?4 ~, D4 o) y8 ~, p9 k

  59. 6 E1 `3 J+ g. ?2 B2 b! H
  60. static void do_it(void): a$ F$ A- d; W8 h5 z8 w$ r* X
  61. {1 a- X& g) I) F2 q5 E4 e% \6 ?% E
  62.    // write your code here+ [, ], u2 M) S; T( j; _( _& F3 [( @7 n
  63.    " {) q/ g0 j+ |% I
  64. }
    ( ?" V2 O* b5 b8 |5 L% y: u* U' L
  65. , G, b4 @. Q! \4 `! d* r: [
  66. int ITK_user_main(int argc, char* argv[])8 {( Q5 B5 O+ o2 ?' [' c  H
  67. {9 {& ?9 t, P, I. r
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));" v% }) M2 O0 b9 Z# a8 [
  69.          ITK_CALL(ITK_auto_login());
    6 O4 d/ v6 h: k4 o. c
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    $ u! ?6 w! @; `6 B

  71. ' p7 m1 T* d1 Y4 j( S( f# r
  72.                 do_it();
    1 p1 t* J' b! r2 R0 Y9 c9 E* y
  73. 8 v- N$ K( `5 P" z
  74.      ITK_CALL(ITK_exit_module(FALSE));1 |4 g$ c3 k# F

  75. # C$ T9 ~" M: c1 A
  76.     return ITK_ok;: A5 b% i. f# G* L, {4 A$ I# C9 \) f
  77. }
    * B7 ?2 {- O* P$ [' b0 [0 d
复制代码
, `3 ]) e- U1 T5 W  x* r  d

; i4 f  Z9 D$ F9 z3 c/ w- N
上海点团信息科技有限公司,承接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

模版下载地址:/ ^6 Y/ j$ x* i
* Q# J, ]! `' `+ V: ~5 T
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二次开发专题模块培训报名开始啦

    我知道了