Чтение Database не открывая AutoCad

Автор Тема: Чтение Database не открывая AutoCad  (Прочитано 6307 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн EvgivachevАвтор темы

  • ADN OPEN
  • Сообщений: 16
  • Карма: 0
Подскажите, пожалуйста, такая задача:
необходимо получить элементы в чертеже dwg из другого приложения.
Возможно ли сделать это не из самого автокада, а получить database файла чертежа??

Отмечено как Решение Александр Ривилис 23-10-2018, 19:49:41

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Чтение Database не открывая AutoCad
« Ответ #1 : 23-10-2018, 19:40:58 »
Если на компьютере установлен автокад,  то можно через его библиотеки открыть БД чертежа. Если не установлен,  то надо покупать realdwg или аналоги. это дорого

Оффлайн EvgivachevАвтор темы

  • ADN OPEN
  • Сообщений: 16
  • Карма: 0
Re: Чтение Database не открывая AutoCad
« Ответ #2 : 24-10-2018, 09:55:09 »
Да, так и пробовал, но выпадает исключение во время выполнения:
Цитировать
"System.IO.FileNotFoundException" в Неизвестный модуль.
Дополнительные сведения: Не удалось загрузить файл или сборку "Acdbmgd, Version=20.1.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. Не удается найти указанный файл.

Если же параметр сборки Copy local перевести в true, то вылетает исключение при попытке обращения уже к полям и свойствам database
Цитировать
Необработанное исключение типа "System.InvalidProgramException" в FixtureAutocad.exe
Дополнительные сведения: Среда выполнения Common Language Runtime обнаружила недопустимую программу.

Что я делаю не так?



Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Чтение Database не открывая AutoCad
« Ответ #3 : 24-10-2018, 10:12:49 »
ха
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/where-is-the-realdwg-sdk-and-can-i-use-it-without-an-autocad/td-p/6356468
https://www.autodesk.com/developer-network/platform-technologies/realdwg

Acdbmgd будет работать только в запушщеном AutoCAD'е, без него нужно использовать realdwg
Есть и другой способ - но здесь запрещенно его называть  ;D

Через COM можно скрытно от пользователя запустить AutoCAD, и загрузить в него .NET-сборку которая будет работать как сервер
Или можно просто отказатся от .dwg в пользу .dxf

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Чтение Database не открывая AutoCad
« Ответ #4 : 24-10-2018, 10:29:59 »
Или можно просто отказатся от .dwg в пользу .dxf
А в чем собственно разница dwg и dxf. Есть какие-то специфичные способы читать dxf?

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Чтение Database не открывая AutoCad
« Ответ #5 : 24-10-2018, 10:31:39 »
Цитировать
А в чем собственно разница dwg и dxf. Есть какие-то специфичные способы читать dxf?
.dxf открытый формат - есть куча библиотек для работы с ним или можно написать свою

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Чтение Database не открывая AutoCad
« Ответ #6 : 24-10-2018, 10:58:22 »
Да, так и пробовал, но выпадает исключение во время выполнения:
Цитировать
"System.IO.FileNotFoundException" в Неизвестный модуль.
Дополнительные сведения: Не удалось загрузить файл или сборку "Acdbmgd, Version=20.1.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. Не удается найти указанный файл.

Если же параметр сборки Copy local перевести в true, то вылетает исключение при попытке обращения уже к полям и свойствам database
Цитировать
Необработанное исключение типа "System.InvalidProgramException" в FixtureAutocad.exe
Дополнительные сведения: Среда выполнения Common Language Runtime обнаружила недопустимую программу.

Что я делаю не так?



Использовать AutoCAD .NET API (т.е. сборки acdbmgd.dll, accoremgd.dll, acmgd.dll) можно только из приложения загруженного внутрь AutoCAD. Из внешних приложений работать не будет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение