Страница 1 из 1
Програмное конвертирование DXF в другой векторный формат
Добавлено: 28 мар 2024, 09:16
LevLimin
Есть необходимость написать конвертирование dxf/dwg в geojson.
И вроде бы всё хорошо, но есть ряд нюансов, которые пока не могу разрешить.
Каким образом определяется видимость элементов?
В файле порой много мусора, и если его отсекать, то время загрузки сильно уменьшается, особенно если в файле почти 100К элементов.
Я попробовал фильтровать по принадлежности элемента к Model_Space. Но всё равно мусор остаётся.
1. Если элемент является Insert и он входит в Model_Space и отрисовывается в файле, то всё что в него входит автоматом является видимым?
2. В добавок, проверяю ещё флаги Frozen, Visible
3. Как проверять правильно прозрачность? В одном файле стоит значение ByLayer. Смотришь слой, а там уже стоит ByBlock.
ВОт пример оригинал в DWGViwer и результат конвертирования в geojson. Зелёным эллипсом выделен элемент которого по идее не должно быть.

- Оригинал в SWGViewer
- origin.png (108.65 КБ) 6711 просмотров
результат конвертирования в geojson. Зелёным эллипсом выделен элемент которого по идее не должно быть.

- Результат конвертации с мусором
- garbage.png (36.46 КБ) 6711 просмотров
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 28 мар 2024, 11:36
trir
"Есть необходимость написать конвертирование dxf/dwg в geojson."
А координаты как пересчитываем?
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 28 мар 2024, 12:39
LevLimin
Так пользователь указывает, в какой СК данные в файле.
Внутри файла все данные трансформируем, если это необходимо.
Может я не понял вопроса, тогда уточните.
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 28 мар 2024, 12:43
LevLimin
Забыл написать, что приложение под .NET.
Я пробовал три библиотеки: GDAL, netDxf, ACadSharp.
Пересчитываю координаты или средствами GDAL, или NetTopologySuite.
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 28 мар 2024, 12:53
trir
можно ещё использовать DotSpatial.Projections
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 28 мар 2024, 13:26
trir
Это сложный вопрос с кучей специфики, советую спросить здесь -
https://t.me/autocad_api
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 29 мар 2024, 01:41
ustreb
АrcGiS Pro есть инструменты конвертации в geojson из геопространственных объектов. Импортируется .dwg - Инструменты конвертации - Json - Объекты в Json
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 29 мар 2024, 09:52
LevLimin
Это хорошо, но хотелось бы разобраться с внутренним строением. Да и аркгиса нет у заказчиков.
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 29 мар 2024, 10:20
gamm
когда я по молодости парсил DXF, вроде в Акаде была возможность выдать DXF простой структуры, без взложенных блоков, и прочих чудес, что значительно упрощало работу, особенно с пересчетом координат.
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 02 апр 2024, 09:08
LevLimin
Увы, у заказчика лапки, он не хочет думать.
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 02 апр 2024, 09:23
trir
вроде в Акаде была возможность выдать DXF простой структуры, без взложенных блоков, и прочих чудес
я такого не знаю, разве только сохранить в очень старой версии dxf
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 02 апр 2024, 11:41
gamm
trir писал(а): ↑02 апр 2024, 09:23
я такого не знаю, разве только сохранить в очень старой версии dxf
х/з, примерно 30 лет назад парсер писал, мне геодезисты DXF выдавали, сам я Акадом не пользовался никогда. Они как-то убирали блоки, и превращали в простой файл. Может, на автолиспе чего писали для этого, за давностию лет секрет утерян

Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 04 апр 2024, 10:03
LevLimin
Я использую пока две библиотеки netDxf(больше не разрабатывается), ACadSharp(активно разрабатывается).
Обе не умеют читать элемент MultiLeader.
Есть ещё библтотека GDAL, она умеет MultiLeader, но не умеет 99% нужных атрибутов.
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 04 апр 2024, 11:59
trir
Обе не умеют читать элемент MultiLeader
значит надо научить
Re: Програмное конвертирование DXF в другой векторный формат
Добавлено: 09 апр 2024, 08:44
LevLimin
trir писал(а): ↑04 апр 2024, 11:59
Обе не умеют читать элемент MultiLeader
значит надо научить
Начал потихоньку учить. Научил читать блок мультилидера. Сейчас атрибуты разбираю.
Но проблема мусора никуда не делать =(