PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
& V, E/ b2 b7 g, p, C: K" S( E关于ITK开发中的模版,我制作了一个,大家可以在这里下载
) d  c) ?! _1 L5 w* v# o+ u& h. a8 w+ o
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!2 U4 _% ?/ ^. v# h8 c0 l
- W# a5 E2 `5 b8 P. V
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!9 s" @7 C* A# T$ Q  X

2 w. ^' N* n' R
. y3 C# F) A% o; W. L
  1. #include <TCcore/aom.h>
    * g  I5 P$ @$ u9 s6 R% d: ~! D+ p8 P
  2. #include <sa/user.h>
    / e% Z' V3 X6 y* \8 w, v
  3. #include <sa/person.h>0 @! ], |' E. D5 w' F
  4. #include <tc/emh.h>; Y0 u* C) E+ r- v4 e2 `
  5. #include <tc/tc.h>- R  b* ?8 [% Q2 n# g
  6. #include <stdarg.h>
    / [5 _/ M7 H6 `

  7. / g- w0 `& e% L% A; N
  8. static void ECHO(char *format, ...)
    ! X$ z2 ?; }3 {- S8 X
  9. {( J3 r. d, T: a! \6 a5 |, H" E
  10.     char msg[1000];
    ) d9 m5 Q9 I6 o7 R' e, o5 J% K, `4 x
  11.     va_list args;" X% u8 q4 G; x9 v% {
  12.     va_start(args, format);
    $ t  h( W: d. ]  S
  13.     vsprintf(msg, format, args);
    & V/ {; P( h2 X0 R! {: U3 P" s
  14.     va_end(args);6 Z8 Y. i% K! P) b4 L
  15.     printf(msg);
    : G; F  c$ X! N6 Q0 d( r
  16.     TC_write_syslog(msg);! h) N! d7 C0 N7 V$ x8 }2 `
  17. }
    ! y3 y: b! A# f% H
  18. $ v4 w) Q; E5 a
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    " R5 M9 i+ H' P% z  B

  20. 3 h; B; P6 G6 t! d1 |$ G' u
  21. static int report_error(char *file, int line, char *call, int status,! c3 v8 k! r. z% [8 D# \6 W
  22.     logical exit_on_error)
    . P, r, d5 u$ s' [
  23. {
    3 ]/ h9 M6 N3 F  T2 H" `3 u9 z+ _
  24.     if (status != ITK_ok)* M7 k7 M$ p( U5 I3 V- x9 R
  25.     {: J: R! Q' ~# H2 B) Y+ Z5 L
  26.         int- [; Y* s! C! I1 X; c" R' N
  27.             n_errors = 0,4 \" q/ b- H% I# h  W. Z
  28.             *severities = NULL,
    " X" d" _3 g* ]
  29.             *statuses = NULL;
    " U# T- w/ [0 K/ L3 C
  30.         char2 i# D9 c+ m- K) D" `
  31.             **messages;( r* @9 ?$ N# _+ v% ?

  32. 8 {/ X: \' M* @2 N
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);4 }: w, Y: M( Z7 z
  34.         if (n_errors > 0)
    ( s+ Y3 c9 f" {0 M4 O: ~0 m9 S
  35.         {
    " S( P( ?$ v5 X5 }. k
  36.             ECHO("\n%s\n", messages[n_errors-1]);, r- R3 U, N6 ~3 }
  37.             EMH_clear_errors();
    ) {: Q" _8 r3 Q8 e8 G. T! G( p" z( g
  38.         }
    8 j* j+ A( O4 R% l" k% |; h+ q
  39.         else8 Z5 l8 ?. X% K! x7 m4 H6 N
  40.         {% [! ]/ h3 H5 }' e$ N, w. V9 E% j3 ?( p
  41.             char *error_message_string;; d$ e8 q! T' q& c2 N& z, t! D
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
      L# M, H2 M. K
  43.             ECHO("\n%s\n", error_message_string);  I0 d: a; m2 D* I
  44.         }
    6 X% a! s: }6 b* [
  45. 2 v! L/ t) P) t( y" t# g
  46.         ECHO("error %d at line %d in %s\n", status, line, file);* o/ s# e+ A' T' w. `+ {9 A- n7 ]+ Q6 v
  47.         ECHO("%s\n", call);7 {" I/ I3 S) j  Q, A" O8 ?7 k; u
  48. 7 ?+ m& ~% k" B: M. e
  49.         if (exit_on_error)
    ! ?$ ]2 y8 h5 |6 ^% `, y
  50.         {
    1 X& M1 T; n& D7 W, R- O
  51.             ECHO("%s", "Exiting program!\n");' r1 U- o/ h0 A7 Y- k
  52.             exit (status);
    , D& O5 A! j6 ~" w9 c( g
  53.         }2 S6 ^9 a# R# [% K3 s6 V
  54.     }! _4 v2 S& R  k1 F5 M3 s) d! @
  55. ! p- n2 M% ^# f( ~% u5 f
  56.     return status;
    ( P9 g) x: [6 h
  57. }
    2 _. P" E6 z2 }

  58. , r6 [3 {1 c3 s3 ~: [% K7 C

  59. 8 \) S3 T4 P6 C( ]: e! m
  60. static void do_it(void)9 E+ Z$ C  H) |1 ~. J* Z2 j9 M0 }$ P
  61. {
    7 d9 `) p/ v7 o$ v7 P
  62.    // write your code here- N# C0 x: d) y+ N: F0 V* M
  63.    
    - Z: }. K2 r2 t+ b
  64. }, ?* j# ~  Q" G+ _
  65. 2 U& ]5 T+ S1 ]" P7 H
  66. int ITK_user_main(int argc, char* argv[])) N' m! @/ `- P6 G0 K* I  B
  67. {
    " f4 ^# S( u9 f' B" I' p# }
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    5 q! e% P$ ^% e  d5 s6 ~4 W( N7 ?5 N
  69.          ITK_CALL(ITK_auto_login());
    & [6 C7 ]$ u; ]  d! u' q! X
  70.      ITK_CALL(ITK_set_journalling(TRUE));+ R4 b8 S& c5 B: {

  71. 7 j6 V/ H+ w  z$ h
  72.                 do_it();
    ! s4 @# S, ~( W) _
  73. ' w# S  D" D' B. Y8 c
  74.      ITK_CALL(ITK_exit_module(FALSE));) T) o! A: z8 Y% G6 ^6 [& x9 B
  75. 5 [' k0 y. a8 C+ ]2 N
  76.     return ITK_ok;" U# [: e3 K& }6 \
  77. }, D0 a# X: z/ b/ ]) S7 U$ L
复制代码

8 G" }! D' m/ c& X" m! F+ @! Y2 a; |3 n1 G
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

admin 发表于 2015-1-21 14:46:15

admin 沙发

2015-1-21 14:46:15

模版下载地址:7 ^/ ]; f! Q5 C& @/ A8 E
$ m* Y  t4 Q5 Z& N9 d
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 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了