Попытка чтения данных из DWG с помощью Autodesk.AutoCAD.DatabaseService. На какую DLL мне нужно ссылаться?
У меня есть проект winform VB, где я читаю данные из таблицы в файле DWG. При этом метод AutoCad должен быть открыт (что замедляет работу приложения).
Ниже я нашел статью, в которой вы можете использовать другой подход, где вы используете объект базы данных (представляющий наш чертеж в памяти), но я не знаю, на какую DLL мне нужно ссылаться, чтобы иметь возможность использовать этот метод. Использование метода в этом appraoch:
использование Autodesk.AutoCAD.DatabaseServices; -> нужно иметь возможность импортировать
А также статья с 2006 года и на C#. Есть ли лучший подход в наши дни?
заранее спасибо
Разбираем его -A closen Посмотрите код C# для импорта блоков
2 ответа
Если вы создаете.DLL, который вы загружаете внутри AutoCAD (с помощью команды NETLOAD или с помощью папки PackageContents.xml/.bundle), вам понадобятся следующие ссылки из папки установки AutoCAD:
- AcMgd.dll
- AcDbMgd.dll
- AcCoreMgd.dll (требуется для AutoCAD 2013 и новее)
И убедитесь, что все ссылки установлены как Copy Local = false, обратите внимание, что это важно:-)
У вас могут быть проблемы с версией.NET, поэтому убедитесь, что у вас есть:
- .NET 3.5 для AutoCAD 2010+
- .NET 4.0 для AutoCAD 2012+
- .NET 4.5 для AutoCAD 2015+
И если вы выберете более старую версию.NET, компилятор может выдать ошибку, например, не может использовать ссылки. Если вы начинаете, пожалуйста, проверьте на http://www.autodesk.com/myfirstautocadplugin
Теперь, если у вас есть внешнее приложение (.exe), то вы не можете использовать вышеупомянутое, но только ссылки на COM (также из папки установки AutoCAD)
- Autodesk.AutoCAD.Interop.dll
- Autodesk.AutoCAD.Interop.Common.dll
Но для этого COM-взаимодействия у вас другая модель данных, а также другое пространство имен. Кроме того, это не рекомендуется, что означает отсутствие новых возможностей для него.
- AcDbMgd.dll, что означает "Управляемая база данных AutoCAD", и внутри нее находятся объекты для манипулирования DWG (он же база данных).
- AcMgd.dll, что означает "AutoCAD Managed", и внутри него находятся объекты, с помощью которых вы можете получить объекты базы данных текущего активного DWG.
- Задайте для параметра "Копировать локально" значение "Ложь", поскольку AutoCAD содержит собственные копии тех же библиотек DLL.
Вы можете получить DLLS из библиотек ObjectArx, которые находятся здесь. Когда вы их установите, у вас будут нужные вам библиотеки.
Ознакомьтесь с примерами и пояснениями к Руководству для разработчиков AutoCAD, посвященными последним статьям "Как это сделать".