макросы vba в автокаде что это

Приложение AutoCAD 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:

Источник

Автоматизация рутинных операций между Excel и AutoCAD при помощи VBA

Уже не первый год я встречаю на профильных форумах мнение, что VBA для AutoCAD отмирает, и AutoDesk не будет его включать в следующих релизах в дистрибутив, и вообще, истинные падаваны пользуются lisp, C# и прочим, но только не VBA.

Я инженер-проектировщик ОВиК, не программист. И не хочу, да и некогда, вникать в серьезное программирование. Чаще всего появляется ситуация, что нужно как-то автоматизировать рутину здесь и сейчас. На помощь приходит простой язык VBA.

Далее я покажу, как можно без особых забот сделать самому то, за что серьезные ребята берут не плохие денежки. А именно перенос данных из Excel в AutoCAD и обратно. Заинтересованных прошу под кат.

Программировать будем на стороне Excel — мне так проще. Для подключения нужно войти в режим разработчика: Alt+F8 Либо можно открыть вкладку «разработчик» из настроек ленты.

В окне разработчика VBA входим в верхнее меню: Tools/References. В этом окне нужно поставить галочку на вашей версии AutoCAD

В моем случае это AutoCAD 2014 Type Library. Далее нужно в левом окне создать в вашей книге модуль, как на скриншоте (Module)

И в модуль вставляем нижеприведенный код:

Аналогичным способом можно создавать блоки с атрибутами, в которые можно вставлять текст из ячеек.
Нужно внести в верхний код изменения вроде:

Код обновления текста по хэндлу — написан ниже: ‘получаем хэндл из ячейки, в которую мы записали кодом выше.

entHandle = ActiveCell.Offset(0, 3).Value ‘получили наш блок по хэндлу
Set blockObj = acadDoc.HandleToObject(entHandle)

А дальше делаем всё то же самое, что и выше.

Для того, чтобы немного разъяснить как это работает вживую — записал видео:

Как видите, кода минимум, однако на больших объектах мне экономит по несколько часов работы. И снижается риск ошибки. Т.к. обычно это выглядит следующим образом у проектировщиков — открываются два окна на разных экранах, и или вручную, или через буфер обмена начинается заполнение выносок или блоков на чертеже.

Опять же чем хорош VBA — что он всегда под рукой 🙂 Excel-то основной инструмент у инженера.

Источник

Програмирование в AutoCAD с помощью VBA.

Следующие шаги

Это был быстрый тур по ActiveX Automation, но вы могли оценить свои возможности. ActiveX Automation является простым способом настроить AutoCAD, и VBA позволяет это делать самостоятельно каждому, от новичка до эксперта. Много приложений, включая Microsoft Word и Excel, поддерживают программирование с помощью ActiveX Automation, так же как большинство проффесиональных средсв разработки типа Borland Delphi.

Изучение интерфейса VBA


Оформление внешнего вида программы на VBA

Откройте меню Insert menu и выберите UserForm. Появяться два новых окна. Первое, называемое Project-UserForm1 (UserForm), это конструктор форм. Вы должны использовать его для графического конструирования форм. Второе окно, называемое Toolbox, содержит различные объекты, которые вы можете добавить к форме.

Прежде всего, посмотрите на новое имя формы: UserForm1. Каждый VBA-проект, каждая форма и модуль внутри проекта, и каждый объект и каждый объект в каждой форме имеет свое имя. Когда вы начинаете проект, добавляете новую форму к проекту, или добавляете новый объект к форме, VBA создает имя по умолчанию. Я думаю, что вы будите изменять эти имена на другие, что нибудь значащие для вас. Нажмите правой кнопкой мыши на Project в Project Explorer и выберите Project Properties из всплывающего меню. Измените имя проекта на VbaDemo и нажмите на OK.

Рисунок 1. Меню Properties

Рисунок 2. Меню Toolbox

Теперь вы готовы углубиться в Toolbox (ниже слева) и спроектировать свою собственную форму. Чтобы добавить управление к вашей форме, кликните на иконке в панели инструментов Control, а затем кликните на форме. Если Вы не уверены, какой вид управления представляет определенная кнопка в пaнели инструментов Control, подведите курсор мыши на несколько секунд к иконке, и тогда отобразиться описание того, что собой представляет данная иконка. Верхняя левая точка иконки расположиться в той точке, на которую вы укажете в форме. Вы можете изменить размер иконки управления перемещая любой из его углов или граней, точно так же как Вы мог бы изменять размеры Проводника Windows.

Рисунок 3. Общий вид формы

Вы можете также установить его свойста Top, Left, Height, и Width в окне свойств (Properties). Дале добавте две командные кнопки к форме. Измените имя первой кнопки на SayHello и ее заголовок на Say Hello, а затем измените имя второй кнопки на AskQuestion и ее заголовок на Ask a Question. Ваша первая форма должна быть похожа на ту, которая показана на рисунке 2.

Читайте также:  Что такое цифровая маркировка товаров

Работа с пользователем.

Теперь, когда интерфейс с пользователем завершен, вам нужно добавить немного кода за сценой. VBA в AutoCAD R14.01 и R2000 имеет встроенную связь с AutoCAD, в отличие от R14, где нужно вручную подключать VBA к AutoCAD.

Я уверен что Вы стремитесь видеть все это в действии. Выберите General из падающего меню Objects и Declarations из падающего меню Events, и затем добавьте следующие переменные для образования связи: Private ThisApplication As Object

Если вы используете AutoCAD 14.01 или 2000, вы можете удалять весь код что вы набрали. Как я упомянул, Вы имеете встроенный объект ThisDrawing который представляет текущий чертеж. Он имеет свойство Application которое вы можете использовать для вызова любых методов объекта Application.

Получение ответа

После того как вы подключились к AutoCAD, вам необходимо добавить немного кода к вашему приложению что бы оно занало, что делать, когда пользователь что-то делает. Сделайте двойной щелчек мыши на кнопке SayHello в вашей форме. Обратите внимание что ваш редактор кода перемещается к событию Click кнопки. Это событие по умолчанию для управления кнопкой. Если вы желаете немного другое событие, Вы можете просто выбрать его из правого падающего списка.

Как минимум, вы дадите для MsgBox сообщение для отображения, но этот метод может больше, если ему дать больше информации. К примеру, он может задать вопрос пользователю и сообщить его вам. Выберите AskQuestion из меню Object в редакторе кода; редактор снова предположит что вам нужно событие Click. Добавьте следующий код:

If (MsgBox(«Is it raining out?», vbYesNo, «Hey, Weatherman!») = vbYes) _ Then MsgBox «Better close the window!» Else MsgBox «Enjoy the nice day!» End If

Когда вы укажите MsgBox отобразить кнопки Yes и No, вы можете проверить код возврата что бы определить, какую кнопку нажал пользователь. Если возвращаемое значение эквивалентно встроенной константе vbYes, пользователь нажал кнопку Yes. И как вы можете догадаться, нажатие кнопки No будет возвращать значение vbNo.

Готовы видеть результаты ваших усилий? Запустите программу на выполнение выбрав Run из меню Run. Ваша форма отобразиться в окне AutoCAD, и выступающие кнопки будут настаивать на ответе. Немного поотвечайте на вопросы, а затем возвращайтесь, когда вы утомитесь отвечать на вопросы. Ваше приложение прочти закончено, но оно не содержит одной важной детали. Приложение запускается из среды разработки VBA, но как оно будет загружаться внутри AutoCAD? Никакие силы не заставят без этой детали запуститься приложению из командной строки AutoCAD. Что бы это сделать, вам необходим метод-помощник. Откройте в VBA меню Insert и выберите Module. Измените имя модуля на AppStuff, и введите следующий код в редакторе:

Public Sub VbaDemo() MainWin.Show End Sub Сохраните ваш VBA-проект, затем переключитесь в командную строку AutoCAD и наберите vbarun AppStuff.VbaDemo. Ваша форма отобразилась на экране!

В данном уроке мы охватим понятия настройки AutoCAD с помощью VBA. Мы создадим FancyText, Простое VBA-приложение, которое будет создавать привязанный текст под любым уголом на текущем уровне. Если Вы сталкиваетесь с проблемами (или только слишком ленивы чтобы набрать код), FancyText доступен на Web-сайте CADALYST.

Создание формы

Второе окно, под названием Toolbox, содержит различные объекты которые вы можете добавлять к форме. Я скоро опишу процесс создания форм, но прежде всего посмотрите на на новое имя формы: UserForm1. Каждый VBA-проект, каждая форма и модуль в проекте, и каждый объект в каждой форме имеет свое имя. Когда вы начинаете проект, добавляете новую форму к проеку, или добавляете новый объект к форме, VBA создает имя по умолчанию. Я всегда изменяю эти имена по умолчанию на что-нибудь более значимое. Кликните правой кнопкой мыши на Project в Project Explorer и затем выберите Project Properties из всплывающего меню. Измените имя проекта на FancyText и кликните на OK. Далее найдите окно под названием Properties. Вы наверно помните, что большинство объектов имеют различные свойства, которые определяют внешний вид этих объектов. Окно Properties позволяет вам легко устанавливать эти свойства. Прямо сейчас, в падающем меню в верху окна должно находиться UserForm1 UserForm. Это падающее меню содержит каждый объект, который вы расположили на форме. Ниже в этом падающем меню находится длинный список свойств формы: Caption, Height, Top, и множество других.

Создание интерфейса пользователя

Теперь вы готовы начать создание интерфейса пользователя для FancyText. Кликните на конструкторе форм, что бы активировать панель инструментов (Toolbox). Что бы расположить объект на форме, кликните на соответсвующей иконке в панели инструментов, а затем переместите его в конструктор форм. Когда вы перемещаете объекты по форме, вы можете видеть что перемещаемый объект выделен с внешней стороны.

После того, как вы расположили объект, вы можете изменить его размеры, или с помощью мыши, или устанавливая его свойства top, left, height, и width в окне Properties. Пользователи нашей программы будут нуждаться в изменении высоты текста, поэтому разместите метку (label) и блок текста (textbox) из панели инструментов на форму. Кликните на метке, переместите ее в окно Properties, и измените ее имя на lblHeight и ее заголовок на Height. Кликните на блок текста и измените его имя txtHeight.

Что-бы позволить пользователям вращать текст добавьте еще одну метку и блок текста вместе со слайдером (SpinButton). Пользователи теперь смогут вводить угол поворота непосредственно в блок текста, или использовать слайдер для изменения угла вращения при одном нажатии на один градус.

Измените имя новой метки на lblRotation и ее заголовок на Rotation. Измените имя нового текстового окна на txtRotation, и затем измените имя слайдера на spnRotation. Что бы пользователи могли вводить текст, добавьте еще одну метку и еще один блок текста.

Измените имя метки на lblText и ее заголовок на Text:, после этого измените имя блока текста на txtText.Finally, и добавьте кнопку управления (CommandButton) к форме. Измените ее имя на cmdGo и ее заголовок на Go! Нажатие на уту кнопку будет вызывать создание текста. Ваша форма должна выглядеть как показано на рисунке 4.

Рисунок 4. Окно ввода данных для Fancy Text.

Создание кода программы

Теперь, еогда интерфейс пользователя завершен, вы должны добавить немного кода. Объект ThisDrawing обеспечивает автоматическую связь с AutoCAD так что вам не нужно вручную обеспечивать это соединение, хотя это и описано здесь.

Одно VBA-приложение может управлять любым количеством поддерживающих VBA приложений. К примеру, вы можете использовать VBA что-бы создать список материалов извлекя инормацию из атрибутов в вашем черетеже и перенести его в таблицу в Excel. Вы можете даже использовать среду AutoCAD VBA что бы создавать приложения, не связанные с AutoCAD. Как всегда, добавление гибкости означает добавление лишней работы, но к счастью, эта работа не слишком напряженная.

Читайте также:  Что щелкает под капотом после остановки двигателя

Private mappAcad As Object

Работа с вашим первым приложением

В уроке 3 мы начали ваше первое VBA-приложение для AutoCAD, FancyText. Вы создали диалоговое окно и теперь вы готовы работать с тем, что пользователь будет в них вводить. Готовы? Переместимся в событие Click объекта CmdGo (командная кнопка). Когда что-нибудь произойдет, ваша програма должна прежде всего проверить то что введено пользователем. Она должна проверить тип текста и его наличие, и обратить внимание пользователя, если он что-то забыл ввести. Наберите:

If (Trim(txtText.Text) = «») Then MsgBox «Please enter some text!» txtText.SetFocus Exit Sub End If

Изучение свойства Text блока текста сообщит вам, если пользователь забыл заполнить его. Используйте SetFocus tчто бы переместить курсор на поле, где отсутствует информация, что сделает Fancy Text более дружественной к пользователю. В противном случае пользователь должен будет сам перейти на незаполненное поле. Проверка высоты текста более сложна. Вы можете использовать 5 различных систем едениц что-бы вводить растояние в AutoCAD, и Fancy Text принимает ввод пользователем в текущих еденицах чертежа. Мало того, что Вы должны проверить что пользователь ввел высоту, вы так же должны конвертировать высоту в число:

If (Trim(txtHeight.Text) = «») Then MsgBox «Please enter a text height!» txtHeight.SetFocus Exit Sub End If Dim unit% unit% = mappAcad.ActiveDocument._ GetVariable(«LUNITS») On Error Resume Next Dim height# height# = mappAcad.ActiveDocument._ Utility.DistanceToReal(_ txtHeight.Text, unit%) If (Err.Number <> 0) Then MsgBox «Please enter a » & «valid text height!» txtHeight.SetFocus End If Используйте GetVariable() что бы получить значение любой системной переменной AutoCAD или переменной окуржения, подобно тому, как вы используете функии (getvar) и (getenv) в AutoLISP.

После того, как вы определили текущие еденицы чертежа, вы можете использовать метод DistanceToReal() объекта Utility что бы конвертировать расстояние из строковой переменной в числовую. Ошибка происходит когда конвертация не удается, поэтому при попытке конвертации вы должны осуществлять проверку на возможность ошибки, и сообить пользователю, если введенная высота не может быть сконвертирована. Теперь вы почти готовы начать создание текста, но вам еще нужна центральная точка текста. Переместимся в начало события Click и добавим несколько констант:

Const L_PT_FIRST = 0 Const L_PT_X = 0 Const L_PT_Y = 1 Const L_PT_Z = 2 Const L_PT_LAST = 2

Точка представляется в VBA как массив из трех элементов типа doubles. Эти константы помогут вам легко объявит точечные переменные и доступ к параметрам этих точек. Теперь переместимся в конец события Click.

Когда форма должна быть скрыта

Dim ptPickd As Variant Dim ptInsert#(L_PT_FIRST To L_PT_LAST) Me.Hide mappAcad.ActiveDocument.Utility._ InitializeUserInput 1 + 2 ptPickd = mappAcad.ActiveDocument._ Utility.GetPoint(, «Pick the » _ & «center point for the text: «) ptInsert#(L_PT_X) = ptPickd(L_PT_X) ptInsert#(L_PT_Y) = ptPickd(L_PT_Y) ptInsert#(L_PT_Z) = ptPickd(L_PT_Z) Метод InitializeUserInput() позволяет вам указать какой метод семейства GetXxx проверяет ввод пользователя; аргумент 1 + 2 говорит GetPoint() что бы он игнорировал нулевой ввод. После того как у вас есть точка, вы должны сконвертировать ее. GetPoint() возращает точку как Variant, но большинство функций VBA, которые используют точки требует трех-элементный массив типа double. Вы должны выполнить черную работу копирования x-, y-, и z-координат точки из Variant в массив типа double.

Черчение текста

Dim objText As Object Set objText = mappAcad.ActiveDocument._ ModelSpace.AddText(txtText.Text, _ ptInsert#, height#)

Все функции типа Add возвращают последний созданный примитив. Вам необходимо ссылаться на них несколько раз, так что за ними необходимо следить. Создание обводки текста более сложный процесс. Что бы начать обводку нам нужно знать какую площадь занимает текст. К счастью каждый примитив имеет метод GetBoundingBox который обеспечивает вас нжней левой и верхней правой координатами:

Создание обводки

Теперь вы готовы создавать обводку, которая будет выполнена с помощью полилинии. Здесь мы встретимся с другой причудой VBA.

В отличии от большинства других примитивов, полилинии не имеют z-координату, что означает массив координат должен иметь только восем элементов, а не двенадцать:

Теперь будем вращать текст и его обводку. Большинство людей представляет себе углы в градусах, но VBA требует их в радианах. Необходимо сконвертировать угол вращения перед тем как он будет передан в метод Rotate.

Const L_PI = 3.14159 objText.Rotate ptCenter#, _ (txtRotation.Text * L_PI / 180#) objOutline.Rotate ptCenter#, _ (txtRotation.Text * L_PI / 180#) И наконец, переместим текст и его обводку так что бы их центры совпали с точкой, указанной пользователем. objText.Move ptCenter#, ptStart# ptCenter#(L_PT_Z) = 0 objOutline.Move ptCenter#, ptStart# Теперь, обновим текст и его обводку на экране, освободим наши ссылки на них и выгрузим: objText.Update objOutline.Update Set objOutline = Nothing Set objText = Nothing Unload Me

Наше приложение FancyText теперь завершено. Сохраните вашу работу, а затем протестируйте. Вы должны быть способны создавать текст любого размера и под любым углом. После того как вы убедитесь, что все работает правильно нам остается выполнить последний штрих, что бы завершить программу.

Последние штрихи

FancyText отлично работает из среды VBA IDE, но я думаю вам будет приятно запустить ее из командной строки? Добавьте новый модуль к вашему проекту, установите его имя (Name) в «modApps», и затем добавьте следующие процедуры к модулю:

Теперь вы знаете как создавать диалоговые окна для взаимодействия с пользователем, как добавлять новые примитивы к чертежу, и как манипулировать текстовыми примитивами в чертеже. Вы можете улучшить FancyText различными способами, включая установку высоты текста по умолчанию к текущей высоте текста по умолчанию в AutoCAD и добавление дополнительных типов обводки. Версия FancyText доступная на Web-сайт журнала CADALYST добавляет прямоугольные и круговые текстовые стили. Я был бы заинтересован узнать, как Вы улучшите ее.

Источник

Программирование на VBA

Введение. Обзор команд. Объектная модель

Введение

Интерфейс AutoCAD ActiveX/VBA дает некотoрые преимущества по сравнению с другими методами создания приложений AutoCAD :

Понятие внедренных и глобальных проектов VBA

Загрузка существующего проекта

Определение компонентов проекта

Проект может состоять из различных компонентов:

Обзор команд VBA AutoCAD

Основные понятия объектной модели AutoCAD

Через объект Application можно получить доступ к следующим объектам:

Через объект Preferences можно получить доступ к следующим объектам

Через объект Documents можно получить доступ к объекту Document а через него к большинству других объектов и коллекций:

Доступ к иерархии объектов. Коллекции, свойства и методы

Когда используются глобальные проекты, ThisDrawing всегда ссылается на активный документ. При использовании внедренных проектов ThisDrawing всегда ссылается на документ, содержащий проект. Например, следующая строка кода в глобальном проекте сохраняет любой чертеж, который в данный момент активен:

Ссылка на объекты в иерархии объектов

Доступ к объекту можно получить непосредственно или через объектную переменную. Для непосредственной сслыки на объект достаточно указать полный путь к нему в иерархии. Например, следующий фрагмент кода добавляет линию в пространство модели:

Для доступа к объекту через объектную переменную поступаем следующим образом. Определяем переменную желаемого типа, после чего устанавливаем переменную так, чтобы она ссылалась на нужный объект. К примеру следующий код определит объектную переменную moSpace типа AcadModelSpace так, чтобы она ссылалась на текущее пространство модели :

Читайте также:  огулов а т гипоксия перезагрузка мозга и исцеление

Коллекции объектов

Доступ к коллекции

Добавление нового элемента коллекции

Следующий пример создает слой и добавляет его в коллекцию:

Перебор членов коллекции

Пример поиска слоя с именем ABC :

Удаление члена коллекции

Пример удаления слоя:

Удаленный объект восстановлению не подлежит.

Понятие свойств и методов

Понятие родительского объекта

Библиотеки типов

Описание объектов, свойств и методов хранятся в библиотеке типов, с помощью которой браузеры и приложения могут определить характеристики объектов. Прежде чем использовать объекты автоматизации, следует создать ссылку на библиотеку типов. Это нужно для того, чтобы глобальные функции были доступны непосредственно без подготовки. Вызовы функций при этом могут контролироваться компилятором на корректность. Увеличивается надежность и читабельность программы.

Получение первого примитива из базы данных рисунка

Применение variant в методах и свойствах

Интерпретация variant-массивов

Использование других языков программирования

Следующий пример демонстрирует создание линии в VB и VBA

Управление окружением AutoCAD

Открытие, сохранение и закрытие чертежа

Источник

Автоматизация работы в AutoCAD при помощи макросов

А раз и в том и в другом случае это всего лишь последовательность команд, то для автоматизации AutoCAD нам достаточно четко понимать последовательность команд, которые нужно выполнить, чтобы получить требуемый результат.

Сценарии AutoCAD

Положительные моменты: AutoCAD скрипты могут содержать длинные списки инструкций для AutoCAD. Все файлы сценариев AutoCAD можно хранить в одном месте на сервере. Если вам необходимо обновить или изменить файл сценария, достаточно изменить его в одном месте для всех пользователей. Сценарии AutoCAD могут содержать комментарии, напоминающие, что делает скрипт или его отдельные строки.

Сценарии, написанные на LISP работают только в полноценных версиях AutoCAD или вертикальных решениях, например, AutoCAD Electrical, но не работают в AutoCAD LT.

Отрицательные моменты: Требуются определенные навыки для загрузки сценариев и знание места, где они хранятся.

AutoCAD Макросы

Отрицательные моменты: Макросы довольно долго создавать, и порой весьма сложно отлаживать их работу. Кроме того, при обновлении версии AutoCAD придется создавать макросы для новой версии сначала.

Для достижения наилучшего результата можно макрокомандой вызывать необходимый сценарий.

Автоматизация вывода на печать

В предыдущей статье, мы научились создавать сценарии, изучая команды и ответы на запросы AutoCAD в командной строке. В итоге был получен сценарий, автоматизирующий получение чертежа в формате *.PDF.

Для перевода сценария в макрокоманду необходимо написать то же самое, но в одну строку, используя в качестве разделителей, точку с запятой (;):

^C^C-ПЕЧАТЬ;д;;DWG to PDF.pc3;ISO A4 (210,00 х 297,00 мм);м;а;н;г;в;ц;д;monochrome.ctb;д;о;;н;д;

Обратите внимание, что, вместо переноса строки в макросах используют точку с запятой. В тех местах где нажимается Пробел или Enter также ставят точку с запятой.

^C^C – в начале команды, аналогично двойному нажатию Esc на клавиатуре. Эта операция должна отменить любые другие команды, которые выполнялись перед вашим макросом.

Запуск и отладка макросов

Используя сочетание клавиш CTRL + 3, откроем Инструментальные палитры.

Щелкните правой кнопкой мыши по любой пустой области на палитре и выберите Создать палитру, чтобы создать новую пустую палитру, которую мы будем использовать для тестирования нашего макроса. Вы можете сразу задать имя вашей палитре, например, Моя.

Эта инструкции предназначена для AutoCAD 2014 или более поздней версии. Предыдущие версии могут иметь некоторые отличия в названии команд и окон.

Щелкните правой кнопкой мыши по любой пустой области новой палитры и выберите Адаптация команд…. Это вызовет появление окна Адаптация пользовательского интерфейса.

Наберите «сценарий» в поле поиска, чтобы найти команду Сценарий.

Перетащите команду Сценарий из окна Адаптация пользовательского интерфейса на вашу палитру. Нажмите ОК в окне Адаптация пользовательского интерфейса, чтобы его закрыть.

Конечно, теоретически, вы не должны использовать команду Сценарий для тестирования макроса, но в AutoCAD нет команды Выполнить макрос.

Чтобы добавить свою макрокоманду к новой кнопке на панели инструментов, щелкните правой кнопкой мыши на кнопке палитры инструментов Сценарий, и в контекстном меню выберите Свойства объекта.

В открывшемся окне Свойства инструмента, вы можете вставить свой макрос в строку: Командная строка, добавить Название и Описание вашей кнопке, поменять изображение значка кнопки и т.д.

Нажмите OK, чтобы закрыть диалог и сохранить макрос.

Теперь можно нажать на новую кнопку и посмотреть, что происходит!

Если макрос сработал правильно – великолепно. Если нет, то нажмите на клавиатуре F2, чтобы открыть Текстовое окно AutoCAD. В нем вы увидите, что произошло, и может, даже поймете, что необходимо исправить, чтобы ваш макрос заработал.

Отладка макросов весьма увлекательный процесс!

Примеры макросов

Вот примеры макросов, которые можно использовать для ускорения некоторых операций в Autocad Electrical, например:

Расчленить все блоки на простые геометрические и текстовые объекты с сохранением заданных значений текстовых атрибутов.

Добавляем в предыдущую команду зуммирование в реальном времени.

Очистка чертежа от неиспользуемых элементов, таких как определения блоков, слои, типы линий и т.п.

Специальные символы, применяемые в макрокомандах

(обратная косая черта)

(прямая косая черта)

Символ Наименование
; или ^M, или Пробел Соответствует нажатию на клавиатуре Enter или Пробел.
Пауза выполнения команды, предусматривающая необходимость ручного ввода данных мышкой или с клавиатуры.
Заменяет обратную косую черту в записях путей доступа к файлам, при использовании путей в макросах.
Применяется в локализованных (например, в русскоязычной) версиях AutoCAD. Ставиться перед некоторыми командами на английском языке.
@ Символ последней указанной на экране точки.
^C^C Тоже, что двойное нажатие клавиши Esc. Практически все макросы начинаются этими символами.
* Префикс (*) служит для бесконечного повторения макроса. Выход из команды осуществляется нажатием клавиши Esc.
Применяется перед «прозрачной» командой, например, ‘_ОРТО.
$, $M= Специальный символ, предназначенный для ввода выражений, написанных на языке DIESEL.
^Z Подавляет автоматическое добавление пробела, появляющееся на конце макроса.
( ) В скобках записываются выражения, написанные на языках LISP и DIESEL. А также применяется для записи вложенных выражений калькулятора в полной версии AutoCAD.

Для чего нужны макросы?

Написание макросов для AutoCAD может быть интересным и увлекательным занятием. Вы можете создавать простые макросы, которые помогут вам экономить время на рутинные операции. Вы можете создать макросы для построения рисунков по нажатию всего одной кнопки. Можно при помощи макроса добавить на чертеж форматку вашего предприятия и стандартные слои, стили и т.п. Или вы можете создать на Инструментальной палитре кнопки для вызова макросов команд, которые вы наиболее часто используете. Да мало ли чего еще. Дерзайте!

Создание, тестирование и отладка макроса в AutoCAD Electrical 2018

Как создавать, тестировать и редактировать макросы в AutoCAD Electrical 2018 смотрите в следующем видео:

Источник

Образовательный портал