Как сделать кнопку в автокаде
AutoCAD. Макросы команд. Часть 1: Создаем свою кнопку
[Общие слова об автоматизации]
Когда об AutoCAD говорят как о «САПР», мне всегда хочется внести уточнение: «голый» AutoCAD это еще не САПР (система автоматизированного проектирования), а универсальная платформа (можно даже сказать «заготовка») для создания САПР под свои нужды. Ведь именно автоматизации в свежеустановленной программе как раз и нет, но зато есть колоссальные возможности по ее внедрению!
И большинство пользователей рано или поздно начинают потихоньку упрощать себе жизнь: создают свои шаблоны, осваивают поля, динамические блоки, наполняют ими палитры, запоминают псевдонимы команд и т.д. Это, можно сказать, «начальный уровень» автоматизации. По другую сторону лежит программирование в чистом виде: код в AutoCAD можно писать на встроенном LISP или VBA, или же вообще создавать внешние плагины и расширения (add-ons) под свои узкоспециализированные нужды. Возможности тут открываются поистине фантастические, но разобраться в этом уже сложнее, все-таки, программирование — это отдельная профессия. И туда мы (пока что) не полезем.
Кстати, стоит отметить, что писать код с нуля нужно далеко не всегда — в сети есть огромное количество различных LISP-ов и аддонов (как платных, так и бесплатных) для решения практически любых задач, главное, хорошо поискать.
[Собственно, о макросах]
Но если до программирования вы пока не доросли, а автоматизировать свою рутину ну очень хочется, советую обратить внимание на макросы. Чтобы не было путаницы, уточним, речь в статье пойдет о макросах (макрокомандах), набранных пользователем в текстовом виде.
Просто еще в программе есть возможность записывать действия пользователя через рекордер операций, и это тоже будет называться «макросом». Но о рекордере операций мы (может быть) напишем отдельную статью, а еще есть «сценарии» и это отдельная тема. В общем, писать и писать мне. =)
Под макросом мы будем понимать последовательность действий с использованием стандартных команд AutoCAD, которую программа будет выполнять по нажатию всего одной кнопки. Например, создание в документе нового слоя с конкретными параметрами или построение прямоугольника с заданными размерами. Эти примеры довольно простые, но зато понятные каждому. В целом же, возможности макросов довольно велики, но мы будем двигаться постепенно.
Перед тем как записать макрос, нужно понять где же мы его разместим? — Речь о той самой кнопке, по нажатию на которую и будет происходить вся магия. Вариантов тут несколько. Я предлагаю рассмотреть два самых популярных — кнопка на панели быстрого доступа и кнопка на палитре. В общем-то именно созданию кнопок и посвящен данный материал. Это вводная статья небольшого цикла о макросах. А учиться писать сами макросы мы будем уже во второй части.
[Создаем кнопку. Способ первый: кнопка на панели быстрого доступа]
Справа на панели быстрого доступа есть маленькая стрелка, нажмем на нее и выберем в выпадающем списке пункт Другие команды:
Другой способ сделать тоже самое, это перейти в ленте на вкладку Управление и нажать на кнопку Пользовательский интерфейс:
В любом случае откроется подобное окно:
Не забудьте нажать на стрелку внизу справа, чтобы оно приобрело более полный вид. Слева мы видим список всех команд. Когда видишь его в первый раз, приходит осознание, что команд в программе намного больше, чем выведено кнопок на панелях. Над списком расположена строка поиска, которая помогает не потеряться. Если поставить курсор на конкретную команду, мы увидим более подробную информацию о ней:
Если внимательно все рассмотреть, становиться понятно, что любая кнопка в ленте это просто ярлычок для соответствующего макроса. Теоретически, можно даже переопределить работу штатных кнопок. Но мы этого делать не будем. А создадим свою команду.
Для этого, нажмем на «звезду с солнышком», заполним поле имя команды и поле макроса. В качестве «теста», сделаем макрос, который запускает команду _audit (ПРОВЕРИТЬ) и сразу исправляет системные ошибки в документе. Название команде можете дать любое, а код макроса будет следующий:
^C^C_audit;_y;
Лучше скопировать его прямо отсюда. Во второй части мы подробно разберем данную строку и вам станет понятно, что именно там записано.
Также, можно сделать какую-то красивую (или не очень) иконку для нашей команды. За основу возьмите любую существующую иконку, затем нажмите Изменить. Откроется довольно примитивный редактор, в котором можно дорисовать что-то к выбранному изображению, или же очистить все и создать свой шедевр с нуля. Не забудьте его сохранить (вас спросят про имя файла, задайте любое). А затем закройте редактор. Картинка в помощь:
Наша команда готова, теперь находим ее в левой части окна адаптации и с зажатой левой клавишей мыши тащим ее на панель быстрого доступа:
Будьте внимательны, после этого в окне адаптации обязательно нужно нажать Ок или Применить. Если просто закрыть окно, изменения не сохранятся!
Кстати, так можно вытащить на панель абсолютно любую команду, которая изначально отсутствует на ленте. Например, здесь мы вытаскивали кнопку регенерации. В ролике по ссылке можно увидеть весь процесс вытаскивания кнопки (начиная с 1:42 по таймкоду). Посмотрите его, если данная статья вызывает затруднения.
Все, кнопка готова, можно пользоваться.
Для пробы откройте какой-нибудь старый (а лучше очень старый) dwg файл и проверьте его на ошибки. Их может 0, а может быть очень много — отчет будет выведен в командной строке.
От штатной команды наш макрос отличается тем, что сразу исправляет ошибки, без дополнительных запросов и действий со стороны пользователя. Советую регулярно выполнять данную команду — она поддерживает «здоровье» вашего файла и по моим наблюдениям снижает количество «глюков», «вылетов» и зависаний программы. Ошибки в процессе работы появляются сами по себе, обычно в процессе копирования больших объемов данных через буфер обмена. Отмечу, что речь идет именно о внутренних системных ошибках файла, а не об ошибках в том, что вы нарисовали =)
[Создаем кнопку. Способ второй: кнопка на палитре]
Инструментальные палитры используются для организации пользовательских панелей инструментов: на них можно размещать блоки, таблицы, выносить стандартные инструменты с дополнительными свойствами, создавать кнопки для вызова LISP приложений и макросов (это-то нам и нужно) и т.д. Вообще, палитры — очень обширная тема, заслуживающая отдельной статьи. Здесь же мы пройдемся по самым «верхам». Итак, открываются палитры сочетанием клавиш CTRL+3
Стандартные палитры нам не особо интересны, поэтому сразу создадим свою. Для этого щелкнем правой кнопкой мыши на левом «корешке» палитры и выберем пункт Создать палитру
Сразу зададим ей имя (например, «Моя первая палитра»).
По-хорошему, надо бы создать для нашей палитры свою группу и поместить ее туда, чтобы можно было скрыть остальные (стандартные) палитры, но в данном случае это необязательно. Если у меня дойдут руки до написания отельной статьи про палитры, там я расскажу об этом.
Теперь нужно добавить на палитру красок, т.е кнопок, на которых мы сможем размещать наши макросы. Для этого снова зайдем в адаптацию команд (как мы делали в начале статьи), но для разнообразия сделаем это другим (уже третьим по счету) способом. Нажмем правой кнопкой мыши в пустом месте нашей палитры, и выберем пункт Адаптация команд:
Откроется уже знакомое нам окно. В нем берем абсолютно любую команду, и удерживая левую кнопку мыши перетаскиваем ее на палитру, после чего отпускам кнопку, закрываем окно адаптации.
На палитру можно поместить любую команду, а потом «переделать» ее до неузнаваемости под собственные нужды. Нам просто была нужна донорская кнопка. Нажмем на ней правой кнопкой мыши и выберем пункт Свойства объекта:
В открывшемся окне изменим название команды, описание (это по желанию) и главное, вставим наш макрос ^C^C_audit;_y; в поле Командная строка:
Самое классное в способе с палитрами, это возможность копировать/вставлять инструменты через контекстное меню. Останется лишь изменить название инструмента, текст макроса и изображение
Это способ позволяет очень быстро создавать свои кнопки, формируя из них целые панели со своими инструментами. Например так выглядит одна из моих палитр с LISP приложениями (название инструментов можно скрывать, оставляя только картинки):
[Чему мы научились]
Мы познакомились с понятием макрокоманды, рассмотрели два способа создания пользовательских кнопок, и теперь полностью готовы к написанию своих макросов. О том, как это делается, читайте в следующей статье. В ней мы разбираем синтаксис макросов и рассматриваем несколько конкретных примеров. Главное, что теперь мы знаем куда помещать эти макросы.
Как сделать кнопку в Автокад для LISP-приложения
Если вы используете сторонние приложения lisp и скрипты, то стоит задуматься о создании кнопки в AutoCAD. Не всегда удобно обращаться к инструменту через командную строку. Если вы часто пользуетесь каким-то инструментом, то лучше его вынести в виде кнопки. Это ускорит работу в программе.
Мы рассматривали LISP-приложения для Автокада и как загружать дополнительные скрипты. Теперь разберём, как создать кнопку в Автокаде с новой командой и разместить её на ленте для быстрого доступа.
Создание кнопки доп. скрипта имеет некоторые нюансы. Разберём их на примере.
Создаем новые кнопки в Автокаде для запуска LISP
Чтобы добавить кнопку в Автокад для новой команды, нужно:
1. Прописать путь к файлу, который содержит загружаемое приложение. Такие файлы могут иметь расширение *.arx, *.crx, *.lsp, *.dvb, *.dbx, *.vlx, *.fas.
Вызовите диалоговое окно «Настройки» (можно через командную строку «_options»). Перейдите во вкладку «Файлы», выберите папку «Доверенные местоположения». Затем нажмите кнопку «Добавить». Появится дополнительное поле, в котором необходимо прописать путь.
Далее нажмите «Обзор». Найдите на компьютере папку, в которой хранятся ваши файлы-lisp. После того как путь пропишется в этом диалоговом окне, нажмите «ОK».
2. Вызвать окно адаптации пользовательского интерфейса Автокад (можно через командную строку «_СUI»). Создать новую команду.
Задать название и макрос. Код макроса следует искать в самом файле приложения. Открыть его можно через обычный блокнот.
3. Заключительный этап создания новой кнопки для AutoCAD – это размещение в ленте программы. Для этого нужно воспользоваться поиском: найти вновь созданную кнопку, захватить её левой кнопкой мыши и переместить в подходящую панель. В этом примере: ACAD → Лента → Панели → Главная 2D Рисование → Строка 3.
Как видите, добавить кнопку в Автокад для LISP-приложения не так уж и сложно. Если вы часто используете тот или иной скрипт – обязательно примите это к сведению.
Интерфейс AutoCAD
Главное окно Autocad
Первое, что вы увидите после запуска программы, – это главное окно приложения, которое обладает следующими элементами:
Лента
Изучение интерфейса любой программы начинается с панели меню. Начиная с версии 2009, разработчики полностью изменили интерфейс программы AutoCAD, поэтому привычная панель меню заменена лентой, на которой расположены вкладки. Каждая из вкладок содержит в себе набор инструментальных групп, а на них, в свою очередь, расположены команды для создания и работы с объектами. На ленте присутствуют такие вкладки:
Ленту легко настраивать: например, ее можно свернуть или закрыть. Захватывая мышью край панелей, их можно легко реорганизовать или закрыть (аналогично панелям инструментов в более старых версиях программы). Все эти панели можно редактировать, настраивая тем самым пользовательский интерфейс.
Чтобы скрыть ленту, необходимо нажать кнопку , которая находится справа от названий вкладок ленты. Для раскрытия ленты необходимо повторно нажать ту же кнопку.
Меню приложения
Над лентой в левом верхнем углу экрана AutoCAD расположена кнопка , которая открывает меню приложения. С помощью данного меню можно выполнять различные операции с чертежами, файлами и листами чертежей.
В меню приложения доступны такие подменю:
В правой верхней части меню содержится поле быстрого поиска. Оно позволяет искать необходимые команды в данном меню (для этого следует ввести в это поле нужную команду).
В правой нижней части меню находятся кнопки Параметры (Options) и Выход из AutoCAD (Exit AutoCAD). Они позволяют соответственно изменить настройки и выйти из программы.
Рабочая область
Как уже было отмечено, рабочая область главного окна AutoCAD, в отличие от многих других приложений, безгранична, что позволяет выполнять чертежи объектов в реальных масштабах (например, системы водоснабжения города).
Снизу графический экран обрамляют ярлыки вкладок Модель (Model), Лист1 (Layout1), Лист2 (Layout2) (рис. 1.4). Они используются для переключения между пространствами модели и листа. Треугольные кнопки слева от вкладок позволяют передвигаться по вкладкам (аналогично листам в книге Microsoft Excel) в обоих направлениях. Справа от ярлыков вкладок расположена горизонтальная линейка прокрутки для графического экрана. По умолчанию активной всегда является вкладка Модель (Model).
Основным инструментом разработки чертежей, неразрывно связанным с графической областью, является перекрестие курсора с «прицелом» (а) или без него (б). Перекрестие предназначено для указания координат точек на чертеже при помощи мыши, а «прицел» – для выбора объектов на запрос команд редактирования.
Примечание. Перекрестие курсора автоматически изменяется на перекрестие с «прицелом» при запросе системы выбора объектов в командах редактирования. Обратный процесс происходит, если система запрашивает координаты точки.
Окно команд
Нижняя часть экрана, где расположено приглашение системы в форме Введите команду (Command), представляет собой область, посредством которой в основном происходит диалог пользователя с системой. Здесь отображаются вводимые пользователем команды и ответы (или вопросы) AutoCAD. Последняя строка окна команд, содержащая приглашение Введите команду (Command), называется командной строкой (или строкой подсказки).
Окно команд, как и панели инструментов, можно вывести в любое место экрана, представив его в виде плавающего окна. Кроме того, зафиксировать положение окна команд можно не только в нижней части экрана, как это делается по умолчанию, но и в верхней части экрана – ниже панели меню.
Строка состояния
Важным элементом интерфейса является строка состояния. Во время работы к ней приходится обращаться постоянно, переключая режимы привязки, вычерчивания или же наблюдая за счетчиком координат. Здесь находятся кнопки таких режимов:
Сетка (Grid Display) – видимость узлов сетки;
Шаговая привязка (Snap Mode) — привязка «прицела» мыши к узлам сетки;
Динамический ввод (Dynamic Input) — включает или отключает режим динамического отображения ввода, при котором вводимые или указываемые значения команд отображаются не только в командной строке, но и в специальных полях, перемещающихся вместе с перекрестием курсора;
Режим «орто» (Ortho Mode) – привязка перекрестия мыши к ортогональным плоскостям;
Полярное отслеживание( Polar Tracking) – вычерчивание с использованием полярных углов и координат;
Объектное отслеживание (Object Snap Tracking) — привязка перекрестия мыши к узлам, полученных путем пересечения вспомогательных линий, проходящих через точки знакомства;
Объектная привязка (Object Snap) — привязка «прицела» мыши к узлам других объектов;
Вес линии (Lineweight) — отображает линии с учетом их толщины;
Динамическая ПСК (Dynamic UCS) — включает режим динамической ПСК (пользовательская система координат), что позволяет на время автоматически выровнять XY-плоскость ПСК по плоскости в модели тела при создании ЗD-объектов;
Быстрые свойства (Quick Properties) – отображает панель быстрых свойств.
Расположенные в строке состояния кнопки режимов вычерчивания свидетельствуют об активности режима, если они нажаты, и наоборот – отжатое состояние кнопок означает пассивность соответствующего режима. Включить или выключить какой-либо режим можно мышью, а также при помощи функциональных клавиш F3-F11.
Счетчик координат служит для ориентирования на поле чертежа – он изменяет свое значение при движении курсора мыши по графическому экрану. Счетчик может быть отключен, если нажать на нем правую кнопку мыши и выбрать в контекстном меню команду Выключить (Off). Аналогичным действием счетчик можно вновь включить.
Контекстное меню
Еще одним элементом интерфейса в AutoCAD является система контекстных меню. В общем случае контекстное меню – это специализированное окно с набором команд, предназначенных для работы с активным объектом. Вызывается контекстное меню щелчком правой кнопкой мыши по объекту и появляется рядом с перекрестием курсора.
Примечание. Состав команд контекстного меню зависит от обрабатываемой в момент его вызова команды, а также от клавиши Shift (вызывать контекстное меню можно при нажатой клавише Shift).
В AutoCAD применяются пять основных видов контекстных меню.