Приостановка выполнения макросов для пользовательского ввода

Макросы могут быть приостановлены с помощью обратной косой черты (\) в месте, где требуется ввод данных пользователем.

В следующем примере команда КРУГ приостанавливается и отображается запрос на задание центральной точки окружности. Следует обратить внимание на то, что после обратной косой черты (\) пробел не ставится.

^C^C_.circle \1

В этом примере при выполнении макроса запускается команда -СЛОЙ и вводится параметр отключения. Пользователю затем отображается запрос на ввод имени слоя для отключения перед выходом из команды.

^C^C_.-layer off \;
Прим.: Обычно команда -СЛОЙ продолжает выдавать запросы, и выход из нее осуществляется при нажатии клавиши ПРОБЕЛ или ENTER. В макросе точка с запятой (;) равнозначна нажатию клавиши Enter.

Обычно макрос меню возобновляет свою работу сразу после того, как введен параметр, например координаты точки. Поэтому нельзя создать такой макрос, который воспринимал бы переменное число параметров (как при выборе объектов), а затем возобновлял свою работу. Однако существует исключение для команды ВЫБРАТЬ: в ней обратная косая черта (\) задерживает выполнение команды до тех пор, пока набор объектов не будет полностью сформирован. Рассмотрим пример:

^C^C_.select \_.change previous ;properties color blue ;

В данном макросе используется команда ВЫБРАТЬ, чтобы выбрать один или несколько объектов (^C^C_.select \). Затем происходит вызов команды ИЗМЕНИТЬ. В качестве ссылки ей передается набор объектов с помощью параметра "Предыдущий", и цвет выбранных объектов изменяется на синий (_.change previous ;properties color blue ;).

Прим.: Символ обратной косой черты (\) переводит макрос в состояние ожидания пользовательского ввода. Для других целей в макросе его использовать нельзя. При необходимости задания путей в качестве разделителей необходимо вводить обычную косую черту (/), например /путь/файл.

Выполнение макроса может не возобновиться после первого ввода в следующих случаях.

Прим.: Если вызов команды производится из пункта меню, подразумевается, что системные переменные PICKADD и PICKAUTO имеют значения 1 и 0 соответственно. Это обеспечивает совместимость с предыдущими версиями приложения и упрощает адаптацию, так как избавляет от необходимости беспокоиться о значениях этих переменных.