Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:

Программирование в AutoCAD: Переход от VBA к .NET

С выходом AutoCAD 2010, пользователи, которые создают для него приложения в среде Visual Basic for Applications оказались на перепутье. Они еще имеют возможность создавать и запускать проекты на VBA, но эту возможность следует активировать. Для этого следует загрузить соответствующий вашей версии Windows модуль VBA со страницы http://www.autodesk.com/vba-download . С другой стороны, следует учитывать, что Autodesk объявил о переходе от поддержки VBA к .NET неспроста. .NET API более удобно, и что важно, намного более мощно и позволяет создавать команды и функции AutoLISP которе не могут быть созданы с помощью API ActiveX и VBA. В этой статье описаны азы перехода от VBA к .NET в AutoCAD 2010.

С чего следует начать?

Для работы с .NET API, вы должны установить Microsoft Visual Studio. Visual Studio - это платформа для разработки программ, которая позволяет создавать приложения с использованием .NET Framework. Существует много версий Microsoft Visual Studio, большинство из которых платные. Если у вас есть трудности в их получении, то вы можете использовать бесплатную версию Visual Studio Express, некоторые возможности которой усечены по сравнению с другими версиями. В то же время их для наших целей вполне достаточно. Информацию о различиях между версиями Visual Studio вы можете получить здесь - http://www.microsoft.com/visualstudio/.

В этой статье я использовал Microsoft Visual Basic 2008 Express Edition, потому он подобен VBA и является бесплатным для загрузки и использования. Скачать Microsoft Visual Basic 2008 Express Edition можно с адреса http://www.microsoft.com/express/download/.

Создание вашего первого проекта на .NET

Перед тем, как вы начнете создавать код для новой команды AutoCAD, вам необходимо создать новый проект. Для этого:

  1. Запустите Microsoft Visual Basic 2008 Express Edition выбрав Пуск > Программы > Microsoft Visual Basic 2008 Express Edition.
  2. После запуска Microsoft Visual Basic 2008 Express Edition выберите New Project в меню File.
  3. В диалоговом окне New Project (рис. 1), выберите шаблон Class Library и введите имя нового проекта в поле Name. Примените введенное, нажав на OK.

Рис. 1 Диалоговое окно New Project

Сопряжение Visual Basic и AutoCAD

Для корректного создания программы вы должны предоставить для Visual Basic данные о объектах в AutoCAD .NET API. Для этого необходимо сделать следующее:

  1. В вашем только что созданном проекте выберите в меню Project пункт Add References.
  2. В диалоговом окне Add Reference (рис. 2) перейдите к закладке Browse, где выберите каталог, куда установлен AutoCAD (по умолчанию это C:\Program Files\AutoCAD 2010). Удерживая клавишу Ctrl выберите файлы acmgd.dll и acdbmdg.dll. Нажмите на OK.

Рис. 2 Диалоговое окно Add Reference

Создание вашей первой команды

Теперь, когда мы формально сопрягли Visual Basic и AutoCAD, пришло время им работать вместе. Чтобы сделать это, перед тем как вы будете создавать команды или работать со связанными с AutoCAD классами, необходимо добавить немного информации к вашему проекту в форме пространства имен. Пространство имен используется для упорядочения различных классов, которые являются частью AutoCAD .NET API. В окне кода, над строкой кода по умолчанию Public Class Class1 добавим следующий текст:

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime

Теперь, когда наш проект содержит ссылки на пространство имен AutoCAD .NET API, вы можете преступить к созданию новой команды. Добавим следующие строки кода между Public Class Class1 и End Class:

<CommandMethod("MyFirstCmd")> _
Public Sub MyFirstCmd()
Dim acCurDoc As Document
acCurDoc = Application.DocumentManager.MdiActiveDocument
acCurDoc.Editor.WriteMessage(vbLf & _
"Hello from VB .NET and AutoCAD")
End Sub

Набранный нами код создает команду с именем My-FirstCmd, которая при запуске отображает текст "Hello from VB .NET and AutoCAD" в командной строке AutoCAD. Не очень оригинально или полезно, но зато просто и работает! После того, как вы набрали код, сохраните его, выбрав Save All в меню File. В диалоговом окне Save Project измените имя проекта и его расположение на диске, если необходимо. Затем нажмите на Save.

Создание вашей первой сборки и загрузка ее в AutoCAD

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

Перед компоновкой проекта необходимо изменит несколько его параметров, которые управляет добавлением к проекту библиотек, на которые он ссылается. Обычно в этом нет необходимости. Что бы не делать это, выберите свойство project_name в меню Project. В закладке Properties выберите закладку References. Удерживая клавишу Ctrl выберите acdbmgd and acmgd. Затем в панели Properties (она находится справа по умолчанию), кликните мышью по Copy Local и выберите False в выпадающем списке (рис. 3). Сохраните ваш проект еще раз.


рис. 3 Свойства проекта

Теперь, когда ваш проект сохранен и сконфигурирован, выберите Build project_name в меню Build. Microsoft Visual Basic начнет процесс компоновки и должен будет сгенерировать файл с именем вашего проекта и расширением DLL в папке Bin. Если компоновка прошла успешно, отобразиться сообщение "Build succeeded" в левом нижнем углу панели состояния окна Microsoft Visual Basic 2008 Express Edition.

Что бы загрузить созданную нами команду в AutoCAD, необходимо сделать следующее:
  1. Набрать команду netload в командной строке.
  2. В диалоговом окне Choose .NET Assembly (рис. 4), выбрать созданную нами сборку. По умолчанию, ваш проект будет находиться в папке с именем Visual Studio 2008 в каталоге My Documents. Например, C:\Users\user_name\Documents\Visual Studio2008\Projects\project_name\project_name\bin\Release.
  3. В папке Release выберите файл с тем же самым именем как ваш проект и расширением DLL. Нажмите на Open.
  4. В командной строке введите myfirstcmd и нажмите Enter. Отобразиться текст "Hello from VB .NET and AutoCAD".

рис. 4 Диалоговое окно Choose .NET Assembly

Заключение

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



Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko