Команды AutoCAD. Всегда ли последовательно выполнение основных команд?

Автор Тема: Команды AutoCAD. Всегда ли последовательно выполнение основных команд?  (Прочитано 4896 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Поискал, по крайней мере здесь, вроде бы, не задавали еще такой вопрос. Насколько можно полагаться на то, что команды автокада выполняются последовательно друг за другом? Может ли возникнуть ситуация когда во время работы команды будет запущена-завершена другая команда?
Немного поясню. Есть такие события у документа: CommandWillStart, CommandEnded, CommandCancelled и CommandFailed(кстати, вот это событие ни разу не удалось словить, но на всякий случай и его обрабатываю). Как показывают эксперименты, события срабатывают только в момент запуска-прекращения основных команд, т.е. прозрачные команды типа 'PAN, 'ZOOM, 'MTP и т.п. не вызывают этих событий. И, вроде как, всегда выполняется правило, что если команда была запущена - сработало событие CommandWillStart, то потом обязательно сработает CommandEnded или CommandCancelled и только затем может быть запущена новая команда. Я же до сегодняшнего дня всегда проверял в событиях завершения команды ее название и сверял с тем, которое получал в событии запуска команды, чтобы точно быть уверенным, что была завершена именно та команда, которая запускалась. А вот сейчас такая проверка сильно мне мешает и я задумался о ее целесообразности. Если команды всегда выполняются последовательно, то нет смысла проверять название завершившейся команды - это будет та команда, которая была запущена. Или же возможна другая ситуация?
Извините, вам запрещён просмотр содержимого спойлеров.

Отмечено как Решение Дмитрий Загорулькин 14-09-2016, 13:03:31

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13881
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Или же возможна другая ситуация?
Конечно возможна при запуске во время работы одной команды другой:
Command: LINE
[Doc Event] : Command will Start        : LINE
Specify first point: 'setvar
[Doc Event] : Command will Start        : SETVAR>>Enter variable name or [?]:
[Doc Event] : Command Ended             : SETVAR
Resuming LINE command.
Specify first point:
No line or arc to continue.
Specify first point: *Cancel*
[Doc Event] : Command Cancelled         : LINE
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Да, как-то плохо я проверял. Действительно, запускаемые параллельно команды тоже вызывают эти события. Буду думать, как с этим быть. Спасибо!