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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
1 o1 q3 S; k2 n' D关于ITK开发中的模版,我制作了一个,大家可以在这里下载
  W9 V  z5 j0 V- _4 D4 x3 u0 w& K# R5 r8 ^
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!7 j' X% }# A' w0 C0 J

% V0 z: q( k' E' E) D+ c+ S' D这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!) p$ H/ ^3 [8 ?9 a$ G4 a

3 J4 O) b4 V8 @  \$ X% M4 a' R, A
4 g' J4 F* L! f$ t: `, h
  1. #include <TCcore/aom.h>9 z4 D% E- g. P$ [9 P) U* e7 g/ {
  2. #include <sa/user.h>
    . ~" X6 p% k. E% B; }" P5 {) x
  3. #include <sa/person.h>9 S4 W+ Q/ a$ _% J- i
  4. #include <tc/emh.h>
    $ h3 k" |% j, E: |+ b
  5. #include <tc/tc.h>
    ; X: n, `5 F# d4 }4 K
  6. #include <stdarg.h>
      i1 z+ ]7 O4 U
  7. * P' U) @) J" O9 O3 d
  8. static void ECHO(char *format, ...)/ G, n( V" t7 F7 `9 Z! \2 t
  9. {
    ; B* v$ l2 b* F3 Y3 x, V& y4 v  d2 q
  10.     char msg[1000];1 W4 f$ Z6 E1 v
  11.     va_list args;( M0 A  N8 Q3 ?. `; ~
  12.     va_start(args, format);
    ( C& m$ |* O: E' F. E
  13.     vsprintf(msg, format, args);, v% Q. l. j- g/ i) S
  14.     va_end(args);
    ' W0 y( Z- p+ G  c" z, |/ s0 |
  15.     printf(msg);. ^5 l' _/ E& o: f5 x# w
  16.     TC_write_syslog(msg);
    ) p, `; h% w5 I1 k
  17. }& F  W" |2 ?: M  ~6 }

  18. ) U" |- _5 }5 h/ J& v# G
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))2 B2 V$ @6 h; a/ ]) D! X* z- K
  20. ; B6 J4 P- e, s% r
  21. static int report_error(char *file, int line, char *call, int status,
    0 a, k8 r/ U9 {: P
  22.     logical exit_on_error)
    : m5 C  Q5 b! m$ b' L
  23. {
    - h$ Q1 Y7 F4 p1 M6 ^
  24.     if (status != ITK_ok)
    , P& E, z4 ]. O1 l0 M% O+ G- T
  25.     {: u8 G) i- n& p
  26.         int
    6 _# W* Y% {; E2 b: R9 m9 ]$ `
  27.             n_errors = 0,9 n- z- E# Q  z, i8 a; [& R1 n
  28.             *severities = NULL,8 l. P$ g* ?, u9 W" i4 D  d5 U
  29.             *statuses = NULL;! Z9 ^; V8 r& a( G
  30.         char. H) k2 K4 s2 q5 m% D+ O. J
  31.             **messages;
    ' d( i* d4 J$ c' P7 W; N
  32. 1 j# a5 h! ^6 S2 ~+ S) V2 K
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);6 E; v- }; C: P" R2 v# E: n
  34.         if (n_errors > 0)' \) g' ~1 F% L6 g8 q3 Q# m2 N
  35.         {
    3 M" O% J3 @3 A  l) Q7 z
  36.             ECHO("\n%s\n", messages[n_errors-1]);2 H; U5 G* N$ j# S1 u
  37.             EMH_clear_errors();6 q! W6 n8 x' C. v& R
  38.         }
    5 I1 P% X" i7 u
  39.         else
    ' a+ e9 X1 C+ W7 x
  40.         {
    ) A; c/ k  l. s. x  K# R; Z# a
  41.             char *error_message_string;7 x. ]4 ^% T+ |# u' J3 Z2 ~, \; h
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);5 G' @! g: a+ N" ?9 W- J: m8 p9 W
  43.             ECHO("\n%s\n", error_message_string);
    " ?" v/ p( b/ o6 _
  44.         }
    5 x+ c' G/ T& n; C- v6 J

  45. 5 x  N$ u8 r% n2 _
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    ! K% S% q+ p: L# ?3 Y6 ~; i8 H$ S  U
  47.         ECHO("%s\n", call);
    . X/ b: e4 b0 i- b
  48. $ K) F( S5 E6 f: j; m) r3 X
  49.         if (exit_on_error)
    0 s" w3 ?0 w/ [8 K# R
  50.         {8 a% m% ~9 B; ]2 b4 A- X
  51.             ECHO("%s", "Exiting program!\n");
    . i" v7 t% _2 f" Y9 w
  52.             exit (status);
    * |# A# a4 S4 P" i4 U5 ^7 D. p% |
  53.         }& r$ i, z% n' h, B  o
  54.     }1 d0 K( m' c% P
  55. 9 c; b( h4 ~6 ^2 s2 H+ m9 M
  56.     return status;; G5 `. a0 g& D. [( Z
  57. }0 k' n0 N3 B$ W
  58. ( E) R1 g8 t! z$ a) q% X$ p
  59. ) o% G6 G# h# W. i. M9 [- D
  60. static void do_it(void)
    - J% S( q' d- L
  61. {
    5 t5 H/ V4 C+ L" k* g6 O
  62.    // write your code here  y' a$ s. `8 q  m$ O3 U/ K
  63.    
    5 Z/ l$ ?0 R" [1 O0 Z- _9 N- S
  64. }
    & n8 Y1 d3 n+ t: }( [
  65. 7 o2 A0 e' [+ b5 |. M& f
  66. int ITK_user_main(int argc, char* argv[]); Q" a5 c  B; M+ V! I
  67. {
    ! T0 @6 r' q! Z8 G% X* ?
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    4 x7 [  W9 \% C7 e
  69.          ITK_CALL(ITK_auto_login());. G6 A' H  N* V7 y- t
  70.      ITK_CALL(ITK_set_journalling(TRUE));9 H0 e8 b' @4 v  O

  71. 0 O/ o6 r- C6 ~9 h7 i- h+ o
  72.                 do_it();
    5 U8 U$ E8 U, Y2 g0 I* F0 i2 x: [

  73. - z* ?& }3 d) }
  74.      ITK_CALL(ITK_exit_module(FALSE));
    ' ^# ~' ?) t2 d2 ~
  75. % Y) f4 [/ o& f  b' C) V+ v
  76.     return ITK_ok;, ~0 ~" l3 n7 S* N3 l4 `
  77. }9 ~: o# {2 o5 a2 \
复制代码
5 {% @  B9 q  `0 k9 K

: C3 R& q7 r2 h8 D( i5 N. {: W
上海点团信息科技有限公司,承接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

模版下载地址:- u% ?% P3 {6 \! f5 S8 n8 u8 T' @
3 W# x. b& \& n7 k4 {# k
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二次开发专题模块培训报名开始啦

    我知道了