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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
( m$ O: u: T/ d, H  r: v关于ITK开发中的模版,我制作了一个,大家可以在这里下载" W) |0 L! H7 R+ W+ n+ }5 d* d

6 A1 f: G  A1 I. B) x3 w. w此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!  N  n3 q" `2 K  y- o. z% _
. d" E$ _" L8 h, h
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!8 d. h! I$ e) m
/ S% ?2 }# `3 B. X; X/ r( _

; W3 s) \5 i! x  j4 P2 x
  1. #include <TCcore/aom.h>
    + g7 [2 x7 a2 ?' m& _
  2. #include <sa/user.h>* s! ?- j: E! C5 y% a2 e
  3. #include <sa/person.h>3 c2 C8 ?; T# b
  4. #include <tc/emh.h>
    6 F1 v( a! R' o. ^3 b) _& z: j% ]
  5. #include <tc/tc.h>
    ' v, C9 J1 @2 B4 w) y
  6. #include <stdarg.h>( x# ?1 O1 L4 @" q
  7. : M$ R; X; c5 N' J  _
  8. static void ECHO(char *format, ...)
    3 T# x4 I) J  `& g
  9. {% F* d3 G( L2 C1 Y* I- A
  10.     char msg[1000];
    5 K( V1 y, ]8 Y1 f) W
  11.     va_list args;
    , T' g' z: P# b; z6 E  M4 T
  12.     va_start(args, format);
    " |& i" b2 M$ X: `, |
  13.     vsprintf(msg, format, args);' Q2 s. m6 ?9 q2 u- N3 h; y7 W
  14.     va_end(args);( n7 Y# G9 H/ B- T  t) @
  15.     printf(msg);
    ) n2 v/ M; v6 [( }1 I" S
  16.     TC_write_syslog(msg);
    . }& D% ~% A& H! x) _
  17. }/ s6 P- t/ t5 o$ O; p+ C$ L
  18. : Q, g8 M* T1 S
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    % g: ?5 K" r6 t! f8 z1 \. B' C* d
  20. 8 w2 U5 O' X6 ]
  21. static int report_error(char *file, int line, char *call, int status,- {: X7 k4 r3 x% P) ]
  22.     logical exit_on_error)
    ( e; D, G: L% _* q  M3 ?2 P
  23. {/ y- Y' v# p8 `- s# P  _
  24.     if (status != ITK_ok)5 o* N2 i2 N  E, L" H
  25.     {1 Y% V* l6 [: t- I9 ]9 ~  [+ F9 c
  26.         int1 l3 X3 ^# J( n6 ~( z2 ?3 t$ j
  27.             n_errors = 0,  @( a+ ^" {; M4 P+ _
  28.             *severities = NULL,
    6 w& m$ r( {2 u, @4 A6 P0 W) j
  29.             *statuses = NULL;
    , u3 C7 H, z" h2 S, R
  30.         char' u$ q1 n% K2 M
  31.             **messages;
    3 v* \0 \/ F3 R: o; e
  32. & U: q1 c& W6 ~$ j" [
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);
    * d# N$ Q- R  B6 C4 K6 W
  34.         if (n_errors > 0)+ R; `) j" z" [8 ~$ C, ~
  35.         {2 T' S+ }) J+ C2 f9 |) _
  36.             ECHO("\n%s\n", messages[n_errors-1]);7 `5 B! U# q# i8 }0 n
  37.             EMH_clear_errors();
    ' V  u9 x% w1 i; U" b4 V
  38.         }
    " |' b0 \' `/ o, \2 F# i% m
  39.         else9 b% E  s8 e  @: H5 ]
  40.         {0 l3 Y; n4 J( [8 a$ M# X$ F
  41.             char *error_message_string;
    - k' z# {0 t# k! q& w# n
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
    ! {9 A+ Z3 S5 K2 o0 ?9 b
  43.             ECHO("\n%s\n", error_message_string);
    ; f2 M" f; |  s4 v
  44.         }9 [7 x0 }5 P% {' S
  45. 0 R2 e$ ~! D% l" p* d1 _8 x
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    ' m0 N& O5 W3 `) n" }' z! a
  47.         ECHO("%s\n", call);
    * \2 O6 P3 ^0 ^1 G! G: ^& R
  48. 6 D" i' c5 K( E- \, f
  49.         if (exit_on_error)7 c( ^9 E/ g- q2 r" {6 ]9 d! T% F# L
  50.         {
    . S" L; D: M7 J8 ?: O# Z
  51.             ECHO("%s", "Exiting program!\n");7 d2 ?+ {$ [) Y5 @% i* t- R* B
  52.             exit (status);
    * w5 h3 X) P& t5 D
  53.         }
    ) N3 G) _, F% w5 H
  54.     }6 p/ `! [; S1 q/ Y
  55. ! u7 l3 G! s* A. _
  56.     return status;
    + `3 A/ z; i( z: _7 D
  57. }
    ; u6 l: n3 b+ \0 @: ^/ z

  58. ; q/ k& J3 q4 G0 x

  59. ( ~3 l6 B# o1 G& J/ u  v
  60. static void do_it(void)- B+ V7 q: L2 v4 L5 K( ^2 K
  61. {
    ' \; q5 }) h: _" K0 E- ^
  62.    // write your code here( u3 `% }/ [8 \! d. B* a7 O
  63.    
    4 Q, Z; T. F" }8 b
  64. }
    $ G+ e# J4 c/ C% f% |5 ]- n' X) J0 J

  65. . _  R! B2 N7 j# Q  Q0 D0 v% Y6 j1 R3 Q
  66. int ITK_user_main(int argc, char* argv[]): U4 n4 }4 k/ z5 O% m! j0 |
  67. {
    ! A  W2 G" D2 D
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    ) k5 G+ N- p" w+ I2 j8 j5 a
  69.          ITK_CALL(ITK_auto_login());
    ! P! u9 |( n5 {1 [4 \
  70.      ITK_CALL(ITK_set_journalling(TRUE));
    1 y5 N! e% L' \7 D5 D& x5 r% `2 g
  71. / j( T6 h& g* T; z- i1 Q2 `- `! v9 J
  72.                 do_it();
    : ~4 D( a: a7 \- g' [
  73. ! G, K$ f; K' k& t# ]
  74.      ITK_CALL(ITK_exit_module(FALSE));
    . O4 m$ i2 p8 `% X' K7 l, ]$ {! B
  75. 3 \( C* ^! u, ~- R! m8 I! ~
  76.     return ITK_ok;9 c2 b& w6 I. i. V
  77. }
    ' E" \) }7 g, [: t3 M$ i) x3 x8 G
复制代码

6 [6 c0 ~# [5 F0 u3 C& p2 V  x. M2 f- R' q& ]
上海点团信息科技有限公司,承接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

模版下载地址:# T+ J! T  V1 x: Q( T

( U+ M5 T' g7 K4 ^: N% o" ^: W3 zhttp://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二次开发专题模块培训报名开始啦

    我知道了