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 二次开发中,错误异常的处理详细介绍

  [复制链接]

2014-9-28 22:06:32 7162 2

admin 发表于 2013-11-8 13:35:27 |阅读模式

admin 楼主

2013-11-8 13:35:27

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

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

x
关于NX 二次开发中,错误异常的处理详细介绍* ]% ~$ ^& V+ p, o

3 i: v$ w  `0 h错误处理5 e: Y& D( M1 X+ O6 Y( D& W
1 NXOpen API设计和捕获阻止程序成功执行的错误,这些错误包括:. c" Y# o6 l/ r/ Z) P2 O" }; R2 N$ K* \
(1)无效的参数输入
" u% d1 a, D9 t3 z% K, X(2)企图创建无效的几何模型
5 j. @3 Z9 Q' A0 P# J! x8 L3 V(3)不可预料的调用顺序; f' x0 W7 s. e3 F; F
(4)得不到的系统资源,比如内存或者文件访问等' j) m+ j: k+ }* q# p
  所有输出均为最新。" F5 _$ n# z+ e$ T
LINK : fatal error LNK1168: 无法打开 C:\NXdev\Code\confirmcylinder\x64\DebUG\/confirmcylinder.dll 进行写入
5 I+ l7 z6 D+ L$ N
8 y: I* ^) B. e. Q( \! n3 n4 w2 错误侦查
- J& k5 j2 @, Q通常返回错误状态或者异常。
$ M6 d+ ]. m9 X( a' {对于ufun,通常返回数字,如果是非0的话,就是程序出错,对每个return都要进行判断非常重要;% U  y* \$ D, [3 j: u% u% m! G
对于NX Open 通过 Try/CaTCh的架构进行处理
# C' f7 l/ `' h& i2 }3 错误报告! k; b1 j: x  L+ q, a3 R! U' n
(1)获取错误信息: t. B; x  ~9 _
错误信息,获取一个错误码,并有一段可读的错误消息
7 Z& d/ |! F8 D, ?+ u1 ? ufun 通过 UF_get_fail_message进行获取,如果需要翻译到本地语言,可以通过UF_TEXT_translate_string处理1 `. J7 B9 S! Q
NXOpen 通过NXExcepion处理5 ?) ~$ N/ D7 J/ E5 G( w. H

) B( y' K, |" Z" Y* J1 z6 }3 I! ?, K (2)建立报告
% z: b# h; V( Y: D. P 需要增加信息去报告什么操作导致报错,以及如何处理
1 D* n/ g4 V; x 1 ~7 M- u/ ]1 G9 |
(3)报告错误$ |% r8 C  t/ {* V, O* L( l( p) O/ K
报告信息ok后,就需要处理错误了,对于致命的错误,需要给用户一个选项进行退出程序,而不是使得整个程序崩溃或者part文件损坏。
3 z1 x/ G5 `; s& |( a 如果是可以接受的错误,需要将错误日志记录在NX日志log里面,或者设计一个对话框来处理错误日志。* b3 b) _+ Y* n) [2 ]

* Z# l2 y4 G" {1 m, U! K (4)错误修复
9 f! N" y/ |! p2 ]5 { 是一种特殊的错误处理方式,比如倒角时候,半径输入过大,这个时候通过合理的提示,用户还可以返回到原始的对话框,重新输入半径。
& w9 W) a$ x3 M1 ^$ i4 s, T NXOpen提供的错误修复包括:
5 i7 p2 k2 q, Q, j' _- Z a.方法定义给于异常处理,让程序员来诊断错误" h5 v6 x7 M5 ?; A' @
b.当方法错误的时候,可以返回NX回话和part到一个有效的状态8 h& A9 m7 V* e' b# ^8 ~% p( J
c.UDO进行处理,去返回曾经的状态
& l+ ]( S; V$ e7 \# t
6 W* k3 S; g/ ?( L1 k

  1. , F# ^! {0 N7 L1 K+ [2 C8 z
  2. // ufun 的方法- h. ^/ }/ r# R; l

  3. 8 A/ B6 Q: K$ {+ ~) B6 m& ~5 x
  4. int status = UF_MODL_create_block1( UF_NULLSIGN, _8 I4 u, x: [. x% \( V% m0 h
  5. corner_pts[i], edge_lens, &features[i]);" U6 e+ i) d, v, E/ c  k: y
  6. //check for return value
    " g8 j1 u1 O( F9 e" j
  7. if (status != 0)
    7 |" X; O% m1 ?
  8. {$ t, ^+ A$ v# X$ v  x# \5 \# o6 C
  9. //get the human readable error message
    3 v- O" M! c. a
  10. UF_get_fail_message(status, ugErrorText);# f- H% a, k% a* C
  11. //report error to the user
    8 o+ o$ V: i" \4 w: [. O! q
  12. UF_UI_message_dialog("Dialog", UF_UI_MESSAGE_ERROR, _
    . G4 W4 o* P# {
  13. &ugErrorText, 1, ..... );& G. E: p; @6 Z4 I
  14. //report error to syslog6 c" s9 Q. j5 ~, j8 p
  15. UF_print_syslog("Failed to create block\n", false);
    1 S3 }5 D! r5 p
  16. return 1;( d( l5 Q2 G7 I- @! t
  17. }. }7 X! }2 z! f" R9 ^
  18. status = UF_MODL_ask_feat_body(features[i], &blocks[i]);; ~3 O& n8 L0 Y; p1 I* f. \( j5 d( t0 F
  19. if (status != 0)5 A& v+ |' m1 L. a
  20. {
    6 M' |0 ]( Q, g8 o+ f
  21. UF_print_syslog("Failed to get body from block\n", _
    6 G/ [8 u1 b- a( y& ~
  22. false);  Z1 M, |7 P" |: b$ }% Z, U/ z
  23. return;
    ' I7 }  v2 w- X* _
  24. }
    9 r5 a1 L* ]) b1 J' V/ G: ^
  25. 1 }# P% g3 n- {9 |7 w
  26. //NXOpen 的方法,以下是java代码2 e+ U" t# o- I& S

  27. " |5 `4 q! Y( k+ G: _1 |
  28. try9 x1 {/ `) A+ Q+ r% O/ q
  29. {
      r2 f1 j" N$ `* M# x& |2 P& W
  30. Session theSession =(Session)SessionFactory.get("Session");, y9 L1 G* q, o! G' @
  31. Part workPart = theSession.parts().work();  K/ Q7 L: K, v
  32. nxopen.features.Feature nullFeatures_Feature = null;
    . l( ]' N/ A3 i" T" w4 P
  33. nxopen.features.BlockFeatureBuilder blockFeatureBuilder1;" K6 y7 y6 B% f
  34. blockFeatureBuilder1 = workPart.features(). _; m0 b# k) d4 W+ ]# @6 M
  35. createBlockFeatureBuilder(nullFeatures_Feature);
    , s. h, y; C2 g. r3 D+ N
  36. }
    2 M, b5 f6 J; t
  37. catch (Exception e)
    ; b( s! \& C; B& j- b  t" l; l4 F
  38. {
    6 Q$ h' @3 y9 @
  39. //report error to syslog, Message property on _
    ! ^& ^6 q+ x0 S2 H: U: L
  40. exception object already has human
    9 |' O0 I; U6 r+ K
  41. //readable message
    2 R5 v' G- c6 ^, h* Z/ K1 |
  42. theSession.Logfile().WriteLine("Failed to create _& w8 n' b4 X2 t" j: ^( n7 l0 K1 _
  43. block", + e.getMessage());* A4 P/ a# w6 j! B6 M8 H3 e
  44. }
复制代码
# }. H9 P+ K6 x! p  D# \0 r
+ @6 P" r( x; u9 e5 `5 ^1 b/ ^  n

/ `! d5 l8 t9 X2 m. h7 N
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复2

叶修 发表于 2014-9-28 22:06:32

叶修 板凳

2014-9-28 22:06:32

学习了,谢谢高手
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了