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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
, J6 I& n' ]8 k7 |7 ?% c6 K7 x* _. H关于ITK开发中的模版,我制作了一个,大家可以在这里下载
" s' S1 _" H' M2 P
0 Z1 L5 R. K. S2 j5 P此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
2 q; _- R4 Z) o) R/ b0 ~
1 B& I( G$ O. {5 {# A) D) i这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!
# r! s2 `5 y9 w$ n8 ^1 O# W) z5 E9 _# s& z+ M; d+ M
/ C& z4 G' h0 Z* u
  1. #include <TCcore/aom.h>
    4 \$ n. a4 c/ I+ a4 i* I  c* T
  2. #include <sa/user.h>" }' }2 G- h0 i9 v% X# t# X
  3. #include <sa/person.h>
    8 E" w+ h$ n6 U3 V0 d  Y7 m
  4. #include <tc/emh.h>
    7 f/ B' Y' \4 d/ c4 z
  5. #include <tc/tc.h>
    & K4 p! k6 [% g4 o8 h) Z0 f' w
  6. #include <stdarg.h>  K* M  O6 @6 K* c6 j

  7. 4 a2 l9 Z  N" @; u' t% R
  8. static void ECHO(char *format, ...)
    $ z4 y" L1 I( v2 m  `
  9. {/ _- G$ i( D. y/ c: \* c+ h' M
  10.     char msg[1000];- _4 o. `. L9 S) _% K
  11.     va_list args;
    * N3 D, i3 s5 t) v( A& z5 m
  12.     va_start(args, format);
      f9 v# {0 U2 l8 `
  13.     vsprintf(msg, format, args);" M$ b/ l7 A0 \! x# m% O. [. u
  14.     va_end(args);0 h0 ~* u/ u) W5 g7 G" \$ J
  15.     printf(msg);6 n. P0 V- e% J5 l/ Q
  16.     TC_write_syslog(msg);
    1 @/ W6 a: _% j2 Z( a7 w
  17. }
    . e# E: H7 P' s0 E4 N( z7 V

  18. 5 {! J! Y+ l  U
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    5 ]: R- I7 d* }) q& @" h3 w; c" x

  20. 2 `0 N+ I$ T+ s( a6 G5 \( j( z
  21. static int report_error(char *file, int line, char *call, int status,
    , Z; z  b  \) }
  22.     logical exit_on_error)
    5 Z+ R/ E) U! ~5 I  Y
  23. {
    9 {) ]9 G( N/ n
  24.     if (status != ITK_ok)
    9 |# x. c9 I- {3 l0 z
  25.     {5 r" Q& ]' c8 H! d/ i: P7 G4 ~; ^
  26.         int" ]& f  J2 u) `2 t6 L8 V# m; s
  27.             n_errors = 0,# V3 S3 h& v( m; x1 c" [
  28.             *severities = NULL,
      a' n) o  A' K  L1 B* l- t1 Y
  29.             *statuses = NULL;
    9 Z! m& f5 R; {: A! o$ Q
  30.         char
    4 I3 M# L' g- G) T% N3 _! v
  31.             **messages;; B* J9 b; s4 `0 J9 e, B/ ^: }
  32. " x: B* D8 ~$ ~& P
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    # P, H3 j5 h' n& ?% |6 u
  34.         if (n_errors > 0)/ }( z2 d6 ^, R/ }
  35.         {
    . w) \2 Z, X* _$ n2 A
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    , C& I+ v) r# g
  37.             EMH_clear_errors();) r# ]$ l9 m4 |- q7 ?; ]
  38.         }
    6 n( V9 F/ d% I& f  T1 a
  39.         else
    & U$ j. @; F! O$ k8 j3 @
  40.         {: I5 `: C4 d4 O2 E3 B  z7 i$ E
  41.             char *error_message_string;
    4 a+ b/ Q/ n5 M5 a; W2 R
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);* V/ n  |1 a1 m2 c. w
  43.             ECHO("\n%s\n", error_message_string);
    6 C8 w, }. F$ y) k0 l7 t
  44.         }1 N: c% q( E6 t0 z: F' X$ I
  45. ! R$ |- T; x7 O" R, F
  46.         ECHO("error %d at line %d in %s\n", status, line, file);6 P' ~! Z' z" x/ @. \
  47.         ECHO("%s\n", call);
    / @: R# z* d6 a, ^- x  Q2 c  ~

  48. $ V2 O/ [& d+ I# e. X, C) p( h
  49.         if (exit_on_error)
    ; y8 ~1 N3 X4 X! j
  50.         {% V$ z. F1 q, s$ Y5 M' ], X/ v
  51.             ECHO("%s", "Exiting program!\n");5 \& X1 x; r$ D5 ~/ q/ q
  52.             exit (status);
    ' P  p( R' V) F
  53.         }& G$ T, b* q. y8 N( L
  54.     }
    & R9 f9 e$ b3 N+ I5 c  W2 U) P

  55. 2 v# r% N5 z0 A* z* n4 J  n
  56.     return status;: P' Y! y5 [! ?- z: L" y
  57. }
    2 W4 h. l4 H+ i9 W, p( B, o8 h6 J
  58. 0 c# J; {! A9 u! C  B+ ^1 b% M
  59. 5 Y, h( P1 f$ o- H
  60. static void do_it(void)/ ^& y! m  ^* O6 Q2 h/ l
  61. {
    # i) |& n5 e2 w& ^6 G
  62.    // write your code here1 R! d% Z( x  K6 f1 r3 D  H' M
  63.    
      ?( E/ N. f6 a& \; @
  64. }
    # Z; c6 Q! S6 d" A6 [

  65. ! j/ _8 J0 \. o+ ^7 k' r
  66. int ITK_user_main(int argc, char* argv[])
    ( s, E7 b3 J. _
  67. {
    ' C! n2 s3 K  n4 j3 D; i
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    * S8 Y& A  V; E, h) X
  69.          ITK_CALL(ITK_auto_login());( P. Q& @( [1 u. v& Z3 D9 X' R5 f# M( p
  70.      ITK_CALL(ITK_set_journalling(TRUE));$ Q9 O% p0 C% ]! M& c1 _: I% w
  71. 9 Y4 U! N: w# ]6 p
  72.                 do_it();
    * I7 D: ]: b, ~! P/ W
  73. / O6 `0 s5 [- D+ \3 _& f
  74.      ITK_CALL(ITK_exit_module(FALSE));
    ( U$ y3 C# v& J& U
  75. + z9 U& S5 @( g  s* z5 \4 k
  76.     return ITK_ok;
    0 f, ^, G& t" A9 K
  77. }
    6 \- e$ h  s7 ?
复制代码

( [4 ?) A5 M$ l7 _) [$ C* d) q" a8 L1 f) |4 E0 J5 _1 h+ U
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
 楼主| 发表于 2015-1-21 14:46:15 | 显示全部楼层
模版下载地址:
  i/ h# Z8 \; n' I: F' L( T2 n; `! C2 x
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二次开发专题模块培训报名开始啦

    我知道了