Изменение режима трассировки макропрограмм
MacroMode keys
Команда MacroMode включает/отключает/меняет состояние режима трассировки макропрограмм в зависимости от установленных ключей Keys
.
Возможные состояния ключей keys
:
MacroMode Trace {on|off}
Ключ включает (on
) или выключает (off
) состояние трассировки макропрограмм.
MacroMode ShowError {on|off}
Ключ включает (on
) или выключает (off
) состояние режима показа места (строки) ошибок в макропрограмме.
Также существует возможность управлять выводом в командное окно выполненных строк макропрограммы. Этот режим значительно замедляет работу макропрограмм, но позволяет отследить ее исполнение. Дополнительно к этому существует возможность управлять выводом диагностических сообщений в командное окно.
MacroMode Debug {on|off}
Ключ включает (on
) или выключает (off
) состояние режима разработчика макропрограмме. Если режим разработчика включен, то при каждом новом запуске макропрограммы, она читается с диска. Если выключен, то единожды запущенная макропрограмма остается во внутреннем кэше и читается оттуда. Таким образом, если разработчик в процессе работы вносит изменения в макропрограмму, то изменения не будут выполнены (запускается предыдущий вариант макропрограммы из кэша). Но при запуске макропрограммы из кэша не тратится время на чтение с диска и скорость работы выше.
Узнать текущую установку вывода диагностических сообщений и трассировки макропрограмм можно с помошью системной функции sysvar(78) |
MacroMode Undo { Off [Clear] | On }
Ключ включает (On
) или выключает (Off
) режим откатки.
Выключение режима откатки возможно с очисткой буфера откаток (необязательный ключ Clear
).
MacroMode Undo On <Name> <ObjectCreate> [<ObjectDelete>]
Включенный режим откатки позволяет ввести имя откатки (параметр <Name>
), а также зарегистрировать создание объекта <ObjectCreate>
и удаление объекта <ObjectDelete>
. Объекты <ObjectCreate>
и <ObjectDelete>
обязательно должны быть объектами верхнего уровня. Этот вариант применим только в том случае, если макропрограмма создает один новый объект или заменяет один объект на другой.
Имя <Name> задает строку, которая выводится в командное окно при выполнении откатки (см. рисунок)
MacroMode Undo On <Name> All
Если используется ключ All
, то в откатке регистрируются все объекты. Этот вариант применим в случае, если макро создает все объекты сцены
MacroMode Undo Start
Начать накопление счетчика откаток во время выполнения макропрограммы.
MacroMode Undo Stop <Name>
Закончить накопление счетчика откаток во время выполнения макропрограммы. Имя <Name>
задает строку, которая выводится в командное окно при выполнении откатки.
Последние две команды используются в макропрограммах, когда при старте макропрограммы нужно начать накопление откаток, а по окончании — завершить. В этом случае при выполнении откатки все команды между началом и завершением накопления счетчика откаток будут отменены за одну операцию.
MacroMode Level [<Level>]
ключ устанавливает уровень выдачи сообщений <Level>
. Если значение <Level>
не задано, то возвращается текущий уровень выдачи сообщений
Пример 1:
// Выключить откатку без стирания буфера откаток #UndoOnBefore MacroMode Undo Off; // Включить откатку с регистрацией создания и удаления объектов верхнего уровня MacroMode Undo On "Otkatka" hCreate;
Пример 2:
macromode undo off; macro ProtoPath+"MakePan.mac" basep[1] basep[2] basep[3] xgab, ygab 12; objident last 1 polka; if (isvardef("polka")==16) { macromode undo on "Ug_Polka.mac" polka ; } else { macromode undo on; }
MacroMode LockHelp <Topic>
Команда принудительно устанавливает тему справки для макропрограммы, где команда вызвана.
<Topic>
- идентификатор устанавливаемой темы – целое неотрицательное число.
Если значение <Topic>
= 0, то происходит снятие блокировки смены тем справки, иначе (<Topic>
> 0) то устанавливается блокировка темы на все время выполнения макрокоманды. После любого выхода из макро в интерактив (нормального или аварийного), блокировка темы справки снимается.
Суть команды в том, что внутри макропрограммы каждая выполняющаяся команда имеет свой указатель (тему) справки, которая зачастую не показывает сути всей макропрограммы. Так вот команда позволит не использовать указатели (темы) каждой из команд макропрограммы, а установить одну тему на всю макропрограмму.