明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2283|回复: 5

[提问] 请问如何屏蔽“错误”提示

[复制链接]
发表于 2013-10-3 17:10:02 | 显示全部楼层 |阅读模式
在一条线上加了个“移动”反应器,用“E”删除该线,然后再“U”,出现提示:“错误: 参数类型错误: 二维/三维点: nil”。但反应器好像照常可用,没发现什么问题。请问:如何才能屏蔽这个提示?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-10-3 23:52:26 | 显示全部楼层
试试定义*error*函数。
发表于 2013-10-4 11:41:26 来自手机 | 显示全部楼层
既然提示出错,代码肯定有问题!还是要仔细检查下代码!
 楼主| 发表于 2013-10-4 14:23:51 | 显示全部楼层
本帖最后由 原地踏步 于 2013-10-4 14:39 编辑
  1. ;;
  2. ;;  本程序可使文字随着直线移动、旋转等。
  3. ;;
  4. ;;========================= The Main Function ==========================
  5. ;;
  6. (defun c:emov (/ blp cde olderr ent1 ent2 pt1 pt2 ang pt txt dst)
  7.   (setq blp (getvar "blipmode")
  8.         cde (getvar "cmdecho")
  9.   )
  10. ;;
  11. ;; Internal error handler
  12. ;;
  13. (defun emov_err (s)
  14.   (if (/= s "Function cancelled")
  15.     (princ (strcat "\n错误: " s))
  16.   )
  17.   (setvar "blipmode" blp)
  18.   (command "_.UNDO" "_END")
  19.   (setvar "cmdecho" cde)
  20.   (setq *error* olderr)
  21.   (princ)
  22. )
  23.   (setq olderr *error*  *error* emov_err)
  24.   (setvar "cmdecho" 0)
  25.   (command "_.UNDO" "_BEGIN")
  26.   (setvar "blipmode" 0)
  27.   (setq ent1 (car (entsel "\n选择直线: ")))
  28.   (if (and ent1 (= (ai_dxf 0 (setq dxf1 (entget ent1))) "LINE")) (progn
  29.     (setq txt (getstring "\n输入文字: "))
  30.     (if txt (progn
  31.       (setq pt1 (ai_dxf 10 dxf1)
  32.             pt2 (ai_dxf 11 dxf1)
  33.             ang (angle pt1 pt2)
  34.             pt (list (* 0.5 (+ (car pt1) (car pt2)))
  35.                    (* 0.5 (+ (cadr pt1) (cadr pt2)))
  36.                    0
  37.              )
  38.           dst (* 0.75 (getvar "textsize"))
  39.           pt (polar pt (+ ang (/ pi 2)) dst)
  40.        )
  41.        (command "text" "m" pt (getvar "textsize") (* (/ ang pi) 180) txt)
  42.        (setq ent2 (entlast))
  43.        (emov_MkRct)
  44.      ))
  45.   ))
  46.   (setvar "blipmode" blp)
  47.   (command "_.UNDO" "_END")
  48.   (setvar "cmdecho" cde)
  49.   (setq *error* olderr)
  50.   (princ)
  51. )
  52. ;;

  53. ;;======================================================================
  54. ;;
  55. ;; emov_Make_Reactor_segment
  56. ;;
  57. (defun emov_MkRct (/ entLst han)
  58.   (setq entLst (list (vlax-ename->vla-object ent1))
  59.         han (ai_dxf 5 (entget ent2))
  60.   )
  61.   (vlr-pers (vlr-object-reactor entLst han
  62.      '((:vlr-modified . emov_DoRct)))
  63.   )
  64. )
  65. ;;
  66. ;; emov_Do_Reactor_segment
  67. ;;
  68. (defun emov_DoRct (notifier-obj reactor-obj parameter-lst / olderr
  69.                    ent1 dxf1 dxf2 pt1 pt2 pt ang dst)
  70. ;;
  71. (defun emov_drerr (s)
  72.   (if (/= s "Function cancelled")
  73.     (princ (strcat "\n错误: " s))
  74.   )
  75. )
  76. ;;
  77.   (setq olderr *error*  *error* emov_drerr)
  78.   (setq ent1 (vlax-vla-object->ename notifier-obj))
  79.   (if ent1 (progn            ;阻止删除ent1时出现错误提示
  80.     (setq dxf1 (entget ent1)
  81.           dxf2 (entget (handent (vlr-data reactor-obj)))
  82.           pt1 (ai_dxf 10 dxf1)
  83.           pt2 (ai_dxf 11 dxf1)
  84.           ang (angle pt1 pt2)
  85.           pt (list (* 0.5 (+ (car pt1) (car pt2)))
  86.                    (* 0.5 (+ (cadr pt1) (cadr pt2)))
  87.                    0
  88.              )
  89.           dst (* 0.75 (ai_dxf 40 dxf2))
  90.           pt (polar pt (+ ang (/ pi 2)) dst)
  91.           dxf2 (subst (cons 11 pt) (assoc 11 dxf2) dxf2)
  92.           dxf2 (subst (cons 50 ang) (assoc 50 dxf2) dxf2)
  93.     )
  94.     (entmod dxf2)
  95.   ))
  96.   (setq *error* olderr)
  97.   (princ)
  98. )
  99. ;;
  100. (defun ai_dxf (key lst)
  101.   (cdr (assoc key lst))
  102. )
  103. ;;======================================================================
  104. (princ)
 楼主| 发表于 2013-10-4 14:30:37 | 显示全部楼层
不管移动、旋转还是删除命令后,再用"U"退回,均会出现“参数类型错误”。但反应器好像也还在,不知是怎么回事。
 楼主| 发表于 2013-10-12 21:04:33 | 显示全部楼层
没人回答吗?郁闷!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-26 06:07 , Processed in 0.230678 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表