ПроблемаПри попытке открыть файл DXF в AutoCAD отображается следующее сообщение: Нажмите ENTER для продолжения: После нажатия клавиши Enter файл не открывается. В командной строке отображается сообщение, подобное следующему: При чтении произошла следующая ошибка в SECTION_NAME, начиная со строки LINE_NUMBER: Ошибка чтения DXF Недопустимый или неполный входной DXF-файл — импорт чертежа не выполнен
Проблема
При попытке открыть файл DXF в AutoCAD отображается следующее сообщение:
Нажмите ENTER для продолжения:
После нажатия клавиши Enter файл не открывается.
В командной строке отображается сообщение, подобное следующему:
При чтении произошла следующая ошибка в SECTION_NAME, начиная со строки LINE_NUMBER: Ошибка чтения DXF Недопустимый или неполный входной DXF-файл — импорт чертежа не выполнен.
При чтении произошла следующая ошибка в SORTENTSTABLE, начиная с строки 6554690: Ошибка чтения DXF Недопустимый или неполный входной DXF-файл — импорт чертежа не выполнен.
Причины
Поврежденный объект в DXF.
Правильная подготовка DXF формата для ЧПУ станков | Экспорт
Решение
Вручную удалите поврежденный объект, выполнив следующие действия.
- Создайте копию файла DXF.
- Откройте файл DXF в текстовом редакторе, например в Блокноте.
- Нажмите CTRL+G и введите номер линии, указанный в сообщении об ошибке.
- Удалите строки, начинающиеся с указанного раздела и заканчивающиеся на нем.
- Примечание. Разделы обычно заканчиваются строкой с двумя пробелами и 0.
- Сохраните файл DXF.
- Откройте файл еще раз.
Примечание. Если файл DXF был создан в стороннем программном обеспечении, проверьте исходный проект на наличие повреждений файла, его конфигурацию и т. д. и создайте файл DXF повторно. Можно также запросить файл в другом формате данных, например DWG.
Issue:
When trying to open a DXF file in AutoCAD, the following message is shown:
Press ENTER to continue:
After pressing the Enter key, no file is open.
A message similar to the following is displayed on the command line:
The following error was encountered while reading in SECTION_NAME starting at line LINE_NUMBER: DXF read error Invalid or incomplete DXF input — drawing discarded.
The following error was encountered while reading in SORTENTSTABLE starting at line 6554690: DXF read error Invalid or incomplete DXF input — drawing discarded.
Causes:
Corrupt object in DXF.
Solution:
Manually delete the corrupted object by doing the following:
- Create a copy of the DXF file.
- Open the DXF file in a text editor such as Notepad.
- Press CTRL+G and enter the line number mentioned in the error message.
- Delete the lines starting from the one mentioned until the end of the section.
- Note: Sections usually end with a line with two space characters and a 0.
- Save the DXF file.
- Open the file again.
Note: If the DXF was created by a third-party software, check the source project for file corruption, configuration, etc. and recreate the DXF. Alternatively request the file in a different data format like DWG.
Versions:
Issue:
When trying to open a DXF file in AutoCAD, the following message is shown:
Press ENTER to continue:
After pressing the Enter key, no file is open.
A message similar to the following is displayed on the command line:
The following error was encountered while reading in SECTION_NAME starting at line LINE_NUMBER: DXF read error Invalid or incomplete DXF input — drawing discarded.
The following error was encountered while reading in SORTENTSTABLE starting at line 6554690: DXF read error Invalid or incomplete DXF input — drawing discarded.
Causes:
Corrupt object in DXF.
Solution:
Manually delete the corrupted object by doing the following:
- Create a copy of the DXF file.
- Open the DXF file in a text editor such as Notepad.
- Press CTRL+G and enter the line number mentioned in the error message.
- Delete the lines starting from the one mentioned until the end of the section.
- Note: Sections usually end with a line with two space characters and a 0.
- Save the DXF file.
- Open the file again.
Note: If the DXF was created by a third-party software, check the source project for file corruption, configuration, etc. and recreate the DXF. Alternatively request the file in a different data format like DWG.
Versions:
Всем добрый день!
Работаю в компасе 16,1. Ранее все было нормально, а в последнее время открывает файлы формата dxf просто пустыми. Догадываюсь, что я мог что-то натворить, но ума не приложу что именно
Цитата: johny_shulga от 29.07.20, 16:11:04 Всем добрый день!
Подскажите пожалуйста!
Работаю в компасе 16,1. Ранее все было нормально, а в последнее время открывает файлы формата dxf просто пустыми. Догадываюсь, что я мог что-то натворить, но ума не приложу что именно
А файлы дхф создавались Вами же в этой версии?
Да. В этом же компасе создавал файлы формата dxf.
Открываю Корелом — нормально все, а Компасом — пусто
P.S.: Речь идет о файлах 2D
Настройки чтения находятся здесь. Попробуйте поменять Модель/Лист.
dxf приложите если не секретный
Не секретный.
Оставил во вложении
johny_shulga
«Читать данные из пространства модели», V16.1.18, файл открывается нормально.
- Форум пользователей ПО АСКОН
- ►
Смежные вопросы - ►
Разное - ►
Проблема с чтением формата dxf
Как использовать приложение для восстановления DXF для восстановления файла DXF.
- Щелкните внутри области перетаскивания файла, чтобы загрузить файл, или перетащите файл.
- Ваш файл будет загружен, и мы покажем вам дефекты файла с предварительным просмотром.
- Выберите проблемы, которые мы можем исправить для вас, и нажмите кнопку «Исправить».
Как редактировать файл DXF?
Вы можете изменить чертеж, отредактировав его файл DXF.
…
Используйте формат DXF для редактирования чертежей
- Откройте новый чертеж на основе акад. …
- Нарисуйте одну линию.
- Сохраните рисунок.
- Выберите «Файл» > «Сохранить как» (в версии 2009 выберите «Браузер меню» > «Файл» > «Сохранить как»). …
- Оставьте имя файла по умолчанию и нажмите Сохранить.
- Закройте рисунок. …
- Откройте Блокнот.
Почему файл DXF не открывается?
Попробуйте восстановить исходный файл DWG (см. Как восстановить поврежденные файлы AutoCAD). Если DXF был создан сторонним программным обеспечением, проверьте исходный проект на наличие повреждений файлов, конфигурации и т. д. и заново создайте DXF. Следующим шагом может быть запрос файла в другом формате данных, таком как DWG.
Какие программы могут редактировать файлы DXF?
7 лучших бесплатных редакторов DXF/DWG
- Быстрый просмотр DWG.
- ЛибреCAD.
- нанокад.
- FreeCAD.
- ККАД.
- RootPro САПР бесплатно.
- DWGСм.
Почему мой AutoCAD зависает?
Отсутствуют обновления AutoCAD. Устаревший драйвер видеокарты. Слишком много временных файлов. Системные требования не соблюдены.
Как я могу открыть файл чертежа, который недействителен?
Если вы видите сообщение «Файл чертежа недействителен» при попытке открыть определенный файл, попробуйте следующее.
- Используйте «Восстановление» в AutoCAD. Откройте AutoCAD и перейдите в «Файл». Выберите опцию «Утилиты для рисования». Выберите «Восстановить»…
- Найдите и удалите файлы DWL. Откройте папку, в которую AutoCAD помещает сохраненные файлы. Установите флажок «Скрытые файлы»
Как я могу редактировать файл DXF онлайн?
Во-первых, вам нужно загрузить файл: перетащите файл DXF или щелкните внутри белой области, чтобы выбрать файл, после чего вы будете перенаправлены в редактор метаданных. ⏱️ Сколько времени нужно, чтобы открыть файл DXF для просмотра метаданных? Редактор метаданных работает быстро — обычно для открытия файла DXF требуется несколько секунд.
Как работает файл DXF?
Файлы DXF и DXB представляют собой два типа файлов обмена чертежами, используемых для передачи данных между различными приложениями. Файл DXF (формат обмена чертежами) представляет собой либо двоичное, либо ASCII-представление файла чертежа. Он часто используется для обмена данными чертежа между другими программами САПР.
Можно ли использовать DraftSight бесплатно?
Как и большинство профессиональных программ САПР, последняя версия DraftSight не является бесплатной. Тем не менее, он по-прежнему представляет собой гораздо более доступный вариант по сравнению с такими альтернативами, как AutoCAD.
Как я могу просматривать файлы DXF онлайн?
Как просматривать файлы DXF онлайн?
- Щелкните внутри области перетаскивания файла, чтобы загрузить файл DXF, или перетащите файл DXF.
- После завершения загрузки вы будете перенаправлены в приложение просмотра.
- Прокрутите вниз или используйте меню для перехода между страницами.
- Увеличение или уменьшение масштаба просмотра страницы.
- Загрузите страницы исходного файла в формате PNG или PDF.
Что означает DXF?
DXF — это сокращение от «Формат обмена чертежами» или «Формат обмена чертежами». Широко известный как формат AutoCAD DXF, представляет собой формат файла данных САПР. Он был разработан Autodesk для обеспечения взаимодействия данных между AutoCAD и другими программами.
Являются ли файлы DXF трехмерными?
Основное различие между этими двумя форматами заключается в том, что файлы STL представляют собой файлы 3D-моделей, а DXF — это 2D-или 3D-чертежи.
Есть ли бесплатная версия AutoCAD?
Единственный способ бесплатно получить полную и неограниченную версию AutoCAD — стать студентом, преподавателем или учебным заведением. Те, кто имеет право, могут подать заявку на образовательную лицензию AutoCAD и получить год бесплатного программного обеспечения Autodesk, включая AutoCAD.
Безопасно ли скачивать Librecad?
Программное обеспечение безопасно для использования, поскольку оно имеет открытый исходный код, что позволяет вам проверять наличие вредоносного кода. Приложение также относительно простое в использовании и содержит множество онлайн-руководств, доступных на бесплатных платформах, таких как YouTube. Кроме того, распространение приложения или внесение изменений в приложение приветствуется.
Как создать файл DXF?
Чтобы создать файл DWG или DXF, достаточно перейти в меню «Файл» > «Экспорт» и выбрать «Экспортировать текущий вид» (DWG, DXF) или «Экспортировать все этажи» (DWG, DXF). Вы можете выбрать «Экспорт» в диалоговом окне «Экспорт чертежа», которое появляется после выбора совместимой версии AutoCAD.
Источник: oshibkam.ru
Какое приложение мне нужно, чтобы открыть файл DXF?
Чтобы быстро открыть файл DXF в Интернете, используйте ShareCAD. Некоторые другие программы просмотра файлов DXF включают программы Autodesk AutoCAD и Design Review, а также TurboCAD, CorelCAD, ABViewer от CADSoftTools, Adobe Illustrator и Canvas X от ACD Systems.
Как открыть файл DXF без AutoCAD?
Шаг 1 Бесплатная загрузка Средство просмотра AutoCAD DXF Viewer с веб-сайта компании и запустите программное обеспечение после завершения установки. Шаг 2 Перейдите к опции «Открыть» в меню «Файл» или используйте Ctrl + O. Затем нажмите кнопку «Обзор», чтобы выполнить поиск в файле DXF. Шаг 3 Используйте параметры увеличения или уменьшения для просмотра файла DXF.
Как бесплатно просмотреть файл DXF?
LibreCAD. LibreCAD — это бесплатная программа просмотра DXF, которая помимо просмотра позволяет редактировать, измерять и печатать файлы. Пользователи также могут использовать программное обеспечение для просмотра, редактирования, измерения и печати других файлов, таких как файлы DWG и CXF.
Как открыть файл DXF в PDF?
- В Acrobat выберите «Инструменты», а затем «Создать PDF».
- Выберите «Один файл», затем выберите файл в меню параметров.
- Загрузите ваш файл DXF.
- Щелкните или коснитесь «Создать». Это преобразует выбранный вами файл в PDF.
- Сохраните PDF-файл в желаемом месте.
Можно раскрасить открытые файлы DXF?
Какая программа жестяная банка Я использую для просмотра Файлы DXF? Ты может открывать файлы DXF с любого CAD и программа ЧПУ, такая как AutoCAD, Scan2CAD или Adobe Illustrator. . Какую бы программу вы ни выбрали, viewing а DXF файл должно быть так же просто, как загрузка изображения на MS Покрасить или документ в MS Word.
Как открыть файл DXF на моем компьютере?
- Шаг 1 Бесплатно загрузите инструмент AutoCAD DXF Viewer с веб-сайта компании и запустите программное обеспечение после завершения установки.
- Шаг 2 Перейдите к опции «Открыть» в меню «Файл» или используйте Ctrl + O. Затем нажмите кнопку «Обзор», чтобы выполнить поиск в файле DXF.
- Шаг 3 Используйте параметры увеличения или уменьшения для просмотра файла DXF.
Почему AutoCAD не может открыть файл DXF?
Попробуйте восстановить исходный файл DWG (см. Как восстановить поврежденные файлы AutoCAD). Если DXF был создан сторонним программным обеспечением, проверьте исходный проект на наличие файл повреждение, конфигурация и т. д. и воссоздайте DXF. Следующим шагом может быть запрос файла в другом формате данных, например DWG.
Может ли блендер открывать файлы DXF?
Хорошей новостью является то, что вы все еще можете импортировать файлы DXF в Blender 2.8x! . Чтобы импортировать файлы DXF в Blender 2.8, вы должны открыть Параметры надстройки в меню Правка → Настройки. Перейдите в раздел «Надстройки», введите DXF в поле поиска и включите импортер AutoCAD DXF. Как только вы это сделаете, появится новая опция для импорта файлов DXF.
Может ли Photoshop открывать файлы DXF?
К сожалению, Adobe Photoshop не предоставляет вам с возможностью экспорта или преобразования файла PSD в файл DXF. Однако хорошей новостью является то, что файл PSD также можно открывать и изменять с помощью другого приложения для рисования Adobe, Adobe Illustrator.
Как открыть файл DXF на моем телефоне?
- Откройте Google Play Store.
- Найдите Schemata CAD Viewer DWG / DXF и нажмите «Установить».
- После завершения установки вы можете использовать его, чтобы открыть любой файл DXF, который есть на вашем телефоне.
Для чего используется файл DXF?
Файл DXF (формат обмена чертежами) представляет собой двоичное или ASCII-представление файла чертежа. Часто используется для обмена данными чертежей между другими программами САПР.
Это файл в формате DXF?
AutoCAD DXF (формат обмена чертежами или формат обмена чертежами) — это Формат файла данных САПР разработан Autodesk для обеспечения взаимодействия данных между AutoCAD и другими программами.
.
AutoCAD DXF.
Тип формата | Обмен данными САПР |
Как преобразовать DXT в PDF?
- Загрузите dxf-файл (ы). Выберите файлы с компьютера, Google Диска, Dropbox, URL или перетащив их на страницу.
- Выберите «в pdf». Выберите pdf или любой другой формат, который вам нужен в результате (поддерживается более 200 форматов)
- Загрузите ваш pdf-файл.
Как распечатать файл DXF?
из AutoCAD >> Команда Открыть >> изменить сейчас Тип файлов внизу в диалоговом окне на DXF (*. Dxf). Теперь с помощью команды PLOT сделайте свои настройки и распечатайте.
Источник: ch-pik.ru
Импортируем DXF чертеж в программе на Java, наступая на все грабли этого «простого» формата
AutoCAD и подобные ему САПР давно уже стали стандартом в области проектирования, и неудивительно что таким же стандартом стали широко используемые в них форматы файлов DWG/DXF. Так что если вы разрабатываете какое-то решение для архитекторов и проектировщиков, то умение работать с этими форматами (ну или хотя бы с одним из них) — must have фича вашего продукта.
В рамках своего вебсервиса для симуляции движения пешеходов пришлось и мне озаботиться импортом генпланов в этих форматах. Раньше с САПР я дела не имел, поэтому наивно думал «да что там, подумаешь — еще один формат чертежей, линии и многоугольники, что там может быть сложного?». Но в процессе работы выяснилось что сложного там может быть достаточно, некоторые нюансы вполне похожи на древние костыли, тянущиеся из глубин веков, при этом многие вещи толком не документированы в спецификациях самого формата (например работа с блоками или с кривыми). Видимо они считаются очевидными для любого чертежника, но что делать если вы родом из другой области, и таких знаний не имеете?
В общем под катом — перечисление граблей и решений, которые не удалось нагуглить и пришлось добывать полуночными бдениями над чертежами.
Решаемая задача
Мне для моего приложения на Java нужно было настроить импорт генпланов районов и конвертацию его во внутреннее упрощенное GeoJSON представление. При этом мне не нужна была полная информация и все виды сущностей, лишь некоторая их часть, которая бы использовалась в симуляции. Так что данный материал не охватывает все возможности и Нетривиальные Технические Решения DXF. А почему именно DXF, а не DWG? А про это ниже.
Выбор формата
Итак, что в первую очередь ассоциируется со словами «автокад» и «формат файла»? А это DWG. Бинарный закрытый формат, который изначально был создан AutoDesk’ом и его спецификации не раскрывались, однако в свое время он был удачно реверснут Open Design Alliance.
И вот тут следует разочарование №1: не существует актуальных бесплатных реализаций этого формата. Вообще.
Есть библиотека по работе с ним от AutoDesk. Есть популярная библиотека Teigha, созданная ODA. И… все. Обе они платные, причем хорошо платные (речь о сотнях и тысячах долларов). Не подходит.
Есть некоторое количество попыток реализовать стандарт в виде бесплатного Open-source решения. Например jdwglib. Но все они давно мертвы, обновлялись последний раз 5-10 лет назад. А прогресс не стоит на месте, новые версии автокада добавляют новые фичи и в DWG, в итоге с мечтой читать файлы современных версий можете попрощаться, как и с поддержкой и надеждой на фикс багов.
Альтернативой является DXF. Несколько менее популярный, но в то же время поддерживаемый всеми САПР, изначально открытый и поэтому, по идее, более распространенный.
Поиск библиотек поначалу тоже обескураживает — конкретно для Java нет ни одного живого проекта, везде та же картина: последние релизы 5-летней давности, заброшенные репозитории, грустно глядящие в вечность последние новости, полные неоправдавшегося оптимима и обещаний. Но сам по себе формат в отличие от DWG не так активно развивается, поэтому даже довольно старой библиотекой вполне можно открыть актуальные чертежи.
В итоге была выбрана библиотека Kabeja, последний релиз которой был в 2011 году. С помощью идущего в комплекте сэмпла (конвертация DXF в SVG) было проверено что все актуальные файлы чертежей корректно открываются, после чего я приступил к импорту. Слегка правда насторожил меня один комментарий к вопросу про парсинг DXF от некоего CAD-гуру на Stackoverflow что, мол, «DXF выглядит простым но на деле ты запаришься с ним работать».
DXF чертеж содержит в себе набор слоев (layer) и блоков (block). Там есть и другие сущности, но для того чтобы выдрать координаты геометрии в простейшем случае они не нужны.
Со слоями все очевидно, работают они так же как и в каком-нибудь Photoshop. Слои можно включать-выключать и можно задавать дефолтные параметры графики для слоя (то есть например все линии по умолчанию на данном слое будут иметь такую-то толщину). Поскольку моей задачей была только выжимка координат, вопросами отображения я не занимался.
Блоки представляют собой шаблоны, которые единожды нарисовав можно многократно вставлять. При этом изменение базового блока изменит и все его вставки. Удобно. Еще круче то, что блок может содержать в себе объекты с нескольких слоев. При этом вставка тоже принадлежит какому-то слою.
При этом блок может содержать в себе вставки других блоков. То есть можно сделать блоки «секция дома», затем составить из них блок «дом», который затем несколько раз вставить на карту. При этом итоговый объект будет иметь несколько слоев (отдельно заливка, отдельно контуры, отдельно специальные пометки), так же как исходные блоки. Все это очень круто с точки зрения пользователя, но добавляет работы программисту.
Более того, блок может вставляться не просто разово, а многократно в виде прямоугольной матрицы. Для этого у объекта вставки есть параметры с количеством рядов, столбцов и с расстоянием между ними.
В итоге пока что код обработки вставки выглядит как-то так:
for (int row = 0; row < insert.getRows(); ++row) < for (int col = 0; col < insert.getColumns(); ++col) < // Нам надо преобразовать координаты точек из локальных координат блока в глобальные координаты чертежа с учетом места вставки, угла поворота и т.п AffineTransform transform = new AffineTransform(); transform.translate( insert.getPoint().getX() — (insert.getColumns() — col) * insert.getColumnSpacing() , insert.getPoint().getY() — (insert.getRows() — row) * insert.getRowSpacing()); transform.rotate(Math.toRadians(insert.getRotate())); transform.scale(insert.getScaleX(), insert.getScaleY()); // Feature это уже наш объект, содержащий преобразованные в GeoJSON координаты for (Feature f : block.features) < // Копируем содержимое блока, преобразуем координаты. В итоге получаем реальное положение дома на плане Feature inserted = cloneFeatureWithTransform(f, transform); features.add(inserted); >> > return block.features.size();
При этом еще важно знать что блоки и слои в файле не упорядочены. То есть поочередно обрабатывая блоки можно наткнуться в нем на вставку из другого блока, который еще не был обработан. Честно говоря не знаю, можно ли умудриться сделать цикл и что в таком случае будет.
Напомню, что моя задача — преобразовать DXF в GeoJSON, который из всех видов геометрии признает лишь ломаную и многоугольник, никаких дуг и кривых.
DXF поддерживает кучу разных вариантов линий:
- Аж 2 типа ломаных — Polyline и LWPolyline. В моем случае простых 2д чертежей разницы между ними никакой
- Дуги, причем аж двух видов — эллиптические и круговые. К счастью в классах Kabeja уже есть готовые методы для получения координат точек на них, так что преобразовать дугу в ломаную с нужной точностью несложно
- Сплайны — опять же Kabeja сама умеет их преобразовывать в Polyline
- Просто линейные отрезки
Казалось бы все просто, но нет. Даже простой на первый взгляд тип Polyline может использоваться для отображения кривых второго порядка (а не просто ломаных). Для этого у вершины может быть задан параметр bulge. Если он указан то две вершины соединяются не прямой линией, а дугой окружности, проходящей через эти вершины и центр которой можно выразить через них и этот параметр.
Вот такой вот код позволяет определить центр окружности:
private Point getCenterByVerticesAndBulge(DXFVertex a, DXFVertex b, double bulge) < double norm = Math.sqrt(Math.pow(b.getX() — a.getX(), 2) + Math.pow(b.getY() — a.getY(), 2)); double s = norm / 2; double d = s * (1 — bulge * bulge) / (bulge * bulge); // «direction» double u = (b.getX() — a.getX()) / norm; double v = (b.getY() — a.getY()) / norm; //»center» double c1 = Math.signum(bulge) * -v * d + (a.getX() + b.getX()) / 2; double c2 = Math.signum(bulge) * u * d + (a.getY() + b.getY()) / 2; return new Point(c1, c2, 0); >
Над этими дугами я бился долго, да в итоге плюнул и отключил их, соединяя вершины напрямую. Так как в генпланах такие дуги обычно используют для закруглений на углах перекрестков, я мог на них вполне забить — разница с точки зрения симуляции невелика.
Заливки/штриховки (hatch)
Это то с чем непосредственно работает мой симулятор. Здания, дороги и генераторы я пока требую задавать именно заливками (иначе непонятно где в мешанине отдельных линий внутренняя часть, а где — внешняя).
- Границей заливки может быть любая комбинация объектов-линий. Часть границы может быть ломаной, затем несколько дуг, потом просто куча отрезков разных линий
- Один объект заливки может иметь произвольное число непересекающихся областей (что нехарактерно для многих других форматов где у многоугольника есть только одна внешняя граница), каждая из которых может иметь произвольное число дырок
- Заливки могут быть многократно вложенными: то есть внутри заливки дырка, в которой еще одна заливка, в которой снова дырка, причем все это в DXF задается одним объектом HATCH с несколькими границами.
- Есть и еще более экзотические варианты отношений заливки и ее границ (см картинку) но мне они пока слава богу не попадались
В общем из DXF для заливки мы получаем кучу границ, имеющих флаг «внешняя или внутренняя», а дальше сами должны как-то разбираться как они вообще сделаны и как их раскидать по GeoJSON-овским полигонам, которые могут иметь только одну внешнюю границу и не имеют вложенности.
Я сходил по нескольким путям, но на каждый алгоритм я довольно быстро получал чертеж, на котором этот алгоритм не работал. Например вот этот вот: схема улиц и проездов для жилого района Читы, в котором они все заданы буквально парой объектов HATCH с очень сложной структурой, в которой почему-то все границы были помечены как внешние (чую тут какой-то баг в Kabeja, так как DXF определяет сразу два схожих флага External и Outer, но в самой библиотеке есть только один):
- Создать полигон для каждой внешней границы
- Вычесть из него все остальные границы, неважно отмечены ли они внешними или внутренними
- Исправить возможные проблемы (полигон получился пустой, дырки выходят за границы внешнего контура, полигон разбился на несвязанные области и т.п.)
Для третьего пункта (да и вообще для работы с геометрией уже внутри самого алгоритма симуляции) я использовал библиотеку JTS — Java Topology Suite. Она содержит довольно много всяких нужных примитивов и операций по работе с геометрией, начиная от операций типа построения буфера и заканчивая структурами данных типа квадродерева.
После множества мучений и подперев все что можно костылями, я все-таки смог создать поддержку нужного мне подмножества DXF и загружать чертежи напрямую в свой симулятор, чтобы использовать их для определения косяков проектировщиков. Поскольку большую часть из указанной выше информацией мне пришлось добывать с боем и сидением до двух ночи над NanoCAD-ом (не реклама, но это единственный легкодоступный бесплатный и качественный редактор DXF который я нашел, тот же LibreCAD не осилил открыть правильно первый же чертеж что я ему передал), я решил поделиться ей и с хабрасообществом — вдруг мой опыт сэкономит кому-то время.
Ну и да, вот как-то так выглядит предсказание моего алгоритма для района со скриншота выше:
Очевидные выводы — не надо делать дорожки под прямым углом, но не надо и пытаться делать какие-то непонятные закругления там где не надо. Посмотрим через несколько лет, оправдается ли мой прогноз когда район этот построят.
Источник: habr.com