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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
2 C% o! q$ M$ c1 w( X关于ITK开发中的模版,我制作了一个,大家可以在这里下载7 }( \, E+ y0 j
/ j' k+ I" Z  P
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!6 ~+ _* u6 M& v& \' ~9 \- ^- i2 a
; X' h) ^2 N) e8 ?4 X, g! w
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!7 n. a8 D) g: K8 ]& K

6 x+ ?5 A: ?% d, v3 u( T
* x+ w% ]3 g2 T
  1. #include <TCcore/aom.h>5 X' D! r- b5 M) B# Q2 G2 H7 o4 O
  2. #include <sa/user.h>
    ) B/ ]) e: v# e6 o5 n% E
  3. #include <sa/person.h>
    + g& }- x( ~( X. ~& V+ {
  4. #include <tc/emh.h>
    9 P7 k& |" B& k( S! f1 \3 W
  5. #include <tc/tc.h>5 B7 W+ J$ M. U) V( a+ o, E6 _8 _
  6. #include <stdarg.h>6 t( ~5 _: z) b  K9 K% f8 F

  7. 1 T& m4 v) l8 Q
  8. static void ECHO(char *format, ...)
    % Z6 L: Z5 v/ D6 X  q
  9. {
    9 }' M, P( U* l9 _2 [2 C5 J  n' i! h
  10.     char msg[1000];
    & U5 y& }$ Y6 S1 d$ w" K3 C
  11.     va_list args;" c. n+ Z8 Y0 X4 |+ P! G
  12.     va_start(args, format);
    8 Z- S; [: w1 p7 H  W6 h' K( t
  13.     vsprintf(msg, format, args);
    2 `1 c* J. x, V# S3 a9 E
  14.     va_end(args);
    " R8 {# `, f- v- N7 ^" `9 c
  15.     printf(msg);6 C7 O1 T. H6 x* x! b( h6 p* c0 g
  16.     TC_write_syslog(msg);
    , }9 j9 ~" h4 A: E* {/ a
  17. }
    ; u9 E2 Y* H0 `" a

  18. 7 A. o( r. K8 w
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    / `- `; n7 j/ x! b; n7 z

  20. $ b1 d7 m+ a; n+ t
  21. static int report_error(char *file, int line, char *call, int status,
    ; g, n$ c2 G: |+ R; L6 f
  22.     logical exit_on_error)
    # Q2 c) X4 E4 ?* }7 o- H# f
  23. {
    ; H8 z2 l2 m* i8 k5 f
  24.     if (status != ITK_ok)
    / l) Q& L+ P. h( \9 f4 y
  25.     {0 W- g9 K. w- s6 z' k8 \
  26.         int! A+ Y) |' ~* |, O0 V
  27.             n_errors = 0,7 V& p  d8 W# g3 L5 L8 L; t, W0 r
  28.             *severities = NULL,$ d# N& Z9 u% O& H' q1 ^- I
  29.             *statuses = NULL;
    ; O5 V: t5 U. ], A- m- V0 Z/ u
  30.         char6 a+ j# I  B( q: V
  31.             **messages;( `# M% {% X5 W2 {
  32. & B' ~. J9 N7 k/ I
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
      c* q4 j; ^& L+ n) S* Z
  34.         if (n_errors > 0)
    8 \# c* i: Y% G0 H+ N2 c
  35.         {. Q3 l" a' j! y+ ?
  36.             ECHO("\n%s\n", messages[n_errors-1]);; t5 A5 f1 C. F  |7 k
  37.             EMH_clear_errors();$ h" J8 S; C. U) ?$ f
  38.         }
    % U) P) b1 c+ v0 L# L4 @
  39.         else
    " y+ T- v+ v% M, x; [4 U
  40.         {
    3 }$ A! M8 ^! Q  Y
  41.             char *error_message_string;% n! h1 r, L) M0 f: I0 g9 {
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);/ T. b3 V  L: P) e. u
  43.             ECHO("\n%s\n", error_message_string);
    - O  B) y7 e7 x! _% _; T! s) Q
  44.         }% T: k/ J& u0 ]# J; b$ I
  45. & y) f8 k, h( {0 V" O8 G
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    : D: ~. c: c4 X( O8 F* p2 V
  47.         ECHO("%s\n", call);- K5 x  N, G8 m: m$ O/ [  F5 ]8 v
  48. ! _6 m# a  \8 v" v5 `
  49.         if (exit_on_error)3 J: Q" t$ M! [! L9 W- ~
  50.         {
    ; J9 A8 A0 G' V$ l  P' N
  51.             ECHO("%s", "Exiting program!\n");
    4 J! c. c* N' _. O' V% f1 o
  52.             exit (status);
    3 h! ^+ ^! k' j
  53.         }2 L' [' O+ p# p7 H. |3 U' N
  54.     }
    8 {$ \  G9 s! M+ F

  55. ( l1 |0 m8 B3 G4 s. a4 n
  56.     return status;
    / \4 _2 p7 S( [7 b! b5 H7 W# U
  57. }% f% Y9 I. ?3 r/ X+ g' G! Y

  58. / z0 L3 }) u. f; [" ^
  59. / n& }* G$ l: @) z1 V
  60. static void do_it(void)6 o: r: _3 c4 M* t# b+ z$ L( x
  61. {
      Q  V( E* J5 ~: A* p
  62.    // write your code here- C' ^: C, M) B$ ]; {0 {
  63.    
    8 h' f7 A% d/ }9 \  F. H1 ]. D' P( L
  64. }  K) ]* i' U% N: C
  65. ' S- ^. Z1 c; {) E5 h! Q+ U) g
  66. int ITK_user_main(int argc, char* argv[])2 D. _$ h8 r0 u! O/ y1 E! }
  67. {0 z* U  M# P5 s4 K1 F) ]& A
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));6 Y: ?" ]1 I3 D
  69.          ITK_CALL(ITK_auto_login());
    7 l2 t6 k  z3 h2 q/ i( B2 z
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    ! u, `" H2 \% ?) ~' a

  71. 8 ^& x2 K( V$ W4 B0 P
  72.                 do_it();
    8 C& z  v; i! x
  73. 8 Y4 y9 U  N0 W0 N4 P
  74.      ITK_CALL(ITK_exit_module(FALSE));
    $ ~  b$ c8 @2 a' b
  75. * x9 k( k$ t7 A8 [) f, [
  76.     return ITK_ok;8 w. \  V& R9 ~+ s' t' ^
  77. }
    . y9 u9 T6 V) O/ H7 U  P
复制代码
. h* u; ?' u4 N  D) L9 r9 q

) a) z6 v* p/ M0 \0 `# y
上海点团信息科技有限公司,承接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

模版下载地址:
6 k, X* Z: s0 R! H5 I  R1 s# ^" s/ V3 |  a' I! W! p2 }
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二次开发专题模块培训报名开始啦

    我知道了