查询AutoCAD控制台中断句柄以验证是否用户按下了取消键(ESC). 配合vl-catch-all-apply函数一起使用, 在中断紧密循环时dos_isbreak非常有用.
(dos_isbreak)
n/a
如果成功, 返回图形文件列表.
nil 失败时.
(defun c:breaktest ( / msg cnt err)
(setq msg "User break."
cnt -1
err (vl-catch-all-apply 'dos_isbreak)
)
(while (/= err T)
(if (> 10000000000 (setq cnt (1+ cnt)))
(setq err (vl-catch-all-apply 'dos_isbreak))
(setq msg "Maximum count reached."
err T
)
)
(princ cnt)
)
(if (vl-catch-all-error-p err)
(princ (vl-catch-all-error-msg err))
(princ (strcat "\nTerminated loop: " msg))
)
(princ)
)