Автокад vba enabler что это
Перейти к содержимому

Автокад vba enabler что это

  • автор:

Кулик Алексей aka kpblc

Затрону вопросы ручной загрузки приложений. Именно ручной, поскольку многое из того, что касается автоматической загрузки, освещено в статьях Последовательность загрузки приложений в AutoCAD и Последовательность загрузки приложений в AutoCAD с учетом SECURELOAD.

С lsp-файлами все более или менее ясно: язык таков, что код практически не зависит от версии (уточнение: начиная с AutoCAD R14) и разрядности AutoCAD (при условии, конечно, что все написано корректно). Вопрос касается как раз не-lsp: dvb, arx, dbx. .NET-сборки тоже мелькнут ��

Еще раз подчеркиваю — автоматическую загрузку не рассматриваю. Уж больно много там вариантов ��

  • LSP, FAS, VLX: lisp-коды — обычные, шифрованные, компилированные… Повторяться не хочу, поэтому отсылаю к статье Как использовать лисп, опубликованный на форуме. Там все описано и расписано, даже с картинками ��

Технология загрузки остальных вариантов почти ничем не отличается. Основная проблема — выбрать нужную версию загружаемого файла.

  1. Код может быть защищен паролем. По слухам, есть какие-то методы снятия этих паролей, но лично у меня ни один из них ни разу не сработал.
  2. VBA-модули, как ни парадоксально, зависят от версии AutoCAD. Точнее, от версии vba-интерпретатора и версии MS Forms (которые используются там в полный рост): можно создать отличную форму в AutoCAD 2008, но код такой будет работать только в более поздних версиях. Возможно, сработает в 2007, но, например, 2005 точно откажется обрабатывать такой модуль.
  3. VBA очень болезненно реагирует на разные разрядности AutoCAD: описание проблемы и ответ от ADN DevHelp.
  1. AutoCAD 2006
  2. AutoCAD 2007×32, 2008×32, 2009×32
  3. AutoCAD 2008×64, 2009×64
  4. AutoCAD 2010×32, 2011×32, 2012×32
  5. AutoCAD 2010×64, 2011×64, 2012×64
  6. AutoCAD 2013×32, 2014×32. Возможно, сюда же попадет и 2015×32
  7. AutoCAD 2013×64, 2014×64. Возможно, здесь же будет 2015х64

Советую обратить внимание на следующий момент: я сказал — как правило. Вполне вероятна ситуация, при которой в каждую версию AutoCAD приходится загружать свои собственные версии arx / dbx модулей (ярчайший пример тому — AutoCAD Architecture).

Модуль Microsoft VBA для AutoCAD

Visual Basic for Applications (VBA) — это язык программирования, встроенный во многие приложения, включая офисные программы, САПР, графические редакторы и многие другие. VBA является упрощенной версией языка Visual Basic, имеет схожий с ним синтаксис.

  • легкость освоения,
  • простота использования,
  • универсальность (изучив VBA для AutoCAD, пользователь без труда изучит, например, VBA для Microsoft Word или Excel).

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

Важным отличием VBA для AutoCAD от VBA для других программ является то, что в нем программы хранятся не внутри файлов, а во внешних файлах с расширением DVB.

В последних версиях AutoCAD модуль VBA Enabler не входит в дистрибутив и не устанавливается вместе с самим AutoCAD.

Инструкция по установке

Для установки модуля Microsoft Visual Basic for Applications Module (VBA) для Autocad выполните следующие действия.

Автоматизация рутинных операций между 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 и особенности работы с ним

Visual Basic for Applications (VBA) — это язык программирования, встроенный во многие приложения, включая офисные программы, САПР, графические редакторы и многие другие. VBA является упрощенной версией языка Visual Basic, имеет схожий с ним синтаксис. Среда программирования VBA обычно встроена в саму программу, поэтому пользователь может сразу начинать писать программы или загружать готовые приложения для работы.

Visual Basic

При разработке языка 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 со специальной страницы в интернете

 AutoCAD VBA

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

После скачивания, распаковки и установки модуля AutoCAD VBA Enabler в программе AutoCAD появится возможность работать с приложениями на языке VBA.

Окно редактора VBA (VBA IDE) запускается командой VBAIDE.

Окно редактора VBA

Оно стандартное для языка VBA и ничем не отличается от VBA в других программах.

Обратите внимание, что двоичный формат файлов проектов VBA в AutoCAD не совместим с форматом проектов Visual Basic. Однако, в VBA для AutoCAD можно импортировать формы, модули и классы, хранящиеся в файлах форматов FRM, BAS и CLS соответственно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *