С помощью макроса меню описывается действие, которое будет выполнено при выборе какого-либо элемента интерфейса. Макрос реализует задачу построения, для выполнения которой пользователю потребовалось бы произвести несколько операций. Макрос может содержать команды, специальные символы, а также программные коды на языке DIESEL (Direct Interpretively Evaluated String Expression Language) или AutoLISP.
Добавить макросы к элементам интерфейса можно с помощью редактора настроек пользовательского интерфейса. Выберите существующую команду или создайте новую в панели "Список команд". Введите макросы в разделе "Макросы" панели "Свойства". Для макросов нет ограничений по длине. Однако следует учитывать правила использования специальных символов, а также другие аспекты и ограничения.
Макрос, описывающий элемент интерфейса, может состоять даже из одной команды (например, круг) и специальных символов (например, ^C^C).
^C^C_круг \1 строит окружность с радиусом, равным 1 единице. Компоненты, определяющие этот макрос, описаны в следующей таблице.
Например, макросКомпоненты макроса CIRCLE |
||
---|---|---|
^C^C |
Специальный управляющий символ |
Отменяет все команды, выполняющиеся в текущий момент времени |
_ |
Специальный управляющий символ |
Автоматически переводит следующую за ним команду на нужный язык |
КРУГ |
Команда |
Запускает команду КРУГ |
\ |
Специальный управляющий символ |
Создает паузу для ввода пользователем точки центра |
1 |
Специальный управляющий символ |
Задает радиус окружности (1) |
^C^C в начале тела макроса, что соответствует двойному нажатию клавиши ESC. Для отмены большинства команд достаточно ввести ^C один раз; для возврата к командной строке из команды простановки размеров необходимо ввести ^C^C; в зависимости от текущего параметра команды СЛОЙ может потребоваться ввести ^C^C^C. Ввод последовательности ^C^C обеспечивает отмену большинства последовательностей команд, поэтому для обеспечения отсутствия активных команд перед запуском макрокоманды рекомендуется ввести эту последовательность.
Прежде чем выполнить макрос, убедитесь, что ни одна из программ AutoCAD не запущена. Чтобы автоматически отменить команду перед выполнением макроса, введитеПри написании макросов значимым является каждый символ, даже пробел.
Если в конце тела макроса поставить пробел, AutoCAD выполнит макрос так, как если бы пользователь ввел команду (например, круг) а затем нажал ПРОБЕЛ для ее завершения.
ТЕКСТ), требуется нажать клавишу ENTER, а не ПРОБЕЛ. Кроме того, иногда для завершения команды необходимо несколько пробелов (или ENTER), но некоторые текстовые редакторы не позволяют создавать строки, завершающиеся пробелами.
Для завершения некоторых макросов требуются специальные символы. Чтобы завершить некоторые команды (например,Для решения этих проблем приняты два специальных соглашения.
Запись, заканчивающаяся символом обратной косой черты (\), переводит макрос в состояние ожидания пользовательского ввода.
Сравним следующие макросы:
ucs
ucs ;
В первом примере в командной строке вводится команда пск с последующим пробелом. Далее появляется подсказка:
Начало ПСК или [Грань/Именованная/Объект/Предыдущая/Вид/Мир/X/Y/Z/Z ось] <Мир>:
Во втором случае в командной строке вводится команда пск, ПРОБЕЛ и точка с запятой, которая воспринимается как ENTER и подтверждает значение, предлагаемое по умолчанию ("Мир").
Подавление эхо-вывода и запросов в макросах
MENUECHO . Если эхо-вывод и запросы для пункта меню включены, их можно отключить в макросе с помощью последовательности ^P.
Символы макроса дублируются в командной строке, как если бы они были введены с клавиатуры. Они также отображаются в элементе интерфейса пользователя Дублирование на экране называется “эхо-выводом“. “Эхо-вывод“ можно подавить с помощью системной переменнойМожно создать макрос любой длины, для которого не требуется использование специальных символов в конце строки. В панели "Свойства" в редакторе настройки пользовательского интерфейса можно использовать макросы любой длины.
В макросах можно использовать специальные символы, включая управляющие символы. Символ крышки (^) в макросе имитирует нажатие клавиши CTRL на клавиатуре. Комбинируя его с алфавитными символами, можно из макросов меню производить, например, включение/отключение сетки (^G) или прерывание команды (^C).
Чтобы ввести информацию с клавиатуры или с помощью устройства указания в процессе выполнения макроса, в теле макроса поставьте символ обратной косой черты (\) в том месте, где необходимо сделать паузу для ввода.
Для разработки меню, которые могут быть использованы и в неанглоязычных версиях программы AutoCAD, перед командой на английском языке необходимо вставить знак подчеркивания (_). Стандартные команды и их опции переводятся автоматически на нужный язык, если перед командами на английском языке вставлен знак подчеркивания.
Если при разработке макрокоманд применяются команды, встроенные в AutoCAD, перед именем каждой команды ставится точка (.). Точка перед встроенной командой разрешает применение этой команды даже в том случае, если ее определение аннулировано с помощью команды НЕТКОМ; это позволяет избежать непредвиденных результатов при работе макрокоманды в других системах, использующих тот же файл адаптации.
Если перед командой вставить символ звездочки (*), эта команда будет вызываться до выбора другой команды.
Метод выбора объектов "Единственный" отменяет повторение запроса о выборе объектов в командной строке. После выбора одного объекта и ответа на другие запросы команда завершается.
Можно заменить назначения активных меню, кнопок мыши, кнопок планшета, меню планшета или экранных меню. Можно подставлять как элемент интерфейса пользователя того же типа, определенный в основном файле НПИ, так и элемент из частичного файла НПИ.
Условные выражения можно добавлять в макрос путем использования команды, содержащей макровыражения на языке DIESEL.
Создание команд, использующих AutoLISP, является более совершенным способом использования функции настройки AutoCAD.