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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
' H  M0 F4 E* n/ n! P6 F. S; ~关于ITK开发中的模版,我制作了一个,大家可以在这里下载
; x+ o( T, b0 i% [/ p7 n5 \) l
# J& D# G1 n  o; N" f- h1 p* |此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!: w' g2 P( `; G& k3 }

+ g0 c& Z. Y$ W# i7 x这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!4 l- G" n/ Y! l% I
& j& [9 M, |1 V5 G- |

+ W1 D" `5 ^' K2 v0 U. P. ^4 w
  1. #include <TCcore/aom.h>
    : H' o/ `. {! g
  2. #include <sa/user.h>2 t- Y; H4 D! m3 ?, _3 c! y
  3. #include <sa/person.h>2 L" k8 l0 s7 H' B
  4. #include <tc/emh.h>/ P+ L6 B0 f4 a; W, |) k. I( _# f
  5. #include <tc/tc.h>- C8 a- ]5 B7 ^& p3 T" B
  6. #include <stdarg.h>
    : ]# ~3 [3 u/ M# q1 O
  7. # L8 d# s. k, n% C4 i
  8. static void ECHO(char *format, ...), C: l5 Q0 g7 s# l) I; t
  9. {- k  d  i- v% I( S
  10.     char msg[1000];
    ' b" k+ X' z& q. b
  11.     va_list args;
    4 d& \1 s2 f' p. s6 K, V
  12.     va_start(args, format);
    * z8 O) B, S) x4 E: }
  13.     vsprintf(msg, format, args);
    2 A- {% I  q  e/ j9 K0 I' E( \
  14.     va_end(args);
      r9 p6 n6 X6 x
  15.     printf(msg);+ p; w5 h0 y2 ]4 i+ c3 S
  16.     TC_write_syslog(msg);
    1 e6 ~) `/ Y8 m* G0 H+ N
  17. }  V0 H# g& c2 ?, ^; ]7 V% X
  18. 5 F* K7 S- ~) M9 ?1 H2 ~, D2 \
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    ; B; I5 |/ N8 x! r: H- x3 h/ H

  20. - M+ G% {& G8 g/ h
  21. static int report_error(char *file, int line, char *call, int status,
    ) \$ z" [2 M: e; Y( V
  22.     logical exit_on_error)
    2 G* J0 j& F$ I' O7 p/ h
  23. {
    2 c3 v8 ]; w) M' E9 g2 T1 \0 r
  24.     if (status != ITK_ok)
    5 H) B4 Z8 G" i. q
  25.     {9 k* f0 y% i8 H6 n: j
  26.         int1 y& {" a- R0 c( {: X5 F  K
  27.             n_errors = 0,
    ) j8 }5 M. _8 R7 ?' u
  28.             *severities = NULL,
    ' W; M: J+ r3 ]
  29.             *statuses = NULL;
    $ ]) {5 R0 r1 u: V
  30.         char
    & x& H6 x; C* u
  31.             **messages;8 e" v. T$ B* ~6 m8 S% P$ \, l

  32. ; Q6 ]9 ^2 `4 P' V& G, |1 h
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    7 V2 d/ C" d7 M: j2 K
  34.         if (n_errors > 0)
    ! e& Q* y, T, o! b& o( j- M4 i
  35.         {8 o9 C3 H2 Y% R) @- L
  36.             ECHO("\n%s\n", messages[n_errors-1]);+ N; ^( T! |" y7 f1 h# c# n9 J
  37.             EMH_clear_errors();
    7 B7 u' K2 x9 n9 p( }
  38.         }1 b1 Z9 |. T/ |. V% |8 L1 U
  39.         else7 V, [9 C! d# {' ?, _
  40.         {* q* y3 F* W: o+ w; c
  41.             char *error_message_string;
    + E! j, Y4 i: Z. t7 X/ c" G
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);* B" _) t' }/ x" b4 ~0 Q; N
  43.             ECHO("\n%s\n", error_message_string);
    7 N% {7 D5 X3 N1 f9 V7 G
  44.         }1 n+ X6 i. j/ b+ t2 y1 q

  45. 0 R) j, S& `! o7 E8 m  `7 \
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    % y6 D3 w# }, C: \1 K: s8 S& g, w
  47.         ECHO("%s\n", call);4 w' O* M2 x( _, S
  48. , n+ p9 c0 f& G9 I. G" M/ U
  49.         if (exit_on_error)& t# [$ V8 k  p/ s) E9 a
  50.         {
    + ^7 f3 R. s6 S: Q$ C9 C9 Y
  51.             ECHO("%s", "Exiting program!\n");
    ; Q3 f& p+ Y6 `
  52.             exit (status);1 x6 r1 o; p+ K/ {
  53.         }: n+ J" C" M! [! G, ^
  54.     }+ {+ i& s6 `  z

  55.   A# H" a% j5 ?2 Z
  56.     return status;/ J2 e2 J2 Y6 ]8 F
  57. }
    $ w* F( u3 K5 L, h8 G/ u& n# v7 h
  58. / Q* i. F4 i6 C8 H& [* k  T

  59. & _2 C3 S/ F$ m+ C5 A& P
  60. static void do_it(void)
    ' |( }. y1 b) x3 @1 P% m
  61. {; u( l0 d+ j* p2 t- ^4 V' ~  _
  62.    // write your code here1 f8 Y$ m9 d( h' b3 i* A
  63.    
    8 }5 @- b8 s$ }" o9 y4 K- o/ H
  64. }, |4 O% `7 H9 k  I# ~% i) S* I9 {

  65. 1 w8 i. J9 F: y; c& @; }' ^
  66. int ITK_user_main(int argc, char* argv[])" F/ M) \+ V  |4 s8 V
  67. {
    6 x7 d$ c: S  n
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    1 R2 Y* x) _) _8 v
  69.          ITK_CALL(ITK_auto_login());
    2 @4 y( w* `+ ?* k
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    ( O( E, G8 }4 s8 m( e( f9 Y

  71. / W2 q& S5 G; c
  72.                 do_it();
    . E6 ^9 I0 B5 \3 J! v! X  J5 ?
  73. ; H0 ^1 T( V/ Q+ p: ?/ Y& S
  74.      ITK_CALL(ITK_exit_module(FALSE));7 [( F1 p) g# F
  75. , ?4 D% }3 `" u- {6 x6 D/ p2 h
  76.     return ITK_ok;
    " z; M  S' F# G# @7 _
  77. }6 j+ E* ~* j4 @$ p
复制代码
$ z# G, ~# Z: x- L

* Q8 l) W5 l& w( O( {, X
上海点团信息科技有限公司,承接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

模版下载地址:
2 [% E) ?: P/ e: l3 T! x  A& M. n
+ `$ P' l  W" A; N7 X* {- xhttp://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二次开发专题模块培训报名开始啦

    我知道了