Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: lom0v от 16-02-2019, 19:14:54

Название: Выполнение команды без записи undo
Отправлено: lom0v от 16-02-2019, 19:14:54
Возможно ли сделать кастомную команду без записи информации в undo?

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

Если я делаю команду, которая не изменяет состояния ни одного объекта, т.е. нет открытий объектов на запись, то вызов этой команды из командной строки всё равно фиксируется в undo/redo. Мне нужно, что бы моя команда была полностью прозрачна для механизма undo/redo. Отображение команды в окне лога и фиксация в истории командной строки не критично.
Название: Re: Выполнение команды без записи undo
Отправлено: Александр Ривилис от 16-02-2019, 19:58:42
Попробуй регистрировать команду с флагом ACRX_CMD_NO_UNDO_MARKER (а заодно и с ACRX_CMD_NOHISTORY)
В документации написано, что в undo-файл информация записывается при закрытии объекта, который был открыт на запись и для которого выполнена функция assertWriteEnabled(true).
Тебя не это должно интересовать. Чтобы отменить запись в Undo для конкретной базы (AcDbDatabase) есть метод AcDbDatabase::disableUndoRecording
Название: Re: Выполнение команды без записи undo
Отправлено: lom0v от 16-02-2019, 21:17:16
Спасибо! Флаг  ACRX_CMD_NO_UNDO_MARKER - то, что доктор прописал :)