乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 64|回复: 1

[编程交流] 添加错误检查或条件

[复制链接]

88

主题

346

帖子

281

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
423
发表于 2022-7-6 08:33:29 | 显示全部楼层 |阅读模式
我有一个小应用程序(在这里的帮助下)我拼凑了起来。
我不知道如何添加错误检查(或条件),这样就不会出现未找到项的滚动错误。
 
此外,我认为一些项目可以合并为我的(ssget“x”)
但我也不清楚这是怎么回事。
 
请求调整我的代码或指导。
 
警告:我还是个新手。。。
 
这是我的代码:
 
  1. (DEFUN C:SW1 ()
  2. (Prompt "SolidWorks DWG Cleanup:")
  3. (setq TEST (tblsearch "LAYER" "Dim"))
  4.     (if (= TEST nil)
  5.             (progn
  6.                  (Command "-layer" "n" "Dim" "C" "Red" "Dim" "")
  7.             )
  8.     )
  9. (setq ss1 (ssget "x" '((0 . "INSERT")(2 . "*SW_CENTERMARKSYMBOL_*"))))
  10. (Command "Erase" SS1 "")
  11. (setq ss2 (ssget "x" '((0 . "INSERT")(2 . "*SW_NOTE_1*"))))
  12. (Command "Erase" SS2 "")
  13. (setq ss3 (ssget "x" '((0 . "INSERT")(2 . "*SW_TABLEANNOTATION_0*"))))
  14. (Command "Erase" SS3 "")
  15. (Command "-style" "Romans" "romans" "" "0.9" "" "" "n" "n")
  16. (princ "\nRomans Text Style Created:")
  17. (command "dimstyle" "r" "standard")
  18. (command "dimtxsty" "romans")
  19. (Command "dimstyle" "s" "standard" "y" )
  20. (if (setq ss (ssget "x" '((0 . "DIMENSION"))))
  21.    (repeat
  22.      (setq i (sslength ss))
  23.       (setq sset (ssname ss (setq i (1- i))))
  24.       (if (not (eq (cdr (assoc 3 (setq e (entget sset)))) "Standard"))
  25.         (entmod (subst (cons 3 "Standard") (assoc 3 e) e))
  26.       )
  27.    )
  28.    (princ)
  29. )
  30. (setq ss4 (ssget "x" '((0 . "DIMENSION"))))
  31. (Command "_CHANGE" SS4 "" "P" "LA" "DIM" "C" "BYLAYER" "")
  32. (Command "_LAYER" "C" "GREEN" "X50" "C" "yellow" "TEXT" "")
  33. (setq ss5 (ssget "x" '((6 . "PHANTOM"))))
  34. (Command "_CHANGE" SS5 "" "P" "LA" "X25" "C" "BYLAYER" "LT" "PHANTOM" "")
  35. (setq ss6 (ssget "x" '((6 . "HIDDEN"))))
  36. (Command "_CHANGE" SS6 "" "P" "LA" "X25" "C" "BYLAYER" "LT" "HIDDEN" "")
  37. (setq ss7 (ssget "x" '((6 . "DASHED"))))
  38. (Command "_CHANGE" SS7 "" "P" "LA" "X25" "C" "BYLAYER" "LT" "DASHED" "")
  39. (princ))

 
谢谢大家。。。
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 09:52:03 | 显示全部楼层
只是一些快速的想法来帮助你开始(但不是测试)
您会发现,您将编写的大多数代码都是错误检查
当你编写一段代码时,你应该考虑它可能崩溃或引起问题的所有方式。
通常情况下,可以使用if语句进行验证,但这完全取决于您正在尝试做什么。
 
总的错误陷阱总是一件值得学习的事情,因此当程序崩溃时,所有设置都会返回到原来的位置。
这个网站上有很多错误陷阱的例子,只要搜索一下就可以了
 
我希望这有帮助
 
 
 
  1. (DEFUN C:SW1 ()
  2. (Prompt "SolidWorks DWG Cleanup:")
  3. (setq TEST (tblsearch "LAYER" "Dim"))
  4.     (if (= TEST nil)
  5.             (progn
  6.                  (Command "-layer" "n" "Dim" "C" "Red" "Dim" "")
  7.             )
  8.     )
  9. (setq ss1 (ssget "x" '((0 . "INSERT")(2 . "*SW_CENTERMARKSYMBOL_*,*SW_NOTE_1*,*SW_TABLEANNOTATION_0*"))))
  10. (if ss1
  11. (Command "Erase" SS1 "")
  12. );_if
  13. ;;;(setq ss2 (ssget "x" '((0 . "INSERT")(2 . "*SW_NOTE_1*"))))
  14. ;;;(Command "Erase" SS2 "")
  15. ;;;(setq ss3 (ssget "x" '((0 . "INSERT")(2 . "*SW_TABLEANNOTATION_0*"))))
  16. ;;;(Command "Erase" SS3 "")
  17. ;;; before you make a style use tblsearch to chaeck if it is there
  18. (Command "-style" "Romans" "romans" "" "0.9" "" "" "n" "n")
  19. (princ "\nRomans Text Style Created:")
  20. ;; also check for the below items
  21. (command "dimstyle" "r" "standard")
  22. (command "dimtxsty" "romans")
  23. (Command "dimstyle" "s" "standard" "y" )
  24. ;****this is a good code usinf the if to error trap
  25. (if (setq ss (ssget "x" '((0 . "DIMENSION"))))
  26.    (repeat
  27.      (setq i (sslength ss))
  28.       (setq sset (ssname ss (setq i (1- i))))
  29.       (if (not (eq (cdr (assoc 3 (setq e (entget sset)))) "Standard"))
  30.         (entmod (subst (cons 3 "Standard") (assoc 3 e) e))
  31.       )
  32.    )
  33.    (princ)
  34. )
  35. (setq ss4 (ssget "x" '((0 . "DIMENSION"))))
  36. (if ss4 ;_us if to check if ss is good
  37. (progn
  38. (Command "_CHANGE" SS4 "" "P" "LA" "DIM" "C" "BYLAYER" "")
  39. (Command "_LAYER" "C" "GREEN" "X50" "C" "yellow" "TEXT" "")
  40. );_progn
  41. );_if
  42. (setq ss5 (ssget "x" '((6 . "PHANTOM,HIDDEN,DASHED"))))
  43. (if ss5
  44. (Command "_CHANGE" SS5 "" "P" "LA" "X25" "C" "BYLAYER" "LT" "PHANTOM" "")
  45. );_if
  46. ;;;(setq ss6 (ssget "x" '((6 . "HIDDEN"))))
  47. ;;;(Command "_CHANGE" SS6 "" "P" "LA" "X25" "C" "BYLAYER" "LT" "HIDDEN" "")
  48. ;;;
  49. ;;;(setq ss7 (ssget "x" '((6 . "DASHED"))))
  50. ;;;(Command "_CHANGE" SS7 "" "P" "LA" "X25" "C" "BYLAYER" "LT" "DASHED" "")
  51. (princ)
  52. );_defun
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 09:24 , Processed in 0.692485 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表