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 7198 2

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

admin 楼主

2013-11-8 13:35:27

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

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

x
关于NX 二次开发中,错误异常的处理详细介绍5 f; r: u5 P" }; \# [
: P- x* A9 q) E+ A  [# x
错误处理1 r7 Y0 q/ t2 c4 G
1 NXOpen API设计和捕获阻止程序成功执行的错误,这些错误包括:3 m' ~4 I; n+ }
(1)无效的参数输入
5 n) o  I4 i) c7 e* O(2)企图创建无效的几何模型0 n( B( O: f* V( E% D
(3)不可预料的调用顺序
% o2 k8 K# L7 C. Q3 i+ I: Y(4)得不到的系统资源,比如内存或者文件访问等) @( q2 p& T9 Q' g! `' K2 v
  所有输出均为最新。
" ]2 t3 ^4 `, t; U! C' w) v7 C+ lLINK : fatal error LNK1168: 无法打开 C:\NXdev\Code\confirmcylinder\x64\DebUG\/confirmcylinder.dll 进行写入  `8 Z3 \8 X7 L$ l; O% H

! T6 m  {1 K- H. R2 错误侦查% o% c6 q6 i/ K: O
通常返回错误状态或者异常。- i; Z1 D4 J. G6 }; Z
对于ufun,通常返回数字,如果是非0的话,就是程序出错,对每个return都要进行判断非常重要;
6 Y% e5 L% l/ o' \7 Q* M* ?对于NX Open 通过 Try/CaTCh的架构进行处理" p( c4 [  Z6 P0 b0 P
3 错误报告
/ C' p4 J1 ]' C& |( D2 U(1)获取错误信息
/ e3 [# q$ y) }0 z错误信息,获取一个错误码,并有一段可读的错误消息$ \7 F+ n$ ^( ?' C; K4 k
ufun 通过 UF_get_fail_message进行获取,如果需要翻译到本地语言,可以通过UF_TEXT_translate_string处理( r0 H+ g2 \4 J; `6 f$ [1 T
NXOpen 通过NXExcepion处理
* R2 h6 K) i& O
, E$ c0 I9 u( x+ k (2)建立报告
7 i# S" O: R9 [" w, s, N7 v 需要增加信息去报告什么操作导致报错,以及如何处理
/ Z6 Y) o( I* y , q2 K* `; `1 K- v& y' \
(3)报告错误. G: T2 h$ R* _
报告信息ok后,就需要处理错误了,对于致命的错误,需要给用户一个选项进行退出程序,而不是使得整个程序崩溃或者part文件损坏。
7 W- V- o$ [1 M( P- Q. ^. K 如果是可以接受的错误,需要将错误日志记录在NX日志log里面,或者设计一个对话框来处理错误日志。
5 h) ?" c1 @) [" ~+ m2 M$ s) ~
+ J- G# k4 _# o! j3 ~8 | (4)错误修复' t8 t  `& X$ U. ?. d3 _
是一种特殊的错误处理方式,比如倒角时候,半径输入过大,这个时候通过合理的提示,用户还可以返回到原始的对话框,重新输入半径。
) p6 Q( ~% x* E  c NXOpen提供的错误修复包括:
+ n; `) d0 l8 l5 Q a.方法定义给于异常处理,让程序员来诊断错误
; Y% P1 l: W/ _3 K% }6 f b.当方法错误的时候,可以返回NX回话和part到一个有效的状态
/ n: {2 N/ z" O8 r+ l/ Z% G! f+ W c.UDO进行处理,去返回曾经的状态0 q2 X9 j4 O# Y" |
5 m! u8 h. K5 O- i) A+ N- h8 s
  1. & B+ Z: T; Y1 A% e
  2. // ufun 的方法" D1 h5 |7 q& y! M4 h

  3. " x6 C+ K2 P$ d( Z9 B+ ~9 W
  4. int status = UF_MODL_create_block1( UF_NULLSIGN, _8 [' m. K0 c2 s! f
  5. corner_pts[i], edge_lens, &features[i]);0 s: w' U8 |; [( U, _! C$ A
  6. //check for return value9 f% q, [, \4 s
  7. if (status != 0)# {( X2 Q: e& d- E
  8. {8 q4 N2 g: Z5 h* `2 c+ {) L' [- i
  9. //get the human readable error message" B! J8 W; M% r
  10. UF_get_fail_message(status, ugErrorText);- F! B6 b2 u; d# ?
  11. //report error to the user
    * Z: P2 ^. O3 w  h4 R5 n) q
  12. UF_UI_message_dialog("Dialog", UF_UI_MESSAGE_ERROR, _
    3 Y: t$ z, _) ?$ _4 x
  13. &ugErrorText, 1, ..... );: q5 w$ i# z6 o2 t0 F6 e6 W* J) {
  14. //report error to syslog; }' t0 G$ M2 ]6 X& e
  15. UF_print_syslog("Failed to create block\n", false);3 k8 A9 G' Y( h
  16. return 1;
    ! I* _' q% [" z
  17. }1 B  o/ Z0 Y. u! S1 k" g% z
  18. status = UF_MODL_ask_feat_body(features[i], &blocks[i]);
    9 @  n" v, {/ E& o% w. h' A
  19. if (status != 0)* D/ C( W2 t! m" y3 W
  20. {
    7 B& j$ ^0 `& o& o
  21. UF_print_syslog("Failed to get body from block\n", _6 F. A4 X$ S! V$ j# v
  22. false);
    ( g1 h1 W. i( o: ~* [
  23. return;( e  p/ r0 b" c) B+ M
  24. }
    % M. G/ e# p. S2 B) P- v5 q1 J
  25. 8 t: Y7 H$ D; v7 ]
  26. //NXOpen 的方法,以下是java代码
    + U! M& b) o/ d7 c  U  R6 ~

  27. ) }: P- M0 X- y. t* X4 L
  28. try
    ! B# W/ E7 }& o' D- f
  29. {
    , P& ]: u5 Z' k8 I  N
  30. Session theSession =(Session)SessionFactory.get("Session");
    0 }8 U- ^& W$ p9 d) I6 V; X
  31. Part workPart = theSession.parts().work();' @2 r3 M) ^: W6 k  q
  32. nxopen.features.Feature nullFeatures_Feature = null;
    . G& P1 |  q5 e: a4 e
  33. nxopen.features.BlockFeatureBuilder blockFeatureBuilder1;
    + m, h$ I( Z/ ~  z# j
  34. blockFeatureBuilder1 = workPart.features(). _
    7 J+ w& @5 [9 d! x
  35. createBlockFeatureBuilder(nullFeatures_Feature);( v! [5 ~9 N" `: S8 J! j/ Z7 d
  36. }
    ! k/ y2 M  V5 C4 E
  37. catch (Exception e)
      o. Y7 L8 Z$ H
  38. {
    3 A% P- c. M* B4 J& j4 u# O) H
  39. //report error to syslog, Message property on _
    6 R( j1 `7 {+ z3 I! J' M8 _
  40. exception object already has human; Q9 \: c3 ^% r
  41. //readable message' ^5 j1 C9 Z) z
  42. theSession.Logfile().WriteLine("Failed to create _1 l2 ?7 z, N, U: v2 u- e. g
  43. block", + e.getMessage());+ l/ s$ \, E9 \
  44. }
复制代码
  k' X( T, H+ O0 L6 F  D

* M) ~! k& K8 w, a: u" z9 J

! B& Z& x+ b5 Y4 e4 A/ {' M0 F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了