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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
4 `2 e4 v+ D7 u) h* o关于ITK开发中的模版,我制作了一个,大家可以在这里下载
8 ]9 q& ^" @# t2 }3 H" @  M& Y3 h5 o4 ], s" l' w/ u; E
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!3 R# h0 n8 t& v3 I
) D$ W* l! L) Q
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!
! R5 B( [' F- p" E0 R, ?' ?. Z
5 \$ Z" t* _4 Z# F1 M5 h) o2 Z, k+ o* H' ^* T7 U
  1. #include <TCcore/aom.h>
    $ x9 ~5 L# _2 E
  2. #include <sa/user.h>
    2 W: X' c# e1 o' e& z5 F
  3. #include <sa/person.h>. Y$ `. ~# T$ x& c% [
  4. #include <tc/emh.h>% o" Z5 `) L* ^! Q4 _9 y, C( M
  5. #include <tc/tc.h>+ P  g9 e# u/ f, ~- T
  6. #include <stdarg.h>
    3 ]+ P5 B7 N# t# Q5 q1 I

  7. ' ?0 [1 O6 e$ ^% f
  8. static void ECHO(char *format, ...)
    : V/ e' W  E1 X3 x5 }5 ^
  9. {- ?! }% D! [& n  b- I8 |
  10.     char msg[1000];
    6 }9 K' m8 m1 u, @
  11.     va_list args;* O5 p5 c1 m% H2 J1 b. Y
  12.     va_start(args, format);
    0 z( y7 n& v9 V
  13.     vsprintf(msg, format, args);- D7 a6 L' b. w9 @8 @
  14.     va_end(args);7 q; D0 p. Q& q' C1 v  y( \
  15.     printf(msg);
      Z( t1 B4 ~# l1 N7 h  h3 u2 B
  16.     TC_write_syslog(msg);
    + B) H" n  Q7 b$ w6 L7 u/ K
  17. }: ^. u* K: m9 Q, r, q
  18. 6 Z; k7 V( }8 K8 }" n
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))+ v0 w1 p; z& F2 e. s9 p

  20. 9 L2 v1 B1 R7 i
  21. static int report_error(char *file, int line, char *call, int status,' k# y" `0 T% q& u/ A, U6 o; m( e
  22.     logical exit_on_error)0 G7 X) B: V) r" O7 g+ n9 O' i  C  u
  23. {: O" [/ l# e) \# A* W: M: z
  24.     if (status != ITK_ok)
    / c" |5 v) s2 U+ |: y2 a2 i
  25.     {
    ' l8 k' d: y  s& J1 U+ |
  26.         int$ W: c* X) S: j7 A  O: C% n/ j3 q& n
  27.             n_errors = 0,3 k0 |' x" R2 d8 \0 i4 R2 w# n
  28.             *severities = NULL,
    4 I/ T" d# C( ^% }- e# m9 P
  29.             *statuses = NULL;
    9 n8 }3 c% k# W- C2 R. d# Y; A8 W1 H
  30.         char' F* A  ]6 [+ a1 q+ f
  31.             **messages;
    0 P" e" e( P6 q2 r8 }
  32. 8 D! {  m/ Q* k2 H# I
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);/ ]8 E( g3 q( B% w1 q
  34.         if (n_errors > 0)+ j! h* g# B# n* @3 i2 k
  35.         {8 g: o6 D+ Q) d% b7 D' P5 S% u0 g
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    2 y3 z7 ^$ c9 \6 ~* [$ h
  37.             EMH_clear_errors();0 m( u6 h/ F$ |; _1 \7 ]
  38.         }
    & I" v/ h+ @4 X1 R. v7 M
  39.         else2 z" r/ G  [' T* u+ w) b, Y
  40.         {4 W, l7 B  n. s3 \* J% \
  41.             char *error_message_string;  ]4 v- I: E' T' B# A
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
    ' J8 H) _, I7 E+ q3 m& o7 p
  43.             ECHO("\n%s\n", error_message_string);! K% ]+ O3 \8 A' q. n6 N
  44.         }
    9 Y& o) J. Z: M( E

  45. # x1 o. o- L( }
  46.         ECHO("error %d at line %d in %s\n", status, line, file);. ?8 ?" m4 J5 E' o5 r
  47.         ECHO("%s\n", call);
    5 n& m: s$ ?& [- h

  48. 3 y$ b+ H* G5 ?2 R& Y- l0 z: _1 W& l
  49.         if (exit_on_error)
    , B2 x2 t, |" ~( o3 y3 C
  50.         {
    + A' x- j/ _$ k* m6 U; a
  51.             ECHO("%s", "Exiting program!\n");
      r% ?; i" U0 l+ u* h$ t) d* z3 r
  52.             exit (status);
    $ r' k& j  k( W  I: U
  53.         }
    & M+ @' I3 Q1 j# W* [$ \# q: d( L/ G: p
  54.     }1 _1 |5 ~0 E; W$ K% o

  55. : E' E2 }! a" G% T
  56.     return status;4 F8 X+ l4 P' Z  n4 M& V( A
  57. }" F  }8 d" b/ p+ k* S1 C

  58. . J5 z. Z$ z$ g- F* d

  59. 0 f5 k# b! L9 Y( x4 m4 A
  60. static void do_it(void)
    ' d8 B8 x+ j* B0 U& A; z
  61. {9 H3 J3 |6 j2 r) R2 Z3 x' o
  62.    // write your code here8 M! p# R% t  o) Z) E
  63.    
    / f) g: d, Y7 I* e- E* r
  64. }
    2 a, K: D5 z0 Q' n) H( K& }" o; k

  65.   B% m4 \, y: D
  66. int ITK_user_main(int argc, char* argv[])) g3 S" p/ I, O5 h% l: L% _& P$ y
  67. {+ C$ [" o& M; s# K
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));1 U; J" B- Z8 k$ n: A" t( |0 w
  69.          ITK_CALL(ITK_auto_login());
    0 S3 p5 G: z# S6 s. c
  70.      ITK_CALL(ITK_set_journalling(TRUE));- K) z) e! f, b: U7 ~
  71. . S8 Y. Z8 S6 B; }8 A
  72.                 do_it();/ k: ?7 w0 X' j6 u4 h& ?
  73. : G$ Y- R  P& n( s3 K+ A
  74.      ITK_CALL(ITK_exit_module(FALSE));! Z  O6 }! @* P; K! s3 S
  75. 3 X9 J7 L) v3 {; N. J
  76.     return ITK_ok;
    6 C; V9 H* j. t" X6 U4 n3 @* S) G
  77. }
    4 Q* `$ D# J: X# Q, ]5 [+ G0 k5 }1 `
复制代码

3 z/ w4 N6 v5 V' J0 |4 i0 L7 ]7 @9 f' k; \% K: h2 Q
上海点团信息科技有限公司,承接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

模版下载地址:, Z0 n' Z4 m% G( _, t; ]

% e& o8 ?. @# v2 x- \0 ]2 ^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二次开发专题模块培训报名开始啦

    我知道了