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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
1 y$ o& N/ ~1 }* M( U4 @2 {关于ITK开发中的模版,我制作了一个,大家可以在这里下载- T1 d5 |2 k( @: t

$ [  Z) r, u3 f/ p5 h此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!2 o, X; }! {/ p) l8 g
* ]' `' k6 O! F# w# x6 w
这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!. t4 o5 |2 M! G" [

* [# V9 S; j* g' {0 Q. E% A
% {- p" g* U% z+ I; K  z9 B
  1. #include <TCcore/aom.h>' `& {! C, i+ T
  2. #include <sa/user.h>/ s5 j' X  N- c0 M
  3. #include <sa/person.h>" q5 v  m& Z5 `( a8 r" A0 f
  4. #include <tc/emh.h># y3 `; [8 ^( M
  5. #include <tc/tc.h>
    / [6 o5 u. f3 y0 C" i3 e
  6. #include <stdarg.h>8 Q6 J' F& l. l% R8 o

  7. ( a# C4 m: N) R- V
  8. static void ECHO(char *format, ...)) V. K9 A$ W9 X7 a5 E: n
  9. {
    2 v9 |1 R# j6 P8 S6 C
  10.     char msg[1000];
    0 V! x, B/ o! G7 o# ^
  11.     va_list args;
    ( @9 T7 s$ M5 P' e( y5 v* i
  12.     va_start(args, format);, d; h0 e/ i: L' U9 Y
  13.     vsprintf(msg, format, args);
    1 B3 l2 l% Q. \% t
  14.     va_end(args);
    ( ]9 a" c& u+ D( I* ^1 {* |5 I' i3 U- M
  15.     printf(msg);
    1 v4 d1 v" o$ s3 n7 ?0 t
  16.     TC_write_syslog(msg);, M8 G$ a: x! q% G# d
  17. }
    3 f3 t1 @, Z5 L

  18. ) V5 k. `( i0 u0 l1 `+ o6 q9 {
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    ' `8 S) o6 S+ N/ W# Z

  20. ' k: F# W* w; h" Y( F0 o. g
  21. static int report_error(char *file, int line, char *call, int status,
    $ e7 D! W( n! p6 r# c0 B
  22.     logical exit_on_error). V! \2 a9 x3 F! V$ B! B  j
  23. {
    & }1 g- h: Y1 q6 f! y
  24.     if (status != ITK_ok)
    # \! C5 Z8 O+ H) |7 ]
  25.     {* \1 c, h' o  p, [" I
  26.         int5 G6 L5 E/ Z8 z- A" U6 V& o9 p
  27.             n_errors = 0,% J7 E2 ?6 C: a
  28.             *severities = NULL,
    9 c6 ]' g" n( X5 ]
  29.             *statuses = NULL;% J( r4 H, E, F1 ^9 a; j8 Y
  30.         char
    - l& M1 U2 Z; a
  31.             **messages;6 |4 g( q0 D; {) M. l! D$ k1 [; N4 X

  32. 9 R# _; p! ^* Q. }
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);1 o" y# n8 C* ], V# e$ V$ ?8 B
  34.         if (n_errors > 0)( A) U6 D" u3 m( ]; P
  35.         {( _9 O' d. M  Y# c% @( v
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    2 A# M- ?9 l& m# {9 b  F* J# M
  37.             EMH_clear_errors();! k( S2 w9 R' m" O2 r' s# M" i
  38.         }
    ' J2 s6 Q, N' o, T
  39.         else
    2 c& z0 p' ]. ^% Z* \# _8 T
  40.         {
    # T% t8 G9 c! i7 g: S% T9 ^' B- S
  41.             char *error_message_string;6 c- E0 o( _& N, e$ {
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);9 h: {  {6 t& A. n0 P
  43.             ECHO("\n%s\n", error_message_string);& h4 w: ?# ?- |
  44.         }3 V/ X: ~+ \: T8 ^/ [- c# j

  45. ' \5 X; c  m( z/ a, l
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    4 O6 s, z5 I! o2 ~! }. B- Y
  47.         ECHO("%s\n", call);; |# s# [: J# C+ Z  E

  48. # P9 {- g  ]5 B2 T2 n0 O' [  h
  49.         if (exit_on_error). w+ x2 n  @8 ]& l0 z
  50.         {* L: F  s- H6 q0 I
  51.             ECHO("%s", "Exiting program!\n");
    & L+ u& P; e# O4 u" K
  52.             exit (status);0 m3 Z- i- [: \+ _
  53.         }
    , |  x0 }; |& s5 c. V$ v0 X0 q
  54.     }
    6 _% ~% w/ _' O( P6 L3 R

  55. 3 q9 q5 |' F" z( D+ T
  56.     return status;4 b, D) D' j% T1 V0 |$ P
  57. }; s# _: @4 w, i, v. ~1 x  D( ~

  58. 0 N' m6 d; v, K/ m" W$ X

  59. 4 s) q7 a6 a5 O6 o6 B) D9 `
  60. static void do_it(void)! J8 f& f+ K- R. g& _- G
  61. {
    8 j9 s) Q0 m! u, C+ w
  62.    // write your code here
    + h$ P+ m% n+ Y
  63.    % y) E8 I) w  R. R% X
  64. }9 H2 w- D/ W, b  H
  65. 2 y/ Q! x% Q8 u
  66. int ITK_user_main(int argc, char* argv[])
    / N2 B7 u* T6 I6 |
  67. {
    1 ^. P9 B6 a% Q4 ]5 y: @7 d
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));& R1 E( W( N' s3 y5 x, G
  69.          ITK_CALL(ITK_auto_login());
    " m* S3 f. x) b. g
  70.      ITK_CALL(ITK_set_journalling(TRUE));- k. l. Q1 |1 a
  71. 1 ?0 E* Q8 @) g6 k) f3 U
  72.                 do_it();! e+ D9 `& D" c. A) y

  73. : {/ x) g! ^$ L0 o2 [' S
  74.      ITK_CALL(ITK_exit_module(FALSE));
    - v  J# f8 Y& D  [  _3 P! R& O
  75. 8 \* Q3 D; t  g' B0 K
  76.     return ITK_ok;7 v+ b/ y' Y3 H! x1 a2 V. D  F
  77. }
    0 V1 E+ Z: D- i. ?, Y
复制代码

: L: P. g# ^9 s2 r( x! r/ |. Q9 a# m* C. O7 j( |$ j
上海点团信息科技有限公司,承接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

模版下载地址:
! Z9 k0 c/ H4 M0 m6 V+ E5 L* t' v: |5 }
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二次开发专题模块培训报名开始啦

    我知道了