Здравствуйте!
Разрабатываю с помощью CAA RADE команду, которая строит в модуле черчения примитивы.
Возникла необходимость обработки действий Undo/Redo для этой команды.
Если, например, построить примитивы с помощью созданной команды, потом удалить их и сделать Undo, то
CATIA восстанавливает эти удалённые ранее примитивы из своего "стека команд".
Мне нужно получить доступ к этим восстановленным примитивам чтобы перестроить их положение.
В документации CAA (User Interface / Wintop Commands) есть описание механизма Undo/Redo и пример (Managing Command Undo/Redo). Как я понял оттуда, существует:
1. Глобальное (Command) Undo/Redo - для отдельных команд, которые уже завершились;
2. Локальное (Input) Undo/Redo - для состояний команды, т.е. работающее в пределах команды, позволяющее отменить/повторить какой-то шаг команды.
Ещё в API нашёл интерфейс CATIOmbUndoRedoEvents, позволяющий подписаться на события Undo/Redo документа (GetUndoRedoNotification или GetBeforeUndoRedoNotification).
Скажите, пожалуйста, как правильно получить восстановленные командой Undo примитивы после удаления, чтобы потом перестроить их положение?
Может быть с помощью CATIOmbUndoRedoEvents можно из события получить какие объекты "участвуют" в Undo/Redo чтобы обработать их.
В примере же, как я понял, обработка глобального Undo/Redo выполняется в методах команды путём удаления или повторного создания примитива.
Спасибо.