Програмное конвертирование DXF в другой векторный формат

САПР и ГИС
Ответить
LevLimin
Интересующийся
Сообщения: 32
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Програмное конвертирование DXF в другой векторный формат

Сообщение LevLimin » 28 мар 2024, 09:16

Есть необходимость написать конвертирование dxf/dwg в geojson.
И вроде бы всё хорошо, но есть ряд нюансов, которые пока не могу разрешить.

Каким образом определяется видимость элементов?
В файле порой много мусора, и если его отсекать, то время загрузки сильно уменьшается, особенно если в файле почти 100К элементов.

Я попробовал фильтровать по принадлежности элемента к Model_Space. Но всё равно мусор остаётся.
1. Если элемент является Insert и он входит в Model_Space и отрисовывается в файле, то всё что в него входит автоматом является видимым?
2. В добавок, проверяю ещё флаги Frozen, Visible
3. Как проверять правильно прозрачность? В одном файле стоит значение ByLayer. Смотришь слой, а там уже стоит ByBlock.

ВОт пример оригинал в DWGViwer и результат конвертирования в geojson. Зелёным эллипсом выделен элемент которого по идее не должно быть.
Спойлер
origin.png
Оригинал в SWGViewer
origin.png (108.65 КБ) 1021 просмотр
результат конвертирования в geojson. Зелёным эллипсом выделен элемент которого по идее не должно быть.
Спойлер
garbage.png
Результат конвертации с мусором
garbage.png (36.46 КБ) 1021 просмотр

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение trir » 28 мар 2024, 11:36

"Есть необходимость написать конвертирование dxf/dwg в geojson."
А координаты как пересчитываем?

LevLimin
Интересующийся
Сообщения: 32
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение LevLimin » 28 мар 2024, 12:39

Так пользователь указывает, в какой СК данные в файле.
Внутри файла все данные трансформируем, если это необходимо.
Может я не понял вопроса, тогда уточните.

LevLimin
Интересующийся
Сообщения: 32
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение LevLimin » 28 мар 2024, 12:43

Забыл написать, что приложение под .NET.
Я пробовал три библиотеки: GDAL, netDxf, ACadSharp.
Пересчитываю координаты или средствами GDAL, или NetTopologySuite.

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение trir » 28 мар 2024, 12:53

можно ещё использовать DotSpatial.Projections

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение trir » 28 мар 2024, 13:26

Это сложный вопрос с кучей специфики, советую спросить здесь - https://t.me/autocad_api

ustreb
Интересующийся
Сообщения: 23
Зарегистрирован: 06 июл 2023, 04:41
Репутация: 2
Откуда: календарь

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение ustreb » 29 мар 2024, 01:41

АrcGiS Pro есть инструменты конвертации в geojson из геопространственных объектов. Импортируется .dwg - Инструменты конвертации - Json - Объекты в Json

LevLimin
Интересующийся
Сообщения: 32
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение LevLimin » 29 мар 2024, 09:52

Это хорошо, но хотелось бы разобраться с внутренним строением. Да и аркгиса нет у заказчиков.

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение gamm » 29 мар 2024, 10:20

когда я по молодости парсил DXF, вроде в Акаде была возможность выдать DXF простой структуры, без взложенных блоков, и прочих чудес, что значительно упрощало работу, особенно с пересчетом координат.

LevLimin
Интересующийся
Сообщения: 32
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение LevLimin » 02 апр 2024, 09:08

Увы, у заказчика лапки, он не хочет думать.

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение trir » 02 апр 2024, 09:23

вроде в Акаде была возможность выдать DXF простой структуры, без взложенных блоков, и прочих чудес
я такого не знаю, разве только сохранить в очень старой версии dxf

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение gamm » 02 апр 2024, 11:41

trir писал(а):
02 апр 2024, 09:23
я такого не знаю, разве только сохранить в очень старой версии dxf
х/з, примерно 30 лет назад парсер писал, мне геодезисты DXF выдавали, сам я Акадом не пользовался никогда. Они как-то убирали блоки, и превращали в простой файл. Может, на автолиспе чего писали для этого, за давностию лет секрет утерян :mrgreen:

LevLimin
Интересующийся
Сообщения: 32
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение LevLimin » 04 апр 2024, 10:03

Я использую пока две библиотеки netDxf(больше не разрабатывается), ACadSharp(активно разрабатывается).
Обе не умеют читать элемент MultiLeader.

Есть ещё библтотека GDAL, она умеет MultiLeader, но не умеет 99% нужных атрибутов.

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение trir » 04 апр 2024, 11:59

Обе не умеют читать элемент MultiLeader
значит надо научить

LevLimin
Интересующийся
Сообщения: 32
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Re: Програмное конвертирование DXF в другой векторный формат

Сообщение LevLimin » 09 апр 2024, 08:44

trir писал(а):
04 апр 2024, 11:59
Обе не умеют читать элемент MultiLeader
значит надо научить
Начал потихоньку учить. Научил читать блок мультилидера. Сейчас атрибуты разбираю.

Но проблема мусора никуда не делать =(

Ответить

Вернуться в «AutoCAD Map 3D/Civil 3D»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей