Попытка чтения данных из 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:

  1. AcMgd.dll
  2. AcDbMgd.dll
  3. 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)

  1. Autodesk.AutoCAD.Interop.dll
  2. Autodesk.AutoCAD.Interop.Common.dll

Но для этого COM-взаимодействия у вас другая модель данных, а также другое пространство имен. Кроме того, это не рекомендуется, что означает отсутствие новых возможностей для него.

  1. AcDbMgd.dll, что означает "Управляемая база данных AutoCAD", и внутри нее находятся объекты для манипулирования DWG (он же база данных).
  2. AcMgd.dll, что означает "AutoCAD Managed", и внутри него находятся объекты, с помощью которых вы можете получить объекты базы данных текущего активного DWG.
  3. Задайте для параметра "Копировать локально" значение "Ложь", поскольку AutoCAD содержит собственные копии тех же библиотек DLL.

Вы можете получить DLLS из библиотек ObjectArx, которые находятся здесь. Когда вы их установите, у вас будут нужные вам библиотеки.

Ознакомьтесь с примерами и пояснениями к Руководству для разработчиков AutoCAD, посвященными последним статьям "Как это сделать".

Другие вопросы по тегам