PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
- X8 J  A! G2 w1 F; e关于ITK开发中的模版,我制作了一个,大家可以在这里下载. e+ m  A# `. @3 G; I6 D
% E2 l) _- r9 {8 k5 H$ C
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!/ a1 X4 V/ m$ Q! n7 a
7 T0 H6 K$ ]2 j' W: ~
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!: H8 b9 V" `( ?1 j5 A5 K

) f! ^3 C4 I# Q* M' {* w
/ K3 {( V) z  M( O
  1. #include <TCcore/aom.h>
    " H. E. `; d! Q+ M" y) O+ k1 x
  2. #include <sa/user.h>
    & z6 o# S1 W& p( a: c1 v- n
  3. #include <sa/person.h>
    0 C. M1 U0 |& R" V
  4. #include <tc/emh.h>
    # e& B: H9 r' B
  5. #include <tc/tc.h>
    % @& v/ a# e1 c6 P( i
  6. #include <stdarg.h>+ G: V7 @" j* T4 x
  7. / `# _, S1 q, J/ Z
  8. static void ECHO(char *format, ...)
    3 J! ~8 N# t: V1 _+ H
  9. {
    1 S# m- M. m! J; ~& l8 z' v# P* z5 ?
  10.     char msg[1000];
    1 D) J7 E. l2 H; e) [1 q) q: H
  11.     va_list args;
    ; ]* k# \) r$ Y7 C5 u' h7 F7 B
  12.     va_start(args, format);# y, A2 ~! V  ?! _2 ^1 m; Q9 `
  13.     vsprintf(msg, format, args);2 K/ ?$ P6 x8 j" D
  14.     va_end(args);
    . }3 w* _6 t5 \
  15.     printf(msg);! [" @, E( c' R6 h8 Y0 Y. z# Y
  16.     TC_write_syslog(msg);' F* H2 r! m* y' H7 c7 K) k3 S# G
  17. }
    / u, L+ g( C. f5 q, U
  18. 6 A2 G* z" H$ A/ @4 [  ^
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))+ Z& D4 M2 b) o5 ?7 ~
  20. * h/ M: ?" W# D+ q- y$ I6 b0 E% b
  21. static int report_error(char *file, int line, char *call, int status,2 f3 D, J9 F& T! p5 [# W
  22.     logical exit_on_error)( j/ G* ^( F5 W* s2 u6 L) u
  23. {
    ! t# B; N/ _; }: o
  24.     if (status != ITK_ok)  u- o. o% ]/ S' h
  25.     {, j0 k  w. O1 y% D4 L
  26.         int0 z6 D% K! n" {% N" T0 h; Q, }
  27.             n_errors = 0,8 K+ I  o6 k+ t
  28.             *severities = NULL,
    $ r: N# J( k3 {' z" T# T: W) E
  29.             *statuses = NULL;; Q( Y" B* G3 I) W% p7 f7 B
  30.         char9 F: J' e% ~' ]) r% l
  31.             **messages;
    . m1 Y! q5 V$ {1 Y/ U

  32. ) [- W$ F' U5 }) b3 d) V$ S  R$ ~
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);+ Z$ M  w4 X7 A/ v! q2 s2 S# \
  34.         if (n_errors > 0)* }3 a" U- L. I: [
  35.         {
    2 l* u8 k# u6 p; @
  36.             ECHO("\n%s\n", messages[n_errors-1]);( q, T0 F" \& @2 o1 V1 ^, R
  37.             EMH_clear_errors();/ N* W1 o' x- k4 {+ ]$ e* v1 M
  38.         }
    - q9 x+ X$ Y6 W. s; l6 k+ ?) ^
  39.         else0 `& }9 U3 u, b
  40.         {
    , |( |7 d, ]  H; G( _' L$ X
  41.             char *error_message_string;
    1 H1 ?! S3 c8 W7 T
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);, m7 j) M4 M+ u% {6 D' o0 L6 H
  43.             ECHO("\n%s\n", error_message_string);
    " @. ?# s1 ?/ ^9 j* u) v: m0 N: d* `
  44.         }8 f2 g: I* x. f8 U, w
  45. & }( N% ]9 P5 d6 e
  46.         ECHO("error %d at line %d in %s\n", status, line, file);& e, K+ R& u$ y# s- i
  47.         ECHO("%s\n", call);
    + C3 o/ A6 I: e% c, N; [

  48. 5 C& ^+ s' y: B& m  |( C; x' O) Q8 d
  49.         if (exit_on_error)
    " G% G/ c/ {; S1 B$ t5 t
  50.         {; w2 B# b7 w! Y! ^! u5 r/ ]
  51.             ECHO("%s", "Exiting program!\n");; T* |) i% u. i  r3 L3 Q2 _
  52.             exit (status);
    $ \. X+ |+ K- U& D- G
  53.         }& Y9 _, q8 Z( b! g4 F
  54.     }: E7 n$ e- u7 n; ^, ]
  55. # }8 y1 ^1 V7 J  A
  56.     return status;
      \0 q1 H) J+ \" T; r2 _3 _$ ]
  57. }! T/ g  h' \! E9 ]% I

  58.   r: R& I) ~& m: [. G: ~. w1 }5 g

  59. " Z5 Y6 V. n3 u/ Y. z
  60. static void do_it(void)
    " t" G( U* v$ d8 Q* g8 G9 S  g
  61. {
    5 b+ e' k$ {& R0 n( _, K
  62.    // write your code here) h' Y. X2 |, _$ y) C5 Z) B% J
  63.    4 d/ m5 \  T9 {* N% x$ c  F
  64. }
    ; }. d% Q* J4 i3 {0 z0 R8 ~

  65. 4 Z1 ~6 ], n6 |% ]1 S" t
  66. int ITK_user_main(int argc, char* argv[])6 r( c( d) u9 U- m3 H  H8 k5 _7 N
  67. {. m! K! P, K* g7 `  i
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    ' M! P& D  N8 E7 D$ H. r' s
  69.          ITK_CALL(ITK_auto_login());7 V% @2 O1 U# U2 S8 I* H
  70.      ITK_CALL(ITK_set_journalling(TRUE));4 S% ~) T0 w  i. r1 L1 ]

  71. $ L' X5 U2 J" f! C$ m# p5 A7 O, f
  72.                 do_it();
    3 F9 ^; ?$ s# ?1 ?: Z7 a
  73. & N0 i9 c4 P* V6 q7 t# r
  74.      ITK_CALL(ITK_exit_module(FALSE));
    # p1 `# R/ ~0 y" h! N9 H
  75. , i- |) C1 @' }5 N" Q: m, G3 U7 ^
  76.     return ITK_ok;% f' e% ~* Q, P+ [2 }8 C
  77. }
    : D7 g8 C8 `/ c) L
复制代码

7 X$ Y0 ^0 P" l
+ ]8 n) B3 O' f- w
上海点团信息科技有限公司,承接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 A7 I  l9 E. {& P$ k2 C

+ ^5 h$ B. ~* a  e: V# ^/ d$ Qhttp://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二次开发专题模块培训报名开始啦

    我知道了