PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

从NX二次开发转化层teamcenter ITK二次开发的模版分享

[复制链接]

2015-1-21 14:46:15 6054 1

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

admin 楼主

2015-1-21 14:42:57

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

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

x
NX二次开发中,默认的开发模版,使得开发NX非常方便,实际上主要是在Visual Studio 的环境下,加入了库的路径,以及一些预处理相关的设置。8 j. \: W) J4 p1 a: [! {' Q
关于ITK开发中的模版,我制作了一个,大家可以在这里下载! T5 J7 N; u) }/ R& D

2 E9 ?3 y  K. P" @1 C% B此处是给一个报告ITK函数执行错误的函数,方便使用,大家可以替换上面下载的模版template.c里面的代码,直接使用这个。当每次返回的status进行错误获取的时候,直接可以ITK_CALL去捕获错误。这点和我们在ufun中使用 UF_CALL类似!
# ]8 W7 t2 o) P9 k5 Z% G  {
8 u2 e6 U# g' D8 g% _0 D这种方法省去了大量的调用EMH_ask_errors(&n_errors, &severities, &statuses, &messages)的重复代码!!! r+ F' R$ N. a
( x+ U( k: b7 i* ~- o. c6 a

7 L# M4 {- G% t
  1. #include <TCcore/aom.h>
    4 c, @; O: G8 Q/ U2 |/ |3 g5 h
  2. #include <sa/user.h>5 \2 R6 `$ ?% l3 c; @
  3. #include <sa/person.h>/ C# U7 }1 O9 }4 l
  4. #include <tc/emh.h>
    7 I0 k8 ~7 z7 h, ]) ~
  5. #include <tc/tc.h>8 H% C+ L5 B: r+ n- o3 }
  6. #include <stdarg.h>
    & L- I4 [9 s1 f# M' [
  7. 1 v  f. o  h4 c1 S( I* C
  8. static void ECHO(char *format, ...)- x; N% K3 y! S
  9. {& j. z" c3 J0 w+ T+ e' @
  10.     char msg[1000];" O+ R( a( P! ]( x; y0 s9 V; @
  11.     va_list args;$ F5 i) l1 U6 @  @* m$ k, A, s
  12.     va_start(args, format);
    9 m+ E/ i# F; P
  13.     vsprintf(msg, format, args);+ P) I% [4 D; v
  14.     va_end(args);1 P9 E8 F  y5 W3 D0 U3 _6 m
  15.     printf(msg);, u' V) n% q% N$ A5 Y( M) o' g
  16.     TC_write_syslog(msg);* S- i2 K* \' U
  17. }+ Z8 n0 t- j! y/ M
  18. # W# `! Z5 K1 @- c7 D0 Q5 ?
  19. #define  ITK_CALL(X) (report_error( __FILE__, __LINE__, #X, X, FALSE)): l8 z8 T: ^2 j# J+ g4 g
  20. / u- k' C* B) [/ m
  21. static int report_error(char *file, int line, char *call, int status,1 N: a0 Y' \- b
  22.     logical exit_on_error)
    + h0 c1 A0 s; O& b) M8 V
  23. {( t5 ]$ a5 N" l5 h; g  T) o& Y
  24.     if (status != ITK_ok)
    * t. n/ [% Y  a. m# q" s1 |8 O
  25.     {8 r9 u) F( ]; r: T  c/ {2 P
  26.         int6 g9 q, u" i) c
  27.             n_errors = 0,
    $ G# r2 Y3 _6 u3 Q( F& m
  28.             *severities = NULL,
    % W- C: a# ?) C% G( W0 T9 n
  29.             *statuses = NULL;
    0 ?; i- w+ T1 L% j5 G
  30.         char! d; @: _0 Z, n& w' }! w: S5 m: K
  31.             **messages;
    0 n1 A- B# G, V5 H/ L/ i1 e

  32. ' u8 c: S3 Z7 P
  33.         EMH_ask_errors(&n_errors, &severities, &statuses, &messages);% @8 S! K! q  }7 ?
  34.         if (n_errors > 0)
    4 w. \9 I' a0 S+ z% o) X
  35.         {
    0 n7 ?2 J, N: S0 |7 H6 h. v0 v2 a
  36.             ECHO("\n%s\n", messages[n_errors-1]);
    # R! E! E9 Q; \
  37.             EMH_clear_errors();8 s$ G' P+ k* b- a' [
  38.         }
    : Y8 J  z! w9 C; i6 y1 F: ~2 Y. S
  39.         else, _" x7 o( T9 p- J0 |+ l
  40.         {
    ) B: S: e6 W3 R2 G" @6 `8 N- C) H
  41.             char *error_message_string;
    . {2 C+ f9 j7 a. |0 K3 C  Z3 U
  42.             EMH_get_error_string (NULLTAG, status, &error_message_string);
    7 e: u0 o. D3 g. T; N% M
  43.             ECHO("\n%s\n", error_message_string);
    ( M  y) L6 c$ ~7 u; b+ Z+ U
  44.         }
    2 w2 e: u2 A" D5 E
  45. ; `3 U0 f" K- Y9 D/ o7 q# v
  46.         ECHO("error %d at line %d in %s\n", status, line, file);$ `/ k# i- M$ I- X- T- G% l
  47.         ECHO("%s\n", call);* v4 V3 e( ^2 N5 J( `3 n( ]

  48. 7 l7 C: Y0 `! q* O+ B- Y
  49.         if (exit_on_error)  d. w6 p# f0 S5 J' d
  50.         {- }7 I- S- x: [5 R
  51.             ECHO("%s", "Exiting program!\n");& X/ U9 }. x$ d
  52.             exit (status);
    * k) z6 V9 I! c. k8 b
  53.         }
    $ B. p6 a- }: x  w  z/ v
  54.     }
    ; K  Q' X, Q2 P* N: W* ]: S/ c

  55. $ o5 R1 R: j# q0 O( `6 l
  56.     return status;
    4 f6 A9 j- L+ d! z' h# X
  57. }
    ! y) M6 J  `, G: V" k+ p& Z5 B7 g

  58. # a) d  n' p6 }/ K
  59. ; q7 ], S8 n, e  B: K2 o9 d  X3 p
  60. static void do_it(void)
    ( Y  E* @" U# m7 z! k' d. |
  61. {
    8 v8 e) V" A# N7 E; `* X
  62.    // write your code here. _8 X- P2 g5 s# M# X# d! u' k
  63.    ) m  s" x2 k. d- l. [3 y
  64. }
    6 Z2 W5 |5 D: E7 P+ ?, J& T
  65. & V; W) [) ^9 T; [6 Y
  66. int ITK_user_main(int argc, char* argv[])
    + [& x; j/ y' ]& K
  67. {
    7 q4 [2 f; A- V8 O$ F0 P
  68.      ITK_CALL(ITK_initialize_text_services(ITK_BATCH_TEXT_MODE));
    - `$ g+ v3 k4 U2 @0 v
  69.          ITK_CALL(ITK_auto_login());
    % B$ V4 |) f) `4 m
  70.      ITK_CALL(ITK_set_journalling(TRUE));% Q& @) k# m% c& n& B( p
  71. ( j. l4 \5 K5 L" O: f$ h, q4 h
  72.                 do_it();; g; Q5 ]& _. k  S- L% I
  73. ! c5 p5 k" ^0 \4 V& a( y! b( c
  74.      ITK_CALL(ITK_exit_module(FALSE));5 ^2 j; x: W6 \: U6 I

  75. ; j8 G0 S. ?" r: K/ [
  76.     return ITK_ok;
    " y+ y' z9 F! k, q
  77. }
    2 D0 {0 k- i: Y) m
复制代码

) T( E. ~. U1 R6 p4 i, L2 |; O0 t& `) R" W( J* y, F' S
上海点团信息科技有限公司,承接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

模版下载地址:* }8 O2 {2 |, q" Z: Q4 r! K
/ P( d+ j5 V' ^: }4 m' L" @
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二次开发专题模块培训报名开始啦

    我知道了