Строки макросов команд указывают AutoCAD, какие команды и системные переменные необходимо выполнить вместе с ожидаемыми значениями ввода, разрешенными в командной строке. В строки макросов команд также можно включать специальные символы, выражения DIESEL и программный код AutoLISP.
Можно создавать пользовательские строки макросов команд, позволяющие:
Для настройки и редактирования строк макросов команд используются:
Строка макроса команд — это набор команд, ожидаемых параметров и значений со специальным синтаксисом. Она аналогична вводу в командной строке AutoCAD. При взаимодействии с пользовательским интерфейсом программы, например, при нажатии кнопки на ленте или выборе параметра в контекстном меню, выполняется строка макроса команды. Синтаксис макроса команды может как представлять собой просто имя команды (например, КРУГ), так и содержать специальные символы (например, ^C^C_.circle \1).
Ниже перечислены часто используемые специальные символы в строках макросов команд.
Ниже приведены примеры команды КРУГ для построения окружности с радиусом 5 с помощью командной строки AutoCAD и этой же операции в виде строки макроса команды.
Последовательность набора в командной строке | Эквивалент синтаксиса строки макроса |
---|---|
Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Specify radius of circle or [Diameter] <2.5000>: 5 |
CIRCLE; \ 5; |
Окончательный вид строки макроса команды:
![]() |
|
Предыдущую строку макроса также можно записать следующим образом без точек с запятой, так как пробел в макросе аналогичен нажатию клавиши ПРОБЕЛ в командной строке AutoCAD.
^C^C_.circle \5
Ниже приведен еще один пример использования команды MOCORO для копирования и последующего поворота скопированных объектов в командной строке AutoCAD, а также показан вид набора команд в качестве строки макроса команды.
Последовательность набора в командной строке | Эквивалент синтаксиса строки макроса |
---|---|
Command: MOCORO Select objects: Specify opposite corner: Select objects: Base point: [Move/Copy/Rotate/Scale/Base/Undo]<eXit>: C Second point of displacement/Undo/<eXit>: Second point of displacement/Undo/<eXit>: [Move/Copy/Rotate/Scale/Base/Undo]<eXit>: R Second Point or Rotation angle: [Move/Copy/Rotate/Scale/Base/Undo]<eXit>: |
MOCORO; \ \ ; \ C; \ ; R; \ ; |
Окончательный вид строки макроса команды:
![]() |
|
Если кнопка в интерфейсе пользователя нажата, макрос, назначенный ей, все равно выполняется в текущем контексте программы. Это значит, что макрос будет пытаться ответить на текущий запрос. Если требуется убедиться, что ни одна команда не активна при выполнении макроса, поставьте перед макросом префикс последовательности команд^ C. Для отмены большинства команд достаточно ввести ^C один раз; для возврата к командной строке из команды простановки размеров необходимо ввести ^C^C; в зависимости от текущего параметра команды СЛОЙ может потребоваться ввести ^C^C^C. ^C^C обеспечивает отмену большинства последовательностей команд, поэтому рекомендуется широко использовать эту последовательность.
Команды, которые являются частью AutoCAD или программ на ее основе, должны начинаться с точки (.). Пробел позволяет использовать стандартные команды даже в том случае, если определение команды аннулировано с помощью команды НЕТКОМ. Эти меры предосторожности позволяют избежать непредвиденных результатов при работе макроса, когда он используется на других компьютерах, задействующих тот же файл адаптации (CUI/CUIx).
При написании макросов значимым является каждый символ, даже пробел. Пробел интерпретируется как нажатие клавиши ПРОБЕЛ. Это может привести к появлению символа пробела при вводе или нажатию клавиши ENTER. Результат аналогичен результату использования команды или системной переменной в командной строке.
При первом создании макроса обычно используются имена команд и значения параметров на знакомом пользователю языке программы. Команды и параметры имеют собственные локальные и глобальные имена, что позволяет использовать макросы на других языках. Поддержка локализованных элементов не требует много дополнительной работы. Перед командой или параметром необходимо просто вставить знак подчеркивания (_). Он указывает программе на то, что перед выполнением имя команды или значение параметра необходимо перевести на локальный язык программы.
Метод выбора объектов "Единственный" отменяет повторение запроса о выборе объектов в командной строке. После выбора одного объекта и ответа на другие запросы команда завершается.
Рассмотрим следующий пример:
^C^C._erase single
Этот макрос прерывает текущую команду и вызывает команду СТЕРЕТЬ в режиме выбора одного объекта. После запуска макроса, можно либо выбрать единичный объект, либо щелкнуть в пустой области чертежа и указать секущую рамку/рамку выбора. Все объекты, выбранные с помощью следующих методов стираются.
После создания макроса, возможно, потребуется использовать его несколько раз перед использованием другой команды. В макросе можно поставить символ звездочки (*), указывающий на то, что команда макроса должна повторяться до тех пор, пока не будет нажата клавиша ESC или использовать другой макрос, который начинается с ^C.
Приведенный ниже пример иллюстрирует повторный вызов команд в макросе:
*^C^C._move Single *^C^C._copy Single *^C^C._erase Single *^C^C._stretch Single Crossing *^C^C._rotate Single *^C^C._scale Single
Для завершения некоторых макросов требуются специальные символы. Например, команда ТЕКСТ для завершения требует нажатия клавиши ENTER, а не ПРОБЕЛ, а некоторые другие команды требуют нескольких нажатий клавиши ПРОБЕЛ (или ENTER).
Для решения этих проблем приняты два специальных соглашения.
Сравним следующие макросы:
ucs ucs ;
Первый пример начинается с команды ПСК, так как строка заканчивается пробелом, моделируется нажатие клавиши ПРОБЕЛ. В командной строке появится следующий запрос:
Начало ПСК или [Грань/Именованная/Объект/Предыдущая/Вид/Мир/X/Y/Z/Z ось] <Мир>:
Второй пример начинается с команды ПСК, имитируется нажатие клавиши ПРОБЕЛ, а затем нажатие клавиши ВВОД, принимается значение по умолчанию ("Мир").
Символы макроса дублируются в командном запросе, как если бы они были введены с клавиатуры. Дублирование на экране называется “эхо-выводом“. Можно подавить эхо-вывод макроса с помощью системной переменной MENUECHO. Если эхо-вывод и запросы для элемента меню включены, их можно временно отключить в макросе с помощью последовательности ^P. Можно также использовать в макросе последовательность ^Q, чтобы подавить отображение всех запросов и ввод из журнала командной строки.