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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
9 v/ i+ j! A: |0 n关于ITK开发中的模版,我制作了一个,大家可以在这里下载
) O8 T: {5 [. m" N; v" G: \) f# e6 N
8 I/ Q6 P% x: q9 x此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
# q$ `% y# E3 u: S0 E% u
" A3 Y4 p4 O/ i$ z, V4 T这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!5 J3 v% Y: ^9 [" z$ y  T& b

3 F! o( ^- i1 X$ j
. e! J' u* r0 [2 ~7 `& e- y
  1. #include <TCcore/aom.h>
    + a6 x1 S; r+ h+ l5 Z9 f6 N
  2. #include <sa/user.h>7 d* ~1 N1 V. W( w
  3. #include <sa/person.h>
    8 k, T5 O% A' z
  4. #include <tc/emh.h>, W1 g0 w! V9 P
  5. #include <tc/tc.h>
    8 r9 V) }3 G4 c, _$ i  J' }0 `
  6. #include <stdarg.h>
    : L, j) K3 R' [, v' Y) J
  7. " S/ W" f- e& P: |0 M) H$ i. j
  8. static void ECHO(char *format, ...)
    7 S. `$ Z5 U, Z7 Z
  9. {2 E; r8 s* [  V- ?5 F
  10.     char msg[1000];* }; N# y& B) _8 e; ~# m0 L
  11.     va_list args;
    + F' D  ^1 _2 \+ I. ~
  12.     va_start(args, format);
    . m, K) p# [2 k% T7 G0 a" n
  13.     vsprintf(msg, format, args);( X/ n) \  J3 S( o4 h. ~* ~0 [
  14.     va_end(args);
    9 _* U9 ~' S, x2 u0 L. f
  15.     printf(msg);
    / A7 z% O) J$ ~: {8 P
  16.     TC_write_syslog(msg);& S5 M$ W5 T# ?( M
  17. }
    4 y& o- }7 v& b4 w6 q( @+ i" j

  18. ) q; r/ ]) e/ T5 K; l" g
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    4 B# r$ ~, ]( i. y+ Y  Q4 V1 f( X

  20. 4 k8 S1 Y4 y8 [  ]4 F7 @9 a
  21. static int report_error(char *file, int line, char *call, int status,# H4 @5 B1 ~. R3 n
  22.     logical exit_on_error)
    & {* V0 `7 l: o3 l' d% X8 }
  23. {9 }! I" v! `6 b9 I! C
  24.     if (status != ITK_ok)/ T4 d( U/ _; A
  25.     {
    1 k$ I4 c, q; J0 i( L
  26.         int9 l" r+ ^! l) O# G$ Z2 a! \) N4 S# ?
  27.             n_errors = 0,
    7 m$ x- f4 s& o4 Q
  28.             *severities = NULL,
    . q+ K1 k- B+ W+ P$ f4 u) F+ n
  29.             *statuses = NULL;; D' ^  O* I' I& `- _0 K. {
  30.         char
    ) {' Q% }& |& P( h
  31.             **messages;
    . {2 g" H& B5 C

  32. 9 H, b( Z  h0 z8 h( v& O
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    0 z7 c/ ]8 _: H
  34.         if (n_errors > 0)
    $ F+ Q6 Z5 k# s/ K3 u
  35.         {* E( r) U6 H/ i& ^' @
  36.             ECHO("\n%s\n", messages[n_errors-1]);" ?# N, X; g, Y; B7 _' t: d
  37.             EMH_clear_errors();0 c) M- J2 J1 K1 j
  38.         }6 E5 R: \" r+ g* Y
  39.         else
    ! ^: O$ w) ^/ u( A" u" f
  40.         {$ B. {+ Q! r( e9 d# v3 }) h6 \
  41.             char *error_message_string;
    - a' F/ O. F- g0 U" k, ?1 H
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);+ W, O5 d- ?2 V( H( E4 Y
  43.             ECHO("\n%s\n", error_message_string);" i7 j1 C9 t5 Y/ g( `
  44.         }
    7 j' N6 u6 _4 M. m& l4 W% v

  45. ' J0 ~- e( g6 I( ]/ z
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    3 Q8 f6 W4 y- G3 E0 U1 C
  47.         ECHO("%s\n", call);
    / p# j0 ~) d& t; f, i5 N6 r& E

  48. ! B. s2 _" m0 m; l7 I
  49.         if (exit_on_error)1 b: _& o2 z7 J5 A& P: V' f
  50.         {3 b, r' c( W$ `1 H$ y: {  u0 z
  51.             ECHO("%s", "Exiting program!\n");6 h: J) f" _) ?3 Z$ B" |$ r, U
  52.             exit (status);6 ?" o+ j& M2 u4 P7 t
  53.         }
    3 g  |+ i% w& W: C, x$ U
  54.     }
    5 A  q! C! P2 L; J# X9 _

  55. - c0 G& M% Q! c
  56.     return status;+ `2 \& R7 X1 f% b* [; _
  57. }& y$ G  ~3 I- t( `

  58. 2 }) I4 e0 A; h2 U3 m, D. ?8 e
  59. - _* P: V5 T. |9 _# y# U" D
  60. static void do_it(void)
    2 s/ l' s3 P# Y2 S& V
  61. {
    0 h. R7 f$ \7 D7 }
  62.    // write your code here/ Z( Z5 q( k7 j+ c) y0 k0 k8 l
  63.    
    0 e$ j  l; y6 M+ k# h, h
  64. }/ V8 [8 _% [1 D" d, m2 b  ^$ C

  65. + D- o! D+ c9 u
  66. int ITK_user_main(int argc, char* argv[])7 a, g% `% l* f# }
  67. {, g0 o/ n  N% e$ I# Z6 b2 }
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));5 _& C$ ~) d# d6 Y" g- h) D1 i
  69.          ITK_CALL(ITK_auto_login());
    ' K0 _' c6 L3 W
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    & M) }6 N2 r, R

  71. ( u* w9 a8 K- \
  72.                 do_it();0 }" k; H, v8 `+ k8 }
  73. + J, y0 z0 w0 ]  _# y
  74.      ITK_CALL(ITK_exit_module(FALSE));- T* _8 z: U; u8 Z1 O0 d$ \

  75. + o$ b8 E; q/ a- \. Z+ {
  76.     return ITK_ok;$ u- K) [, |$ \6 i7 {- V
  77. }& F  V" {8 [- P& h) G
复制代码
3 e0 F/ H' g9 n2 A' _
7 R) ^3 s  g( ?" S' ^# a
上海点团信息科技有限公司,承接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

模版下载地址:" m' `& p7 _: P- n: f
4 F1 ^! c* D! W3 ^
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二次开发专题模块培训报名开始啦

    我知道了