如何截获(vl-cmdf)函数的错误以进行处理?
(defun c:Test (/ ep1 ep2)(setq ep1 (entsel "\n选择第一个对象:"))
(setq ep2 (entsel "\n选择第二个对象:"))
(vl-cmdf "_.fillet" ep1 ep2)
;;当ep1和ep2无法构成倒角时,程序继续运行到结束,
;;而命令行一直提示选择第二个对象
;;如何截获(vl-cmdf)函数的错误以进行处理?
(princ "\nTest")
(princ)
)
用(getvar 'LASTPROMPT)察看一下命令行的上一个字符串是否为你所需要的内容
该方法可以判断无法倒角,问题是怎么结束程序,不让命令行始终提示选择第二个目标。
改用command可以嗎?(command "_.fillet" EP1 EP2 ^C)
试过,(command)也不行。
(command "_.fillet" EP1 EP2 ^C)
很好,由此导出以下两种方法...
(command "_.fillet" EP1 EP2 ^C)等于1。
(command "_.fillet" EP1 EP2)
(command);或(command ^C)
2。
(vl-cmdf "_.fillet" EP1 EP2)
(vl-cmdf);不能用(vl-cmdf ^C)
加上(getvar "cmdnames")判断,问题解决。
页:
[1]