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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。6 Q  `) f0 _# Y9 K6 l
关于ITK开发中的模版,我制作了一个,大家可以在这里下载) S" @3 S. x) R$ S' `" B' p: O
; R, E$ X- j- |/ A) S
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!- b6 B6 q8 u# B8 U; p* \( D( V
( h: N9 B6 L/ c
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!* F% o; T8 q2 p
' c- {  `1 j0 i' R+ m  r4 c
- c! V, Q4 f' V5 c! h
  1. #include <TCcore/aom.h>! k+ ?$ X1 V6 F# B+ `& X
  2. #include <sa/user.h>
    % G0 ~) }2 `- q7 ]* M. b
  3. #include <sa/person.h>- H# D( R9 d1 l6 B, }
  4. #include <tc/emh.h>
    6 t$ [  O6 {! n9 d; D
  5. #include <tc/tc.h>
    6 T0 O, S$ r$ m5 K$ v9 x
  6. #include <stdarg.h>
    $ K& b/ P% d6 }3 R4 j- T7 s
  7. * {; p5 z, T& L. ?
  8. static void ECHO(char *format, ...)
    . a1 L* ]1 |( @1 s4 E9 ~
  9. {6 O$ A0 H: H) N2 X
  10.     char msg[1000];7 X1 D5 \' E/ G
  11.     va_list args;! s3 e/ U9 \; z6 O2 F/ r4 D
  12.     va_start(args, format);, y7 s/ @- j" m, U" n* `* {
  13.     vsprintf(msg, format, args);6 ~9 r- x1 W) m- u+ O8 C
  14.     va_end(args);
    0 [. f' ]% C- Q- q
  15.     printf(msg);
    + h6 I3 L: d' e4 G3 B0 |8 W: r
  16.     TC_write_syslog(msg);' U7 G/ S* `! _# f+ ~
  17. }
    ; U3 _0 N9 D5 A7 F0 E

  18. " O1 _! N. P# ]  t+ V4 K( ^
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))$ N! k' X& H8 o% M! z1 p

  20. # F7 u$ ^9 ^- l$ k
  21. static int report_error(char *file, int line, char *call, int status,/ v2 b7 u( @- i8 q2 r* f$ o# C. w
  22.     logical exit_on_error)  ]" e+ R7 j( E' W+ q
  23. {1 ^9 Z  M4 S' Q4 _& {) \% `! i
  24.     if (status != ITK_ok)
    1 F" H6 q% y' v  h, O# Q3 M6 ^
  25.     {
    9 Z, x8 y  L: u4 O
  26.         int( p& l# q+ q, q, Z
  27.             n_errors = 0,
    ! a% L3 w' U9 M4 }$ i
  28.             *severities = NULL,, P2 b3 ]# ?' W/ o5 C9 Q$ C
  29.             *statuses = NULL;
    - @0 `  x5 K: |: \, u
  30.         char# a  d  O' b+ H' s
  31.             **messages;# y5 v7 w3 |) I: |4 U

  32. 1 j# h! i- ]& J4 ]
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    - n, E/ ?' ]& B+ m( ^: M8 F
  34.         if (n_errors > 0)
    ) I/ S+ g" ]# _1 Y! F
  35.         {
    ) L# U; F! G- \; g+ t- {
  36.             ECHO("\n%s\n", messages[n_errors-1]);; E3 h$ r- w4 J+ L$ s1 \5 y
  37.             EMH_clear_errors();
    , g! ^% w& F4 G( y" o5 n: K
  38.         }
    2 k. b" y3 ?2 a( d$ n
  39.         else
    9 J- J: x% [9 V- R: Y
  40.         {
    ( u  ^5 u1 j& [" i; x; \; ?1 [2 j
  41.             char *error_message_string;
    8 j: t2 j+ `" N
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);1 f/ E3 I: N8 d5 t! }6 f
  43.             ECHO("\n%s\n", error_message_string);  b  R6 L5 h$ D" V
  44.         }
    ( J. H9 c1 s9 ]- H) B" k( U8 E

  45. - O% P: \$ Q* j
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    $ e4 D2 G) i" N0 N
  47.         ECHO("%s\n", call);
    . r) l4 o: B) O+ U# @

  48. ) V* ]1 j7 U/ @0 N: J: o
  49.         if (exit_on_error), [  z/ F8 U/ q# V% P. E- x
  50.         {+ x) o% }$ Z' c' x% k. A2 f
  51.             ECHO("%s", "Exiting program!\n");& ~, p$ I. A2 t* q% I) {- q  ~% E
  52.             exit (status);
    % t; B' g+ g) E6 r* ^, A4 h
  53.         }: ~+ v$ i' W% n: i* D1 }; B- Y( b( R
  54.     }
    - o3 k- M1 Z* e9 Y' V

  55. 9 L' V. @4 c, E
  56.     return status;9 _* Y$ ?, H  |3 D/ {
  57. }
    ! j1 a% {2 X& h2 g- N; D

  58. " y/ S! `7 u' r! j6 l9 D+ ~

  59. 3 f% F3 h( F7 j3 v5 B) P
  60. static void do_it(void)
    8 B1 h$ f9 h5 \! V. |
  61. {3 S7 N/ y- t; j3 U  E# B* R9 Q+ L
  62.    // write your code here
      x3 s1 k4 B7 y8 I' H0 C) [! a9 w0 q
  63.    : [0 @2 z  t7 u* J- `8 M
  64. }# i. b  b6 I, _. {

  65. - V; N" ^* r9 T, A* c% O) D( L, [
  66. int ITK_user_main(int argc, char* argv[])6 i" q, R: w8 v- Y1 @% u; Q% p+ S
  67. {
    ) C# N! O* o, @+ z% g& `# F6 S
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    ! N- c& H+ l. N. f) K" T% P
  69.          ITK_CALL(ITK_auto_login());* A$ }* [$ h$ y( K: U" V
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    ; ~# ?; d+ K0 M) E$ i# d

  71. 9 i4 H' i( J3 Q& e9 o# X3 ^
  72.                 do_it();
    - j- C" w! _& N% ~: d( F

  73. - j+ s, Z/ M2 g% C
  74.      ITK_CALL(ITK_exit_module(FALSE));
    . z% o) P* Q7 O6 u- m1 g

  75. 2 u+ a# N1 v9 y& N
  76.     return ITK_ok;, g. S! Z: Y0 z2 b
  77. }) T$ ^7 K. v8 D8 G
复制代码

7 \5 y5 V6 E3 R- A7 ?4 s* V
3 d( G7 m% D2 u2 y8 q& l
上海点团信息科技有限公司,承接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

模版下载地址:
& I, G0 b; m  _- b$ e
5 Y- D/ O+ w; ~, N# V# ?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二次开发专题模块培训报名开始啦

    我知道了