Раньше все было просто: command (равно как command-s) всегда возвращали nil - что в случае успешного завершения команды, что в случае ее отмены. vl-cmdf в этом отношении была более адекватна: если команда была завершена корректно, возвращался t, если отменена - nil. В AutoCAD2016x64 (установлены все обновления) Eng и Rus элементарный код не работает так, как нужно:
(defun test ()
(alert (if (vl-cmdf "_.circle" pause pause)
"ok"
"cancel"
) ;_ end of if
) ;_ end of alert
) ;_ end of defun
Когда бы я ни нажимал на Esc, все равно выводится "ok".
Начиная с какой версии так подсуропили (то ли 2014, то ли 2015) - не столь суть важно. Важно то, что каким образом теперь определить, выполнил команду пользователь или отменил ее? Неужели придется извращаться по полной программе?
P.S. К сожалению, приходится пока обходиться только lisp'ом, другие варианты решения не покатят