К любой широкой полилинии. Это одна ветка рендера: как только у полилинии появляется ширина, она рисуется сплошной заливкой и тип линии к ней не применяется, пока так. Накидайте реальных файлов с такими сущностями, добавлю в следующем релизе.
Текст внутри линий не поддерживается, линия будет нарисована правильным пунктиром, но без текста. С бульгами всё ок — паттерн тесселируется и идёт по дугам так же, как по прямым сегментам. Переменная ширина поддерживается, но штрих-пунктир поверх широкой полилинии пока не накладывается. Если у полилинии появляется ширина, она рисуется сплошной заливкой.
Часто ли это употребимые типы? Мне не попадалось файлов с такими линиями. Если не сложно — прикрепите тестовый файл в ишью в гитхабе, заведу в бэклог.
Типы линий читаются из таблицы LTYPE в самом файле. Полилинии режутся на штрихи/точки/пробелы по паттерну из определения линии, с учётом LTSCALE (глобального и поэлементного) и авто-масштаба по габаритам чертежа. Штриховки: заливка контуров (с island/style по чётно-нечётному правилу) плюс паттерн-штриховка, где линии клиппятся по границам. Если в DXF лежит встроенное определение паттерна — берётся оно, если паттерн задан только именем — фоллбэк на встроенные паттерны.
Согласен, если проект сам формирует чертежи, то DXF — это конечный формат экспорта на бэке и браузерный рендер именно DXF тут вряд ли нужен. А вот когда чужой DXF загружают в твой сервис и надо с ним работать — отобразить, измерить, отключить слои — тут dxf-kit и нужен, и работает без бэкенда.
Да, конечно! Спасибо за поправку, я уже привык мыслить DXF типами. Там они идут по своей логике и не совпадают с ГОСТ: DASHED/HIDDEN ≈ штриховая, CENTER ≈ штрихпунктирная тонкая, PHANTOM ≈ с двумя точками, DOT — точечная, DASHDOT — штрих-точка, плюс DIVIDE, BORDER и т.д.
Перечитал Вашу статью — ровно 10 лет прошло, хех — по всем граблям понимающе кивал, на все пришлось наступить. Для DWG есть LibreDWG, её WASM-сборку можно затащить прямо в браузер. Но это +6 МБ, для веб-бандла ощутимо. Поэтому в планах сделать поддержку DWG отдельным пакетом.
К любой широкой полилинии. Это одна ветка рендера: как только у полилинии появляется ширина, она рисуется сплошной заливкой и тип линии к ней не применяется, пока так. Накидайте реальных файлов с такими сущностями, добавлю в следующем релизе.
Текст внутри линий не поддерживается, линия будет нарисована правильным пунктиром, но без текста. С бульгами всё ок — паттерн тесселируется и идёт по дугам так же, как по прямым сегментам. Переменная ширина поддерживается, но штрих-пунктир поверх широкой полилинии пока не накладывается. Если у полилинии появляется ширина, она рисуется сплошной заливкой.
Часто ли это употребимые типы? Мне не попадалось файлов с такими линиями. Если не сложно — прикрепите тестовый файл в ишью в гитхабе, заведу в бэклог.
Типы линий читаются из таблицы LTYPE в самом файле. Полилинии режутся на штрихи/точки/пробелы по паттерну из определения линии, с учётом LTSCALE (глобального и поэлементного) и авто-масштаба по габаритам чертежа.
Штриховки: заливка контуров (с island/style по чётно-нечётному правилу) плюс паттерн-штриховка, где линии клиппятся по границам. Если в DXF лежит встроенное определение паттерна — берётся оно, если паттерн задан только именем — фоллбэк на встроенные паттерны.
Согласен, если проект сам формирует чертежи, то DXF — это конечный формат экспорта на бэке и браузерный рендер именно DXF тут вряд ли нужен. А вот когда чужой DXF загружают в твой сервис и надо с ним работать — отобразить, измерить, отключить слои — тут dxf-kit и нужен, и работает без бэкенда.
Да, конечно! Спасибо за поправку, я уже привык мыслить DXF типами. Там они идут по своей логике и не совпадают с ГОСТ: DASHED/HIDDEN ≈ штриховая, CENTER ≈ штрихпунктирная тонкая, PHANTOM ≈ с двумя точками, DOT — точечная, DASHDOT — штрих-точка, плюс DIVIDE, BORDER и т.д.
Перечитал Вашу статью — ровно 10 лет прошло, хех — по всем граблям понимающе кивал, на все пришлось наступить.
Для DWG есть LibreDWG, её WASM-сборку можно затащить прямо в браузер. Но это +6 МБ, для веб-бандла ощутимо. Поэтому в планах сделать поддержку DWG отдельным пакетом.
Неплохая видеоиллюстрация к статье