PerfectVector
Автор: Irene Kim

SVG, STL или 3MF: файл для объёмного логотипа

Сравните один логотип в SVG, STL и 3MF. Проверьте плоский контур, выдавленную сетку, единицы, отверстие и материалы перед выбором файла для передачи.

8 мин чтения
На этой странице

Для выпуклого логотипа сохраняйте SVG как редактируемую двумерную графику, используйте STL, когда получателю нужна поддерживаемая сетка только с геометрией, и выбирайте 3MF, когда принимающий процесс умеет использовать его единицы, объекты и сведения о свойствах. Правильная передача зависит от того, что уже смоделировано и что получателю нужно сделать дальше.

Плоскому контуру всё ещё нужна намеренно заданная высота. Сетке всё ещё нужны последующие проверки. Файл с окончанием .3mf может содержать модель без настроек, необходимых для продолжения конкретного проекта слайсера.

Выбирайте по задаче получателя

Текущая задачаПодходящий файлЧто проверить перед отправкой
Редактировать силуэт логотипа или изменить просвет буквыИсходный SVGРеальные контуры, нужные залитые области, масштаб и настоящие отверстия
Передать уже выдавленную фигуру в процесс, требующий STLSTLРазмеры сетки, согласованные единицы, замкнутая поверхность и сохранённые отверстия
Передать смоделированную геометрию с явными единицами и поддерживаемыми данными объектов/свойств3MFВключённые ресурсы, поддержку получателем и размеры после импорта
Дать кому-то продолжить конкретную настройку слайсераЭкспорт проекта этого приложенияКакие настройки сохраняются, совместимость приложения/версии и настройку принтера получателя

SVG, Scalable Vector Graphics, описывает двумерный документ, способный включать векторную геометрию и растровые изображения. Одно расширение .svg не подтверждает, что логотип состоит из пригодных контуров. Спецификация SVG определяет эту модель смешанного содержимого. Сохраняйте исходный вектор, если он существует; трассировка его снимка экрана может изменить уже редактируемую геометрию.

Сетка представляет поверхность вершинами и гранями. STL хранит треугольную геометрию поверхности; справочник экспортера STL Three.js также указывает на произвольные единицы и отсутствие стандартного представления цвета или текстуры. При обмене согласуйте предполагаемый физический размер.

Проверьте одну эмблему во всех трёх форматах

Мы создали угловатую бирюзовую эмблему с прямоугольным отверстием, затем сохранили её как SVG с областью просмотра 40mm × 30mm и viewBox="0 0 40 30". Её единственный составной контур содержит внешний и внутренний контуры; отверстие прозрачно, а не закрашено белым.

Для этого образца небольшой импортер прочитал только созданные прямолинейные контуры M, L и Z. Мы перенесли координаты SVG в модель, оставив x неизменным и преобразовав y в 30 − y, назначили одну координатную единицу модели на миллиметр и выдавили на высоту 3. Такое преобразование координат — явный авторский выбор; оно не устанавливает, как произвольное CAD-приложение прочитает SVG.

Three.js ExtrudeGeometry создал пластину с одним шагом и отключёнными фасками. Мы записали те же треугольники в бинарный STL и небольшой пакет 3MF. Образец — сама эмблема, без отдельной базовой пластины. Выпуклому логотипу, прикреплённому к другому объекту, понадобился бы этот дополнительный этап моделирования.

Исходная плоская эмблема SVG рядом с программными проекциями тех же сохранённых сеток STL и 3MF со сравнением единиц, проверки отверстия и включённых свойств
Исходная векторная графика и реальные сохранённые файлы сеток. Виды сеток проецируют треугольники, заново открытые загрузчиками Three.js; это не предпросмотр слайсера и не физические отпечатки. Серый задан просмотрщиком STL, бирюзовый получен из свойства отображения 3MF.

Независимая проверка бинарных данных/XML обнаружила по 36 треугольников в каждой сетке и одинаковые ориентированные координаты треугольников. Обе границы составляли 0…40 по X, 0…30 по Y и 0…3 по Z. У каждого ребра сетки была противоположно направленная пара, а знаковый объём совпал с ожидаемыми 2 952 кубическими координатными единицами в пределах объявленного допуска 0.000001.

Первый экспорт не прошёл проверки направления рёбер и объёма, потому что внутренний контур имел неверное направление обхода для нашего кода выдавливания. Мы развернули этот контур, заново создали оба результата и повторили те же проверки. Изменение расширения сохранило бы ошибочную сетку.

Отдельная браузерная страница загрузила сохранённые файлы через загрузчики STL и 3MF Three.js. Объявленный тест направлял вниз луч через отверстие в (14, 16) и другой через сплошной материал в (4, 15). Луч в отверстии не пересёк ни одной сетки; луч в сплошной части пересёк обе. Это ограниченные проверки файлов и загрузчиков, а не полная сертификация соответствия или тест слайсера.

Для браузерного импорта SVG руководство по Three.js SVGLoader рассматривает другую задачу: импорт контуров и проверку формы, ориентации и масштаба сцены. Наш небольшой импортер здесь работает лишь с прямыми контурами этого образца.

Единицы передаются по-разному

SVG объявляет физический размер области просмотра и прямоугольник пользовательских координат. Принимающему редактору моделей всё равно нужно перевести геометрию в собственные координаты. Проверяйте известную ширину после импорта вместо оценки размера рисунка на экране.

Наш STL содержит ширину 40 в координатах вершин. Предполагаемая ширина — 40 мм, но в файле нет стандартного поля единиц для передачи этой договорённости. Если получатель иначе истолкует числа, размер детали изменится, хотя треугольники останутся прежними.

Наша модель 3MF явно объявляет:

<model unit="millimeter"
  xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02">

Спецификация 3MF Core определяет этот атрибут единиц и структуру модели, ресурсов и сборки пакета. Всё же подтвердите отображаемые размеры в реальном принимающем приложении перед продолжением.

Модель 3MF и проект слайсера содержат разные сведения

В нашем сохранённом 3MF ровно три записи ZIP:

[Content_Types].xml
_rels/.rels
3D/3dmodel.model

В модель мы включили один объект сетки, один элемент сборки, заголовок и именованный базовый материал с displaycolor="#315D6FFF". Браузерный загрузчик прочитал бирюзовый цвет отображения. В этом пакете нет частей проекта слайсера.

Имена базовых материалов Core передают замысел дизайна, а displaycolor — свойство рендеринга. Спецификация явно отделяет его от обещания цвета напечатанного материала. Бирюзовый предпросмотр не подтверждает назначение филамента или успешную цветную печать.

Проект слайсера может включать дополнительные данные конкретного приложения. Спросите отправителя, предназначен ли файл для обмена геометрией или является сохранённым проектом, и проверьте реально восстанавливаемые настройки. Одного расширения для ответа недостаточно. В этом сравнении не тестировались проект слайсера, профиль принтера, расположение поддержек или созданные машинные инструкции.

Упаковка сетки не добавляет детализацию поверхности

Два окончательных файла сетки содержат одинаковые 36 треугольников. Ни один не получил дополнительных деталей от расширения. Наша эмблема использует прямые края, поэтому здесь также нет сравнения аппроксимации кривого контура. У криволинейной графики проверяйте тесселяцию, выбранную при моделировании/экспорте, а не считайте название формата настройкой гладкости.

Бинарный STL занимал 1 884 байта; сжатый 3MF — 1 326 байт. Эти размеры описывают только наш небольшой созданный пример. На результат влияют геометрия, представление, сжатие и включённые ресурсы; это не универсальное преимущество размера файла.

Храните исходный SVG и документ моделирования, если важны будущие правки. Экспортированная треугольная сетка не сохраняет исходную историю редактирования контуров или моделирования лишь потому, что её можно открыть заново.

Проверьте передачу в принимающем процессе

Перед отправкой смоделированного логотипа сообщите получателю предполагаемые ширину, высоту, толщину и назначение файла. Затем попросите проверить:

  1. Размеры: известная ширина и высота выдавливания соответствуют предполагаемым физическим единицам.
  2. Отверстие: пустая область проходит через всю пластину, а не заканчивается скрытой гранью.
  3. Ориентация и структура тела: эмблема обращена в нужную сторону, необходимая основа или крепление присутствуют.
  4. Свойства: ожидаемые сведения об объектах/материалах сохранились; цвет предпросмотра не является привязкой материала машины.
  5. Подготовка производства: реальный процесс моделирования или нарезки получателя завершает собственные проверки и анализ траекторий.

Если SVG импортируется без пригодной области, следуйте диагностике выдавливания SVG. Если выбран OpenSCAD, используйте список проверок импорта и выдавливания SVG. Эти вопросы приложений остаются отдельными от выбора обменного формата.

Где уместно восстановление вектора

Если у вас уже есть редактируемая векторная графика, сохраните её и работайте с копией для моделирования. Если плоский логотип существует только как PNG или JPG, процесс PerfectVector для SVG в 3D-печати может создать контуры для проверки до моделирования. Проверьте силуэт, настоящие отверстия, нежелательные фоновые фигуры и масштаб в принимающем инструменте.

Этот этап растр–вектор даёт двумерную графику. Высота, базовые пластины, допуски, назначения материалов и подготовка печати остаются последующей работой. Сохраняйте фотографии или живописные фактуры как растровые ориентиры, если плоский силуэт отбросит задуманный результат; им может требоваться другой 3D-метод.

Более общее руководство по изображению в SVG для 3D-печати рассматривает более ранний выбор подготовки источника. Наша исходная эмблема началась как векторная геометрия и не проходила трассировку или конвертацию бэкендом.

Частые вопросы

Является ли SVG файлом 3D-печати, как STL? SVG описывает двумерную графику. Программа может использовать её залитые границы для создания 3D-модели, но высоту и другие решения моделирования нужно задать. STL описывает уже смоделированную треугольную поверхность.

Всегда ли 3MF содержит настройки принтера? Нет. Наш проверенный 3MF содержит геометрию модели, единицы и свойство отображения базового материала, без частей проекта слайсера. Проверяйте, что реально сохранило авторское приложение и что получатель может открыть.

Исправит ли преобразование STL в 3MF отверстие логотипа? Одна смена пакета не чинит исходную сетку. В первом экспорте нам пришлось исправить направление обхода стенки отверстия до повторного создания обоих форматов. Проверяйте реальную геометрию после любого исправления.

Отправлять сервису печати SVG или готовую сетку? Спросите, какой этап они выполняют. SVG может дать плоский контур, если они предлагают моделирование; поддерживаемый STL или 3MF — смоделированную поверхность. Укажите предполагаемые размеры и подтвердите требования сервиса, не считая расширение подтверждением приёмки.

Источники

  1. W3C — Scalable Vector Graphics 2 — Определяет двумерную векторную модель SVG и документ со смешанным содержимым.
  2. Three.js — STLExporter — Описывает геометрию поверхности STL, произвольные единицы и бинарный экспорт.
  3. Three.js — ExtrudeGeometry — Описывает параметры глубины, шагов и фасок, использованные в созданном образце.
  4. 3MF Consortium — Основная спецификация — Определяет единицы модели, структуру пакета, базовые материалы и ограничения цвета отображения.

Есть только плоский растровый логотип? Создайте вариант SVG для этапа моделирования, проверьте границы и отверстия, затем выберите передачу сетки или проекта, которая действительно нужна получателю.

Ещё из блога

PerfectVector

Превратите файл изображения в
редактируемый SVG

Без банковской карты