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 5959 1

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
- z! q4 q- n! l' Y+ G. H关于ITK开发中的模版,我制作了一个,大家可以在这里下载& D7 c- q3 ^" V, x$ i5 h! Z

+ l+ K  L1 R. i: s此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
! ?- ?; B$ i8 q$ m1 B2 j
) M' s( W. w  M4 w4 Q这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!: `* I  I% Y; N2 g9 [: E% @- \( d8 ^

+ `* o" F7 h) D; P# l4 m4 a/ S
8 n0 i* A0 G; E7 Q
  1. #include <TCcore/aom.h>- b% n- E' q- I+ \3 [
  2. #include <sa/user.h>
    & `. D4 i$ I; l$ y! t4 X+ _
  3. #include <sa/person.h>
    ) a  X7 a& ^- p1 G/ u" c1 p
  4. #include <tc/emh.h>
      U. D/ F+ ~( c) i" O% R1 }
  5. #include <tc/tc.h>  h+ c2 J5 k: X' |+ p3 M0 Q3 c
  6. #include <stdarg.h>6 G  ~9 @0 r& `: f* r2 z! z& O% R  f
  7. $ ~: W% ~  H& l8 p8 _
  8. static void ECHO(char *format, ...)
    : E  P$ d/ h* d: \: ]
  9. {
    8 s' O. C" n4 m) ]. w' m7 `) y  ?" E5 k
  10.     char msg[1000];
    - n* r- K4 T3 U
  11.     va_list args;
    3 Q/ j0 I9 D) _) B, R3 X$ }- J& K5 i
  12.     va_start(args, format);
    ! f# {! {) N0 `
  13.     vsprintf(msg, format, args);' s) [6 x' p# o
  14.     va_end(args);- p5 O$ m" ]/ g; `9 v
  15.     printf(msg);+ ~9 h$ }( D! Z9 A# C: K/ r( O5 ^
  16.     TC_write_syslog(msg);
    6 [3 k; @1 f3 l9 @0 L* g% i
  17. }; x7 I& N8 x! ]1 u

  18. 1 n5 T2 ]9 t# a/ I
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))9 ]7 ^- J9 W7 b3 }4 x4 e% V& T

  20. ! N1 d- ]2 A: t( g2 @8 S: h
  21. static int report_error(char *file, int line, char *call, int status,
    6 q; Q" W& w7 X$ p; H9 Y" D
  22.     logical exit_on_error)2 s7 T: B4 r: W
  23. {
    3 w* ?- n, n4 F4 f% b
  24.     if (status != ITK_ok), B; N# t0 P, N! F4 d: s/ t. J
  25.     {/ _4 q. v& ?- m+ Q9 t8 t4 J
  26.         int
    5 _2 ~" \( S0 z  `8 V) c& T
  27.             n_errors = 0,
      K0 f, {' ]& e
  28.             *severities = NULL,/ l+ U  P) b8 g+ I1 k& Y
  29.             *statuses = NULL;( s( ^5 V0 l: @
  30.         char
    $ ^$ I* T8 f# z7 g
  31.             **messages;
    0 h# H/ G0 N+ a1 O" o

  32. ) }( J5 z9 S% K. q3 ?
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    3 P' L; I3 R; w7 _# U+ ~
  34.         if (n_errors > 0)4 H. r0 w& W  W  E" E0 R! y" x
  35.         {! L. P* R- M& z6 o. A
  36.             ECHO("\n%s\n", messages[n_errors-1]);& \. k) E6 y9 y0 b, J$ h. U
  37.             EMH_clear_errors();; ^- t3 U  w/ l7 X, `
  38.         }
    ) C: f/ R( z' F
  39.         else8 W) m/ A9 l! n9 I  U' i9 u
  40.         {
      D( t9 j, q- @# `; J
  41.             char *error_message_string;
    * M7 d( F/ G* S% _# {
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);) I2 U( y( m9 |
  43.             ECHO("\n%s\n", error_message_string);0 r2 S/ y# p% ~" U/ r
  44.         }
    - O" N3 X  P! e  p0 |; Z
  45. ; z# \& n. A' O0 ^' i3 Q( ?4 x
  46.         ECHO("error %d at line %d in %s\n", status, line, file);! S4 r  S7 a6 b3 f. H
  47.         ECHO("%s\n", call);' K+ ]: Q5 o* s. s, i; V

  48. ) d/ l% G3 j. k/ h6 q
  49.         if (exit_on_error)2 Y! i" J! r. [( W8 b8 j3 X
  50.         {
    % ]8 b& b2 I) _( I# m2 i0 K9 {
  51.             ECHO("%s", "Exiting program!\n");
    ! Q0 B1 B( b/ s- ^. E6 Z& X* E6 M- |
  52.             exit (status);
    + f& D. D7 S" y" m' n% x: _! _/ m
  53.         }
    , M- u" `% e- v' c4 q6 |
  54.     }
      o2 s+ F2 Y. v+ S9 J
  55. 4 g; O2 {4 v: D2 E( A
  56.     return status;
    ! V! N5 I: F1 S$ v' u
  57. }
    * h, a6 L- ]1 C8 C( ?: A. N1 ^

  58. , o1 M, \9 G. ~$ K5 _9 a+ v" i! H% X
  59. ( q2 X/ `7 Q% ^) C0 d* a5 |
  60. static void do_it(void)
    ! t$ V. d& @3 U  i
  61. {
    , x. i* s* T" h
  62.    // write your code here  |1 v" s' u% u) D. P+ V% z
  63.    * P+ h2 q2 |+ d: W( h/ X4 `
  64. }( a6 ~+ Y+ ^0 Y/ M3 d# R1 y6 u
  65. 2 c7 J0 x0 t1 r2 q: V: c5 h0 t& k, e
  66. int ITK_user_main(int argc, char* argv[])* s* B8 y9 I% @, I! }! v- V* l
  67. {  }# W8 D5 t- C7 w  W3 H$ ]
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    9 g  q+ j. m9 a% Z. N3 I& A0 C4 Z
  69.          ITK_CALL(ITK_auto_login());* ]1 {: [7 W8 J, ^; P
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    : G$ t* C5 l. K# A, }/ t9 G

  71. 4 Q; T- j7 y2 h  B9 n, [1 B
  72.                 do_it();' ^$ i& M, s' h( W/ c0 v9 ]4 K% W

  73. % {  y, V. F9 L- v- J) {7 U* x
  74.      ITK_CALL(ITK_exit_module(FALSE));
    8 \- c2 O+ h' u1 T
  75. # \7 R' v' ?# z/ |: o) b' [. f
  76.     return ITK_ok;
    4 L  c. ]5 Z, M
  77. }0 d# b0 V' n3 z  H
复制代码
5 z6 i: [* C' n/ Y4 U  C4 s
9 N( @1 D! P5 }. E& Z
上海点团信息科技有限公司,承接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

模版下载地址:; d, S4 _5 k3 W2 k9 g1 p* Q/ P
7 D5 [- b( K' N- K8 C
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二次开发专题模块培训报名开始啦

    我知道了