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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
7 I( M( c) B* d5 M8 x( ?关于ITK开发中的模版,我制作了一个,大家可以在这里下载
1 V; y, T# v+ c$ F3 y6 ]: h
) O9 l& S/ ~' `6 e( K: @" V此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
; |2 o) s* u& Y0 J, Q/ Q8 I6 J- M; |
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!* e! x* G' z7 G) B  c3 z/ L
8 d  x5 N" u" Q1 v, v
+ U9 m1 E- V+ b/ H
  1. #include <TCcore/aom.h>+ V) h% z/ B1 G/ x/ V" E
  2. #include <sa/user.h>
    8 ^, I4 }: ]6 D
  3. #include <sa/person.h>
    0 C+ G5 U; m- f! V. E: l0 h8 Z2 J
  4. #include <tc/emh.h>; X/ F: |5 ^1 S+ D7 v( j: s6 l
  5. #include <tc/tc.h>
    : s! t. z) I$ J
  6. #include <stdarg.h>
    ' p* e( ?1 F8 A5 h, s$ J
  7. 4 d3 \6 ^* W% y  d( N
  8. static void ECHO(char *format, ...)- S( h1 B4 c0 z8 T5 O" i- _
  9. {6 x" m2 C' o) H4 J4 g. j
  10.     char msg[1000];) o6 d3 a- n& \3 |* D2 y
  11.     va_list args;
    ) G( w' B* |0 @- r# I# a8 {/ }% C
  12.     va_start(args, format);
    : _1 G' C) O: v0 q
  13.     vsprintf(msg, format, args);0 l$ }5 t8 Z9 u  x- F" j9 P
  14.     va_end(args);
    2 [3 q$ A2 J- c! L
  15.     printf(msg);
    ; _' L% j- R/ D( h$ i1 Y6 c
  16.     TC_write_syslog(msg);
    4 ?  {$ o: \+ u; s% f
  17. }- O6 c2 b( z4 b9 {0 y

  18. ; U* ~2 v/ d. U/ q* W2 `- ]
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    " N; {8 o2 u9 f& {5 B1 P3 d

  20. * j2 [3 }3 A0 Y) q$ z- D( F3 n
  21. static int report_error(char *file, int line, char *call, int status,7 ~) e' c1 I+ Z# w4 b6 k
  22.     logical exit_on_error)+ i+ ?$ r& L: C0 Q3 ]. u
  23. {$ k% W. D+ J/ n. h/ }
  24.     if (status != ITK_ok)5 A% V# w( j  P# H( N2 o1 D0 w
  25.     {
    , p& `# O* F" \4 J7 L
  26.         int
    ) ^. D0 A9 y" f3 l) ~) m4 J) |0 V
  27.             n_errors = 0,' o) |) s9 M" G2 X
  28.             *severities = NULL,* s. l/ _$ S3 D2 y+ u/ l" X( w8 _
  29.             *statuses = NULL;2 ^2 v+ X# g5 W' O
  30.         char+ p% _+ F) _" P2 ]8 b3 ~
  31.             **messages;. B" i! D+ Z! N! J( c
  32.   j: e' P$ u) C( E3 T/ T& l& `. K  }
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);0 \$ b3 Z) U8 T! ?
  34.         if (n_errors > 0)
    ' w' |7 q$ d' L' e8 |$ f8 G, Q" t
  35.         {5 _# l( e; S' C3 ?/ E$ |
  36.             ECHO("\n%s\n", messages[n_errors-1]);+ ^: K( S; z( x
  37.             EMH_clear_errors();" o0 @( B9 n$ M5 A( c9 p" T3 `
  38.         }% p4 w; R0 g8 K% W3 w) k0 m; m7 X
  39.         else, x8 s% ^5 D0 k' [0 }2 A
  40.         {
    / k& h( g4 d: q0 D% i2 X
  41.             char *error_message_string;
    / Q* _3 g- E2 N: g" ~3 Z  ?1 p3 V
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
    $ i2 V, g* _6 M! ~6 I# i
  43.             ECHO("\n%s\n", error_message_string);
    . N) K( @/ g0 g2 v
  44.         }
    & d9 Q7 R" E  f1 {5 |! y
  45. ) W: z/ P3 G. a" ~
  46.         ECHO("error %d at line %d in %s\n", status, line, file);1 y( Q1 W* M1 m' M6 b, d; h) x
  47.         ECHO("%s\n", call);
    ' J& H8 `( r! I; r: f6 h" V
  48. ; ]4 r8 V8 u+ k6 {
  49.         if (exit_on_error)2 S: M9 o" N- \3 E
  50.         {' T* k8 d/ C( V( P  ^
  51.             ECHO("%s", "Exiting program!\n");
    ; x; W0 U; O# z
  52.             exit (status);
    : o: J, X; t. A2 R
  53.         }2 |1 }2 [  q& v2 J4 `# H
  54.     }
    2 O+ Q$ c: n. @! A5 }0 m
  55. 0 O# M- a" O) [" Y6 R% z3 m! t
  56.     return status;
    * p9 [8 O: l4 K. Z) q$ [5 O1 R
  57. }
    6 g* l. T7 r& J5 ?
  58. 5 S4 X( l% E! Y5 G

  59. 6 P1 m' D$ d5 K) D
  60. static void do_it(void)
    : W4 R0 h6 r) m+ d( O, Z
  61. {4 e7 C7 D3 Z; I/ I  d5 p
  62.    // write your code here; h2 s/ u; j7 K" C5 x0 }! B
  63.    / e: W  S3 n, X  f' W9 ^
  64. }) K5 X/ v4 J, D( {. d  d2 W

  65. " [9 R1 j+ S! Y( |
  66. int ITK_user_main(int argc, char* argv[])
    % y, t$ _- N, ~8 M! k. e* a$ x0 \
  67. {9 z: c5 N. @! F
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    # P$ k) k& J3 N' l2 L
  69.          ITK_CALL(ITK_auto_login());
    . d7 M" r1 U# v+ J0 b( d
  70.      ITK_CALL(ITK_set_journalling(TRUE));4 U" Q+ s7 k# J6 _4 T7 p
  71. / A2 S3 h6 y3 E1 X1 e
  72.                 do_it();
    " f/ l. q% l5 q! Z
  73. # Z' f* Z: z8 E" O& i. e( ]9 Z
  74.      ITK_CALL(ITK_exit_module(FALSE));
    4 M+ K5 N# `$ \
  75. # g: p3 Y# k$ G+ ?! D
  76.     return ITK_ok;
    + d1 [: |2 a) p" s1 ~- D5 u
  77. }
    . S# }3 f9 z9 i8 f
复制代码

* g5 c' y0 j) \& W1 u* q7 J
5 h& r7 D3 W0 z; m3 i' M
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
 楼主| 发表于 2015-1-21 14:46:15 | 显示全部楼层
模版下载地址:4 h3 R9 Q) P. ?, i6 V
5 p6 e! s7 K6 b
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二次开发专题模块培训报名开始啦

    我知道了