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

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。
: D: Y% W7 g  S7 Q! q关于ITK开发中的模版,我制作了一个,大家可以在这里下载5 z& H" f% R6 w2 X0 |7 Q% s' ?  s

( w- |$ a' ~4 _2 t0 p此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
, x- h2 X+ D2 Y7 B- l0 D- Y
3 z! N' }' k3 ]; q9 k这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!
  g9 M$ s5 H* y! [$ q  B( q$ l5 }+ e; M/ j- V
0 t( ^1 K& S+ r: }
  1. #include <TCcore/aom.h>
    9 r' D) c2 U2 |, S, {+ k( {
  2. #include <sa/user.h>
    # C* e2 E. `3 K, k+ `7 C* h3 \: \
  3. #include <sa/person.h>
    & v9 z- ^0 N0 z( g9 |
  4. #include <tc/emh.h>8 ^* e5 F0 U! C+ g0 L  Z$ {! A) O
  5. #include <tc/tc.h>6 X" K) a; w) _. N  @: \, ^8 w; r, y
  6. #include <stdarg.h>0 }( f6 W3 J) l3 y% E7 E

  7. . z( Q; c* N: J+ b0 R. Z9 C
  8. static void ECHO(char *format, ...)$ M6 K! ~2 C0 |7 p5 a" q" t
  9. {
    0 |$ m- ~. ~2 N
  10.     char msg[1000];
    ! N' D) v% i; H9 j4 O8 J' U4 ?
  11.     va_list args;
    ( G* Y1 o6 z' v3 l, `0 N
  12.     va_start(args, format);
    6 \3 e) G1 ^: f+ g9 p  s' O6 P
  13.     vsprintf(msg, format, args);
    5 P2 C1 ?7 p; l* b5 c
  14.     va_end(args);
    1 t& R  r" {4 k2 d* }. W' v) o
  15.     printf(msg);
    - a- t; l! X4 t9 Z) Y/ N
  16.     TC_write_syslog(msg);2 b7 X; {& Q, w! P. d  [
  17. }: z1 l" o' w8 l( U3 `" R

  18. 8 q9 o! F# E; C: C8 Q. e
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE))7 l+ H2 @8 f/ \/ @) z+ y0 Y0 b% s

  20. " S9 v" {' H  e) t
  21. static int report_error(char *file, int line, char *call, int status,
    * q' ]# L: G. H/ {
  22.     logical exit_on_error)
    / ~7 |2 O& p6 [
  23. {
    ' `1 p8 t, M; ~8 h' ~' U( ^
  24.     if (status != ITK_ok)1 p2 Q7 f' V1 a: ]) g! D
  25.     {
    ; ]4 @6 C% e/ t* U% D( `
  26.         int
    * O. I7 \4 d, J# p6 ?* N# V
  27.             n_errors = 0,8 T) }, F: F1 I8 _  L# ~$ u" t, h
  28.             *severities = NULL,
    - z7 e! Z0 @+ G& C& o- P
  29.             *statuses = NULL;
    " J; x9 t7 b5 {+ ^$ F5 x* H: Y( J# ?# A
  30.         char
    % j6 O% v: c% T! z- b. x" {
  31.             **messages;
    ) I: `7 V4 O! W) P; M, ?7 E8 I
  32. 5 N: m. Y8 u+ c* M, Z; C, F
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);7 o+ Q# O, e' q/ h8 y
  34.         if (n_errors > 0)
    + {$ w: ?5 N# T: S
  35.         {: e. q* [  F9 z0 i7 @, u
  36.             ECHO("\n%s\n", messages[n_errors-1]);' e' D+ p) \3 T( {6 v/ d
  37.             EMH_clear_errors();
    . X, f; m5 A* [& b; o! B
  38.         }
    + K# u4 _% c  g, T: k2 t
  39.         else
    # B2 ?2 [. D& s: o
  40.         {6 |" ?* h/ i; s3 e( }6 l
  41.             char *error_message_string;
    ' ^% X) e, q( U
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);2 k9 ~, L# h6 J! q" H& m
  43.             ECHO("\n%s\n", error_message_string);( N* [3 k( T8 W+ v7 A8 E" J
  44.         }0 r* ?5 ^7 k+ C- @0 l
  45. , j- p( _8 ?* a8 R5 f5 T: D+ _
  46.         ECHO("error %d at line %d in %s\n", status, line, file);
    ) A* ~0 ]5 a  h
  47.         ECHO("%s\n", call);) A. p8 q( @9 V
  48. : R/ R8 r- f% w+ m
  49.         if (exit_on_error)
    $ i4 M3 b& g# h' O+ _
  50.         {
      e  O! N5 q2 V* D8 X( V  ?7 \
  51.             ECHO("%s", "Exiting program!\n");
    ; Q; V6 ]% x. M% O( V* i; s+ g& h
  52.             exit (status);
    5 ^" a# Z6 {9 o+ C+ d1 p
  53.         }9 U# u" j7 r1 v
  54.     }
    : u! ]# a6 V5 G  b! o

  55. & q7 W7 [! l( ^4 Z/ E# D% S
  56.     return status;$ `8 X; W# d' s6 t
  57. }
    3 ^5 M6 z4 Q! k! M# n/ _; c
  58. 1 Z9 _3 U: g& t8 H: B

  59. ) Z3 o3 O/ f- A
  60. static void do_it(void)
    6 r  R8 x. K' Y" `7 V+ h
  61. {
    ! t: z. s) Q: F! ^, t5 R
  62.    // write your code here
    6 E) n4 m3 T/ [# ~% W
  63.    
    % c9 |% h/ ]' m: V2 v5 O1 u% J' Z- q/ O
  64. }
    0 Y/ `! D* z8 v# g6 o2 y" n
  65. $ M+ F/ \/ n4 s  W
  66. int ITK_user_main(int argc, char* argv[])- l6 c" U: x$ ]; K) Q7 T/ n- M3 v
  67. {
    ( F0 i  Y  T% h" G7 Y1 ~- ?0 X" X
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    * [8 H1 \8 D  ?! d7 ?
  69.          ITK_CALL(ITK_auto_login());. C; P5 @* q, X
  70.      ITK_CALL(ITK_set_journalling(TRUE));# L$ V/ O/ d9 s2 \+ j

  71. : T; X1 h) {5 j
  72.                 do_it();7 f, J7 v! E; r

  73. ) q$ `: B! g& C1 G: z
  74.      ITK_CALL(ITK_exit_module(FALSE));  f3 S1 B7 {" Y

  75. : d0 H" i" t( K
  76.     return ITK_ok;
    & ~0 i- E; F; K& ?' k
  77. }7 F0 x+ f0 q* U, i9 v
复制代码
2 b, p4 U* O: v) [2 S; R
0 p. T, }: ?" V& u& [! x
上海点团信息科技有限公司,承接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

模版下载地址:
2 o/ h' B$ U& p
8 B/ c0 J% `6 f8 E9 g- A3 R. Vhttp://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二次开发专题模块培训报名开始啦

    我知道了