Макросы в автокаде что это
С помощью макроса меню описывается действие, которое будет выполнено при выборе какого-либо элемента интерфейса. Макрос реализует задачу построения, для выполнения которой пользователю потребовалось бы произвести несколько операций. Макрос может содержать команды, специальные символы, а также программные коды на языке DIESEL (Direct Interpretively Evaluated String Expression Language) или AutoLISP.
Примечание По мере появления новых версий AutoCAD может измениться последовательность запросов для некоторых команд (а иногда даже имена команд). Поэтому после обновления версии AutoCAD, возможно, потребуется внести некоторые изменения в пользовательские макросы.
Добавить макросы к элементам интерфейса можно с помощью редактора настроек пользовательского интерфейса. Выберите существующую команду или создайте новую в панели «Список команд». Введите макросы в разделе «Макросы» панели «Свойства». Для макросов нет ограничений по длине. Однако следует учитывать правила использования специальных символов, а также другие аспекты и ограничения.
Тип компонента
Отмена выполняющихся команд Прежде чем выполнить макрос, убедитесь, что ни одна из программ AutoCAD не запущена. Чтобы автоматически отменить команду перед выполнением макроса, введите ^C^C в начале тела макроса, что соответствует двойному нажатию клавиши ESC. Для отмены большинства команд достаточно ввести ^C один раз; для возврата к командной строке из команды простановки размеров необходимо ввести ^C^C ; в зависимости от текущего параметра команды СЛОЙ может потребоваться ввести ^C^C^C . Ввод последовательности ^C^C обеспечивает отмену большинства последовательностей команд, поэтому для обеспечения отсутствия активных команд перед запуском макрокоманды рекомендуется ввести эту последовательность.
Проверка символов макроса При написании макросов значимым является каждый символ, даже пробел. Если в конце тела макроса поставить пробел, AutoCAD выполнит макрос так, как если бы пользователь ввел команду (например, круг) а затем нажал ПРОБЕЛ для ее завершения.
- Точка с запятой (;) в макрокоманде соответствует нажатию клавиши ENTER в командной строке.
- После строк, заканчивающихся каким-либо специальным символом, обратной косой чертой (\), знаком плюс (+) или точкой с запятой (;) AutoCAD не добавляет символ пробела.
Запись, заканчивающаяся символом обратной косой черты (\), переводит макрос в состояние ожидания пользовательского ввода.
Сравним следующие макросы:
В первом примере в командной строке вводится команда пск с последующим пробелом. Далее появляется подсказка:
Начало ПСК или [Грань/Именованная/Объект/Предыдущая/Вид/Мир/X/Y/Z/Z ось] :
Во втором случае в командной строке вводится команда пск, ПРОБЕЛ и точка с запятой, которая воспринимается как ENTER и подтверждает значение, предлагаемое по умолчанию («Мир»).
Подавление эхо-вывода и запросов в макросах
Символы макроса дублируются в командной строке, как если бы они были введены с клавиатуры. Они также отображаются в элементе интерфейса пользователя Дублирование на экране называется “эхо-выводом“. “Эхо-вывод“ можно подавить с помощью системной переменной MENUECHO . Если эхо-вывод и запросы для пункта меню включены, их можно отключить в макросе с помощью последовательности ^P .
Создание длинных макросов
Можно создать макрос любой длины, для которого не требуется использование специальных символов в конце строки. В панели «Свойства» в редакторе настройки пользовательского интерфейса можно использовать макросы любой длины.
Темы в этом разделе
- Использование в макросах специальных управляющих символов В макросах можно использовать специальные символы, включая управляющие символы. Символ крышки (^) в макросе имитирует нажатие клавиши CTRL на клавиатуре. Комбинируя его с алфавитными символами, можно из макросов меню производить, например, включение/отключение сетки ( ^G ) или прерывание команды ( ^C ).
- Пауза для пользовательского ввода Чтобы ввести информацию с клавиатуры или с помощью устройства указания в процессе выполнения макроса, в теле макроса поставьте символ обратной косой черты (\) в том месте, где необходимо сделать паузу для ввода.
- Поддержка иностранных языков в макросах Для разработки меню, которые могут быть использованы и в неанглоязычных версиях программы AutoCAD, перед командой на английском языке необходимо вставить знак подчеркивания (_). Стандартные команды и их опции переводятся автоматически на нужный язык, если перед командами на английском языке вставлен знак подчеркивания.
- Применение встроенных команд в макрокомандах Если при разработке макрокоманд применяются команды, встроенные в AutoCAD, перед именем каждой команды ставится точка (.). Точка перед встроенной командой разрешает применение этой команды даже в том случае, если ее определение аннулировано с помощью команды НЕТКОМ; это позволяет избежать непредвиденных результатов при работе макрокоманды в других системах, использующих тот же файл адаптации.
- Повторение команд в макросе Если перед командой вставить символ звездочки (*), эта команда будет вызываться до выбора другой команды.
- Метод выбора объектов «Единственный» Метод выбора объектов «Единственный» отменяет повторение запроса о выборе объектов в командной строке. После выбора одного объекта и ответа на другие запросы команда завершается.
- Использование макроса для перестановки элементов интерфейса пользователя Можно заменить назначения активных меню, кнопок мыши, кнопок планшета, меню планшета или экранных меню. Можно подставлять как элемент интерфейса пользователя того же типа, определенный в основном файле НПИ, так и элемент из частичного файла НПИ.
- Использование условных выражений в макросах Условные выражения можно добавлять в макрос путем использования команды, содержащей макровыражения на языке DIESEL.
- Использование AutoLISP в макросах Создание команд, использующих AutoLISP, является более совершенным способом использования функции настройки AutoCAD.
- Использование в макросах специальных управляющих символов
- Создание подсказок в строке состояния
Приложение AutoCAD VBA и особенности работы с ним
Visual Basic for Applications (VBA) — это язык программирования, встроенный во многие приложения, включая офисные программы, САПР, графические редакторы и многие другие. VBA является упрощенной версией языка Visual Basic, имеет схожий с ним синтаксис. Среда программирования VBA обычно встроена в саму программу, поэтому пользователь может сразу начинать писать программы или загружать готовые приложения для работы.
При разработке языка VBA его авторы ориентировались на обычных пользователей, а не на профессиональных программистов, поэтому создавать программы на VBA достаточно просто и быстро.
Из преимуществ языка VBA можно отметить легкость его освоения и простоту использования, универсальность (изучив VBA для AutoCAD пользователь без труда изучит, например, VBA для Microsoft Word или Excel). Главный недостаток языка VBA – проблемы с обратной совместимостью разных версий.
В AutoCAD также есть встроенная поддержка языка VBA, для этого служит отдельный модуль AutoCAD VBA Enabler. С помощью программ на VBA можно обращаться ко всем объектам AutoCAD, примитивам чертежа, общаться между AutoCAD и сторонними приложениями и многое другое. Другими словами, с помощью языка VBA можно создавать программы любой сложности, которые позволят расширить функциональность системы, автоматизировать рутинные операции и многое другое.
Важным отличием VBA для AutoCAD от VBA для других программ является то, что в нем программы хранятся не внутри файлов, а во внешних файлах с расширением DVB.
В последних версиях AutoCAD модуль VBA Enabler не входит в дистрибутив и не устанавливается вместе с самим AutoCAD. Чтобы получить возможность работать с VBA в AutoCAD, вам необходимо скачать и установить AutoCAD VBA Enabler со специальной страницы в интернете

Важно то, что при выборе модуля VBA Enabler нужно обратить внимание на версию AutoCAD и его разрядность. Например, модуль VBA для AutoCAD 2018 32-x не будет работать в среде AutoCAD 2018 64-x.
После скачивания, распаковки и установки модуля AutoCAD VBA Enabler в программе AutoCAD появится возможность работать с приложениями на языке VBA.
Окно редактора VBA (VBA IDE) запускается командой VBAIDE.

Оно стандартное для языка VBA и ничем не отличается от VBA в других программах.
Обратите внимание, что двоичный формат файлов проектов VBA в AutoCAD не совместим с форматом проектов Visual Basic. Однако, в VBA для AutoCAD можно импортировать формы, модули и классы, хранящиеся в файлах форматов FRM, BAS и CLS соответственно.
Список команд, предназначенных для работы с программами VBA:
- VBALOAD служит для загрузки проекта VBA
- VBAUNLOAD выгружает проект из AutoCAD
- VBARUN служит для запуска макроса из командной строки
- VBAIDE открывает окно редактора VBA, в котором можно писать, запускать и отлаживать программы
- VBAMAN открывает менеджер VBA
- VBASTMT выполняет команду VBA в командной строке.
Опубликовано 13 Ноября 2017
Создание команд и макросов в AutoCAD
Сегодня с вами будем разговаривать про создание команд в AutoCAD, а точнее макросов, т.е. объединение нескольких команд в одну или соединение нескольких субопций одной команды. Мы также создадим отдельную кнопку и вынесем ее на панель инструментов. А рассматривать создание команды в Автокаде будем на примере команды «ОЧИСТИТЬ». Создадим макрос AutoCAD для удаления всех элементов, которые не присутствуют в графическом пространстве, но при этом загружают файл.
Первое, что необходимо сделать — это понять из каких элементов состоит команда. Набираем в командной строке «-ОЧИСТИТЬ». При таком вызове команды диалоговые окна не появляются, а все субопции выбираются из командной строки. Напомню, что мы рассматриваем команду удаления всех неиспользуемых элементов чертежа. Поэтому я выберу субопцию «Все». Далее нас просят ввести имена удаляемых элементов, нажмем enter, чтобы удалились все. Запрашивать подтверждение на удаление каждого элемента — «Нет».
После такой чистки обычно файлы заметно уменьшаются в размере и не тормозят.
Создание макроса Автокад.
Вкладка «Управление» — панель «Адаптация» — инструмент «Пользов.ательский интерфейс». Появляется окно «Адаптация пользовательского интерфейса». Здесь выбираем кнопку «Создание новой команды».

Даем новой команде Автокад имя. Я назову «Очистить все». Можете заполнить описание, чтобы в дальнейшем понять что это за команда.
Самое главное — это поле «макросы». В данном поле по умолчанию стоит: «^С^С». Это означает 2 нажатия клавиши Esc. Т.е. при вызове команды предыдущую команду необходимо закончить. Далее ставим вызов команды без диалогового окна «-очистить». Далее мы нажимали «Enter», в коде он обозначается пробелом. Затем мы выбирали субопцию «все», в коде ставим ключ вызова субопции «в». Далее опять «Enter», а в коде ставим пробел. После нас просили ввести имена элементов, которые хотим удалить, и мы нажимали «Enter», поэтому в коде я еще раз ставлю пробел. И на запрос подтверждать ли удаление каждого элемента, мы выбирали «нет», в коде поэтому я ставлю букву «н». И в конце кода макроса еще раз пробел, чтобы вызвать завершение команды. Вот что получилось.

В разделе Значок выберем значок команды очистить. Изменим его и пересохраним, чтобы у нас был отдельный значок для только что созданного нами макроса AutoCAD. Я изменил значок вот таким образом (см. рисунок).

Далее нажимаем Экспорт и даем название иконке. Иконка сохранена, а в данном редакторе я нажимаю закрыть и не сохранять.
Теперь меняем изображение для команды. Малое и большое изображения — выбираем новую иконку.

И теперь мы можем применить изменения в диалоговом окне «Адаптация пользовательского интерфейса».
Вывод новой команды Автокад на панель быстрого доступа.
Находим новую команду в списке. Она называется «Очистить все». И далее перетаскиваем ее зажатой кнопкой мыши на панель быстрого доступа.

Нажимаем «Применить» — «Ок». Проверьте, команда Автокад работает.
Таким способом можно создавать любые макросы в AutoCAD. Здесь Вам необходимо в начале попрактиковаться и затем понять, какие макросы Вам нужны в Вашей работе.
Освойте профессию проектировщика
Научитесь быстрому черчению, освоите прикладное 3D, автоматизируете создание ведомостей и спецификаций.
Макросы команд
Макросы команд могут содержать команды, специальные символы, выражения DIESEL, или программные коды AutoLISP.
Можно определить и затем назначить макросы команде, изменив свойство «Макрос» команды в редакторе адаптации пользовательского интерфейса (Windows) или диалоговом окне «Адаптация» (Mac OS).
Прим.: AutoLISP не поддерживается в AutoCAD LT.
Основные сведения о макросах
Макрос определяет действие, которое должно выполняться в том случае, если используется элемент интерфейса пользователя. Он может быть такой же простой, как команды (например, circle), и включать специальные символы (например, ^C^C).
Например, макрос ^C^C_.circle \1 строит окружность с радиусом, равным 1 единице. Компоненты, определяющие этот макрос, описаны в следующей таблице.
Компоненты макроса CIRCLE
Компонент
Тип компонента
Результат
Последовательность специальных управляющих символов
Эта последовательность аналогична двойному нажатию клавиши ESC.
Специальный управляющий символ
Указание того, что выполняемая команда будет использовать глобальное имя команды, а не локализованное.
Специальный управляющий символ
Указание того, что выполняемая команда будет использовать встроенное определение команды, а не повторное определение команды, которая уже существует.
Запуск команды КРУГ.
Оставляет столько же места, сколько при нажатии клавиши ПРОБЕЛ при использовании команды.
Специальный управляющий символ
Формирование паузы для ввода данных пользователем; в данном примере это пауза для центра окружности.
Ответ на запрос радиуса круга; в данном примере это значение 1.
Отмена активной команды
Если кнопка в интерфейсе пользователя нажата, макрос, назначенный ей, все равно выполняется в текущем контексте программы. Это значит, что макрос будет пытаться ответить на текущий запрос. Если требуется убедиться, что ни одна команда не активна при выполнении макроса, поставьте перед макросом префикс последовательности команд ^ C . Для отмены большинства команд достаточно ввести ^C один раз; для возврата к командной строке из команды простановки размеров необходимо ввести ^C^C ; в зависимости от текущего параметра команды СЛОЙ может потребоваться ввести ^C^C^C . ^C^C обеспечивает отмену большинства последовательностей команд, поэтому рекомендуется широко использовать эту последовательность.
Проверка символов макроса
При написании макросов значимым является каждый символ, даже пробел. Размещение пространства в конце макроса интерпретируется как нажатие клавиши ПРОБЕЛ или ENTER для завершения команды.
Использование в макросах встроенных команд
Команды, которые являются частью AutoCAD или программ на ее основе, должны начинаться с точки (.). Пробел позволяет использовать стандартные команды даже в том случае, если определение команды аннулировано с помощью команды НЕТКОМ. Эти меры предосторожности позволяют избежать непредвиденных результатов при работе макроса, когда он используется на других компьютерах, задействующих тот же файл адаптации (CUI/CUIx).
Прим.: В AutoCAD LT нельзя выполнять отмену определений команд.
Международная поддержка для макросов
При первом создании макроса обычно используются имена команд и значения параметров на знакомом пользователю языке программы. Команды и параметры имеют собственные локальные и глобальные имена, что позволяет использовать макросы на других языках. Поддержка локализованных элементов не требует много дополнительной работы. Перед командой или параметром необходимо просто вставить знак подчеркивания (_). Он указывает программе на то, что перед выполнением имя команды или значение параметра необходимо перевести на локальный язык программы.
Использование режима выбора одного объекта
Метод выбора объектов «Единственный» отменяет повторение запроса о выборе объектов в командной строке. После выбора одного объекта и ответа на другие запросы команда завершается.
Рассмотрим следующий пример:
^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).
Для решения этих проблем приняты два специальных соглашения.
- Точка с запятой (;) в макросе соответствует нажатию клавиши ENTER.
- Пробел не добавляется после строк, заканчивающихся символом управления: обратной косой чертой (\) или точкой с запятой (;).
Сравним следующие макросы:
ucs ucs ;
Первый пример начинается с команды ПСК, так как строка заканчивается пробелом, моделируется нажатие клавиши ПРОБЕЛ. В командной строке появится следующий запрос:
Начало ПСК или [Грань/Именованная/Объект/Предыдущая/Вид/Мир/X/Y/Z/Z ось] :
Второй пример начинается с команды ПСК, имитируется нажатие клавиши ПРОБЕЛ, а затем нажатие клавиши ВВОД, принимается значение по умолчанию («Мир»).
Подавление эхо-вывода и запросов в макросах
Символы макроса дублируются в командном запросе, как если бы они были введены с клавиатуры. Дублирование на экране называется “эхо-выводом“. Можно подавить эхо-вывод макроса с помощью системной переменной MENUECHO. Если эхо-вывод и запросы для элемента меню включены, их можно временно отключить в макросе с помощью последовательности ^P . Можно также использовать в макросе последовательность ^Q , чтобы подавить отображение всех запросов и ввод из журнала командной строки.
- Специальные управляющие символы в макросах команд
Макросы команд поддерживают использование специальных символов, применение которых эквивалентно нажатию клавиши на клавиатуре или заданию паузы для ввода данных пользователем. - Приостановка выполнения макросов для пользовательского ввода
Макросы могут быть приостановлены с помощью обратной косой черты (\) в месте, где требуется ввод данных пользователем. - Замена элементов пользовательского интерфейса с помощью макросов
Можно заменить содержимое активных раскрывающихся меню, кнопок мыши, меню мозаики изображений, кнопок планшета или меню планшета. Можно подставлять как элемент интерфейса пользователя того же типа, определенный в основном файле CUIx, так и элемент из загруженного файла частичной адаптации. - Использование условных выражений в макросах
Условные выражения можно добавлять в макрос путем использования команды, содержащей макровыражения на языке DIESEL. - Использование AutoLISP в макросах
Создание команд, использующих AutoLISP, является более совершенным способом использования функции адаптации.
На уровень выше: Адаптация команд
Понятия, связанные с данным
- Специальные управляющие символы в макросах команд
- Приостановка выполнения макросов для пользовательского ввода
- Замена элементов пользовательского интерфейса с помощью макросов
- Использование условных выражений в макросах
- Использование AutoLISP в макросах
- Адаптация команд
- Адаптация пользовательского интерфейса
