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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。" r' X9 j! n: t8 i. ^8 x* f
关于ITK开发中的模版,我制作了一个,大家可以在这里下载
" H% N/ v+ k/ `' y( p& W. h) E5 S( A8 H6 D1 E; M
此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!: O- ?$ D  h- n% ^

8 N$ W5 W, W9 V这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!2 E0 G  X' G! f# w1 ~4 r

! f2 N" g4 u1 `. @. S8 W/ o
! l3 J6 a# s  [. L
  1. #include <TCcore/aom.h>
    9 x5 Q' e) C7 u1 n# i
  2. #include <sa/user.h>0 M' a3 z, H) o0 o- p; \
  3. #include <sa/person.h>
    2 E3 `3 V4 M2 ]. k4 \
  4. #include <tc/emh.h>
    " a& Z4 i3 x  i6 s, G7 p
  5. #include <tc/tc.h>
    2 b9 @/ R: M9 g( Y2 ]
  6. #include <stdarg.h>  P( g$ b  g, Z% j+ r7 j4 Y  \

  7. ' p3 u1 H* E, y! t. w" f# D/ a
  8. static void ECHO(char *format, ...)! _* _& O1 M4 u$ P
  9. {7 Z% f) f0 O$ K2 P; P: ^0 G
  10.     char msg[1000];) X+ m5 K+ Z0 w% r9 A. L$ e
  11.     va_list args;+ |. S3 x/ Y7 h+ u
  12.     va_start(args, format);/ u# m, v! ^, S6 |# `
  13.     vsprintf(msg, format, args);
    ) p2 b9 j1 @7 R0 _
  14.     va_end(args);
    . C& f3 U7 Q% f) F
  15.     printf(msg);
    5 E& U6 o* p6 `
  16.     TC_write_syslog(msg);# j2 ?9 n9 o5 W6 b0 Z1 y
  17. }% F9 k! K; f, B
  18. " Q# i5 j4 R8 U8 P
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))
    ! `9 d5 j! j0 C7 Z8 M( R
  20. - s9 H8 E5 q+ [- G
  21. static int report_error(char *file, int line, char *call, int status,1 ^3 E* z: ^2 @! w% Q# O
  22.     logical exit_on_error)% ], {) _: E/ }  V& a
  23. {1 Y1 O- H/ [4 A! u1 E' v- |) U
  24.     if (status != ITK_ok)' H: V# e+ O; n( Y" k1 `$ u
  25.     {& R& k2 @# f6 B- V' l
  26.         int
    , F" t- c3 N! G, c
  27.             n_errors = 0,
    5 b3 N- D: c( T
  28.             *severities = NULL,/ ^, u3 w6 F. O- d# l6 i7 p: `
  29.             *statuses = NULL;
    . C  s+ Z2 L1 n$ ^  c9 g1 w
  30.         char
    * B: t; t9 L$ F/ o% ^( Y& n
  31.             **messages;
      ~0 R( r6 c# e4 ?
  32. # O, S' B+ d1 ~
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);. Q6 H8 M2 b4 N- c1 D$ P. g' N
  34.         if (n_errors > 0)
    : d+ F/ Y5 K* G: A
  35.         {9 \1 D# ]" z: Q6 a5 u$ i
  36.             ECHO("\n%s\n", messages[n_errors-1]);  v* H; Z7 A# i2 P
  37.             EMH_clear_errors();
    , t7 J* ?: N0 L: t6 T
  38.         }4 [8 |3 T' A, L* A# d7 Q/ ?6 p
  39.         else/ k1 I) U2 e1 e& k5 B: t
  40.         {
    & R+ k8 g( P$ z+ J# O. E5 q
  41.             char *error_message_string;
    9 D! `4 U! |# \/ K0 a! }: U; J
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);. N+ U: \% ?0 s# ~+ y7 G* P5 y
  43.             ECHO("\n%s\n", error_message_string);
    8 C$ r4 c  s' {
  44.         }
    ( a. h) q( L! [. {: P" D  K
  45. 4 r1 j3 o. P+ _
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    4 i* O# H2 ]: b: h3 h9 n
  47.         ECHO("%s\n", call);
    + t1 c- J' F* R9 K+ c+ }
  48. / K! N9 P( t/ ]1 D
  49.         if (exit_on_error)
    6 G6 ~- T# U" `% E' {! n6 p" n1 f
  50.         {7 i8 B, x; C6 U* a0 c8 x( _0 C1 }
  51.             ECHO("%s", "Exiting program!\n");  }! s% I8 C4 g5 ~
  52.             exit (status);
    ' f% J4 m1 K" a4 x
  53.         }! O8 i+ y/ k+ W$ F/ I  |. H
  54.     }
    " \1 I+ L, [- y7 a

  55. # ?0 |5 y) A: U$ T
  56.     return status;( _4 \" G6 e* o/ o' x. c0 @
  57. }  A0 h9 f  B0 Y3 P6 ?1 ^

  58. ; @) z$ s# L% O' o- Z4 e

  59. 4 z$ z. E! V8 c( ~: z% z
  60. static void do_it(void)
    8 R# q9 N4 u  L7 p) A# d
  61. {
    8 z, h- P% u8 `* l$ l2 T4 P
  62.    // write your code here
    . S/ e& p% g: }- r' Y
  63.    ; i: B: d# Q2 k* [' V( l4 u
  64. }
    % o5 u/ g/ i/ L* d
  65.   J$ V7 F- ~6 g3 R* Y5 }* {  C* M
  66. int ITK_user_main(int argc, char* argv[])
    + z$ n, e! c0 \
  67. {. O4 k1 U. C3 a0 B
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    $ i9 W# P3 ]: E. S! l  N2 \
  69.          ITK_CALL(ITK_auto_login());
    " s7 b0 @% F0 c# H+ R, g( [* X( U
  70.      ITK_CALL(ITK_set_journalling(TRUE));- K$ ~3 Q2 J4 a% \

  71. - I! T$ D; V7 w9 W9 R# \
  72.                 do_it();
    " f/ G  A4 D) P

  73. ; s0 \5 C/ z3 x
  74.      ITK_CALL(ITK_exit_module(FALSE));
    & P" a& Z" c5 X3 s% L

  75. ! h% v% Y! ^& R9 ]
  76.     return ITK_ok;
    / L% Y1 t8 D' ]
  77. }
      R! |! y# {! e
复制代码

/ p  Z( l6 S+ K# H% w
4 [% W- I- m# a2 B: T9 h
上海点团信息科技有限公司,承接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

模版下载地址:; z( }6 x& v) v6 |% {6 T- x' N
4 K" u2 l9 v1 u- L% `/ w9 R6 f1 s
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二次开发专题模块培训报名开始啦

    我知道了