Выполнение команды без записи undo

Автор Тема: Выполнение команды без записи undo  (Прочитано 6381 раз)

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

Оффлайн lom0vАвтор темы

  • ADN OPEN
  • Сообщений: 17
  • Карма: 1
Возможно ли сделать кастомную команду без записи информации в undo?

В документации написано, что в undo-файл информация записывается при закрытии объекта, который был открыт на запись и для которого выполнена функция assertWriteEnabled(true).

Если я делаю команду, которая не изменяет состояния ни одного объекта, т.е. нет открытий объектов на запись, то вызов этой команды из командной строки всё равно фиксируется в undo/redo. Мне нужно, что бы моя команда была полностью прозрачна для механизма undo/redo. Отображение команды в окне лога и фиксация в истории командной строки не критично.

Отмечено как Решение lom0v 16-02-2019, 21:17:24

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выполнение команды без записи undo
« Ответ #1 : 16-02-2019, 19:58:42 »
Попробуй регистрировать команду с флагом ACRX_CMD_NO_UNDO_MARKER (а заодно и с ACRX_CMD_NOHISTORY)
В документации написано, что в undo-файл информация записывается при закрытии объекта, который был открыт на запись и для которого выполнена функция assertWriteEnabled(true).
Тебя не это должно интересовать. Чтобы отменить запись в Undo для конкретной базы (AcDbDatabase) есть метод AcDbDatabase::disableUndoRecording
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн lom0vАвтор темы

  • ADN OPEN
  • Сообщений: 17
  • Карма: 1
Re: Выполнение команды без записи undo
« Ответ #2 : 16-02-2019, 21:17:16 »
Спасибо! Флаг  ACRX_CMD_NO_UNDO_MARKER - то, что доктор прописал :)