Изменение режима трассировки макропрограмм
MacroMode keys
Команда MacroMode включает/отключает/меняет состояние режима трассировки макропрограмм в зависимости от установленных ключей Keys.
Возможные состояния ключей keys:
MacroMode Trace {on|off}
Ключ включает (on) или выключает (off) состояние трассировки макропрограмм.
Внимание! Команда Passzip блокирует включение MacroMode Trace
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) то устанавливается блокировка темы на все время выполнения макрокоманды. После любого выхода из макро в интерактив (нормального или аварийного), блокировка темы справки снимается.
Суть команды в том, что внутри макропрограммы каждая выполняющаяся команда имеет свой указатель (тему) справки, которая зачастую не показывает сути всей макропрограммы. Так вот команда позволит не использовать указатели (темы) каждой из команд макропрограммы, а установить одну тему на всю макропрограмму.