Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Biturong от 07-05-2018, 16:01:21

Название: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: Biturong от 07-05-2018, 16:01:21
Скажите, есть ли возможность "прочитать" файл .DWG в С# и получить внешние ссылки без открытия этого чертежа в автокаде? если да то как это сделать? я перерыл кучу форумов но не нашёл решения. Задача у меня следующая: Формируются архивы с чертежами для отправки, нужно чтобы в папку к чертежу копировались все файлы из внешних ссылок. как это сделать чтобы не открывался каждый раз автокад? я понимаю, что автокад открывается 1 раз и можно отслеживать текущую рабочую\активную базу данных чертежа и цеплять из неё, но вот без автокада никак нельзя? например прочитать в массив бит? но как тогда в нём найти ссылку...
Название: Re: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: avc от 07-05-2018, 16:05:22
Существуют отдельные библиотеки для работы с dwg без автокада. Как от Автодеск, так и от независимых разработчиков. Это совсем отдельная тема и все это платно.
А из под Автокада можно читать dwg не открывая документ - создать новую базу данных и загрузить в нее файл.

/* Ссылку на стороннее API убрал. Александр Ривилис */
Название: Re: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: Александр Ривилис от 07-05-2018, 16:08:20
Итак возможные варианты:
1. Чертеж открывается в AutoCAD и производится его сканировние.
2. Чертеж открывается в AcCoreConsole и производится его сканирование.
3. Покупается RealDWG ( https://www.autodesk.com/developer-network/platform-technologies/realdwg ) и создаётся своё приложение.
P.S.: Использование альтернативных API для работы с dwg-файлами на этом форуме не обсуждается. Да и они тоже далеко не бесплатные.

Я бы остановился при такой постановке задачи на п. 2, так как AcCoreConsole загружается намного быстрее чем AutoCAD и в принципе можно запустить сразу несколько его копий для параллельного сканирования различных файлов.
Название: Re: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: Biturong от 07-05-2018, 16:11:26
AcCoreConsole
Спасибо за наводку. Буду изучать вопрос далее.
Название: Re: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: Александр Ривилис от 07-05-2018, 16:17:34
Спасибо за наводку. Буду изучать вопрос далее.
Начни отсюда: http://adndevblog.typepad.com/autocad/2012/04/getting-started-with-accoreconsole.html
Там есть и видео.
Название: Re: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: Biturong от 07-05-2018, 16:27:13
Спасибо за наводку. Буду изучать вопрос далее.
Начни отсюда: http://adndevblog.typepad.com/autocad/2012/04/getting-started-with-accoreconsole.html
Там есть и видео.

Спасибо! Вы мне очень помогли.
Название: Re: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: Александр Ривилис от 07-05-2018, 16:31:33
Спасибо! Вы мне очень помогли.
Есть и альтернативный вариант, о котором намекал avc: в AutoCAD можно открывать dwg-файл не загружая его в редактор. Это значительно ускоряет процесс обработки. Используется Database.ReadDwgFile. Пример: http://adn-cis.org/izmenenie-putej-k-vneshnim-ssyilkam-iz-absolyutnyix-v-otnositelnyie.html
Собственно говоря Database.ReadDwgFile можно использовать и в AcCoreConsole.
Название: Re: Как в C# пути внешних ссылок из .DWG не открывая автокад?
Отправлено: Biturong от 07-05-2018, 16:55:48
этот пример я видел.  :)  Меня как то стороной обошло существование AcCoreConsole.