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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
- F& z2 T, n% D. |+ u1 D关于ITK开发中的模版,我制作了一个,大家可以在这里下载; A7 w$ \; g* r. L' C9 \: M, o

, R6 K7 ~) q* [0 k( l此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
8 J+ B4 u' [' y+ d; m) |! `
" j2 O! W. f; n, c( w, i3 y. \& r这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!
5 s  c8 L# L5 e8 W& d' K" r! J8 j5 M) P6 L2 G4 n0 H/ N
& n/ [+ @! G- o% F/ u! ]$ H+ W
  1. #include <TCcore/aom.h>
    9 W0 {& }# ]/ ^; B2 h3 s9 T
  2. #include <sa/user.h>* j2 r- Y' F! o2 V
  3. #include <sa/person.h>, ^, H6 K7 E. `/ O! A4 K
  4. #include <tc/emh.h>
    - o- c6 D; a4 R8 \0 ?
  5. #include <tc/tc.h>, \% E/ h' Y" S* g" n# t5 ]# |, I
  6. #include <stdarg.h>* Q2 G( J+ C9 J$ V+ i4 b
  7. , n( y1 y+ W6 O5 n5 R
  8. static void ECHO(char *format, ...)/ _% @6 q2 l/ n( a; {
  9. {
    4 s; t$ e# z( w" l, g0 n0 @1 u
  10.     char msg[1000];
    , P1 m0 Q" k2 O
  11.     va_list args;
    / I0 u. D. {  h% f( P  t" z! m
  12.     va_start(args, format);
    9 z' a: E3 U6 s8 l
  13.     vsprintf(msg, format, args);
    4 X; T8 P1 y9 O2 w& e6 J3 g7 I
  14.     va_end(args);
    ) U+ A; E0 l. o! K
  15.     printf(msg);
    6 u5 E& L, o$ B! p+ S. U" ?
  16.     TC_write_syslog(msg);7 N0 r( n: q: \# ]
  17. }' O* ?/ U1 g7 `4 R
  18. . n( T2 d8 L7 m7 `! O
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    $ Q+ o3 w0 g( |6 \

  20.   S" x. s3 T* V7 z+ t4 M
  21. static int report_error(char *file, int line, char *call, int status,3 A7 T; h% h1 N- h) g
  22.     logical exit_on_error)9 ^) p* I8 k% ?7 e/ @
  23. {; {/ g) z) c2 q" \. p# C/ X3 _
  24.     if (status != ITK_ok)3 Q$ c- Y) t4 l+ K$ k
  25.     {* P0 g* ^0 v) U3 N8 P* T0 E% b
  26.         int) c7 d/ s) _6 H7 P
  27.             n_errors = 0,
    $ c7 h/ |* [) N* [; n8 \" R7 J
  28.             *severities = NULL,
    . ?" T- {# @* T6 ?. z3 {$ c
  29.             *statuses = NULL;2 f" e0 ^3 T# F- h6 a
  30.         char
    $ a  T3 j4 G2 L# T
  31.             **messages;
      q# F9 j& z8 W. h
  32. ; n- |! w( A6 P" X1 b# q
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);  R4 |" T' U; ?- {. J
  34.         if (n_errors > 0)- H% o5 h/ N1 }8 z2 t
  35.         {* c2 y  @% O3 B* h) Z, E8 D
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    & h; {( z! K% J! e7 Z, s. g; U: I
  37.             EMH_clear_errors();. U: g6 ^: ]# c
  38.         }
    ; Q5 v4 F2 N; f6 }0 i# x7 V  Z1 H
  39.         else
    - u) m0 A: V/ z. Y
  40.         {
    ( E: Z, {5 P$ G( c$ H
  41.             char *error_message_string;
    ; m3 _: r9 ^5 F) H5 n( |6 i
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);, H) z- W8 K* B0 g3 H8 a
  43.             ECHO("\n%s\n", error_message_string);" z$ l8 u- n; m7 y) m( o4 O: ~% ~
  44.         }6 r4 [6 J6 \$ e+ x6 e
  45. " R4 l7 i# D% ^$ [& i' e8 f2 ~# I
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    ) F' G9 T2 q' q+ @/ }
  47.         ECHO("%s\n", call);# E% k7 S' }1 ~* \8 \6 ]

  48. * ~% }$ a  [! S
  49.         if (exit_on_error)
    ( ]) e& f- H; j0 [
  50.         {) W, W- _/ T# G9 M4 [& H( Y
  51.             ECHO("%s", "Exiting program!\n");: I! t% F8 W1 A/ S/ l/ I
  52.             exit (status);
    : e% {* ?* h$ G9 o" P. l
  53.         }
    ) i0 g* u; D5 G9 p' w5 q
  54.     }& D: e2 b! V( S

  55. 4 q# {* J, b  ^  `& b
  56.     return status;
    , u' c7 D! x- O/ C
  57. }
    1 d- R# [2 A) X* Z7 r
  58. ' w% K0 w6 q1 g' \

  59. 4 u6 e% Q- F6 M# \7 [
  60. static void do_it(void)- [4 w) y% x- V& w$ t" `. T7 n
  61. {7 Z4 n! X5 V/ z! h/ b  q( R- _% S
  62.    // write your code here
    3 P) k( v2 S/ \# f
  63.    
    0 F% X! m+ G2 P
  64. }3 |$ c. W& c# u; g. W1 N" [
  65. 6 k* l9 H  c. U1 ]( K
  66. int ITK_user_main(int argc, char* argv[]); O$ z% q! W" U/ ]8 Y
  67. {/ H9 S& b2 q' P. Q
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    / {( h' C: N( y; e! G4 N
  69.          ITK_CALL(ITK_auto_login());5 B0 C( Y$ ^  ]
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    . ~2 E$ O+ I# P7 Y, V: I" \+ E5 H
  71. : @$ s  n  ?3 k* S, R
  72.                 do_it();0 F% V) [  M8 u. D

  73. 0 h7 t) u5 z; Q: H% w
  74.      ITK_CALL(ITK_exit_module(FALSE));8 [' W, G+ P/ O  j9 k: q
  75. 6 e8 R9 }3 q+ g4 \) U
  76.     return ITK_ok;" B" l. X1 y2 ?( P5 U
  77. }
    8 z9 B6 H) G0 ?3 {+ H+ n. y" d
复制代码

# x+ U9 r5 }, r
2 K7 g) u5 @; w: M) O8 m* R) f
上海点团信息科技有限公司,承接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

模版下载地址:2 M2 V% J" h" R" c+ t, K0 M
* _. Z% y$ E$ x! z1 c( |
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二次开发专题模块培训报名开始啦

    我知道了