PerfectVector
Автор: Irene Kim7 мин чтения

Импорт SVG в OpenSCAD: фигура заданного размера для выдавливания

Импортируйте геометрию SVG в OpenSCAD, проверьте отверстия и размеры и выдавите фигуру заданного размера. Узнайте, почему белый центр может требовать исправления, чтобы стать настоящим отверстием.

На этой странице

Импорт SVG в OpenSCAD начинается с import("emblem.svg");. Это загружает двумерную фигуру. Для создания объёмного тела оберните импорт в linear_extrude(). Перед добавлением высоты проверьте очертание, пустые пространства и нужную ширину. Рисунок, правильный в браузере, всё ещё может содержать фоновый прямоугольник или белую фигуру вместо ожидаемого отверстия.

Это руководство разделяет проверки на примере трассированной цветочной эмблемы. Исходник, реальный вывод PerfectVector и явно отредактированный SVG показывают изменения до этапа CAD. Геометрия SVG проверена; примеры OpenSCAD ниже — инструкции для выполнения на своём файле, а не результаты проверенной модели OpenSCAD.

Начните с фигуры для изготовления

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

Для первого выдавливания выберите один выразительный силуэт с достаточно крупным отверстием. Оставьте мелкие буквы, узкие перемычки, отдельные точки и декоративную текстуру для следующей версии. Размер рисунка на экране не определяет, сохранятся ли эти элементы при конечном размере детали.

Рабочий файл должен отвечать на три вопроса:

  • Какие области должны стать сплошным материалом?
  • Какие должны оставаться пустыми насквозь?
  • Какой должна быть ширина готового очертания в миллиметрах?

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

Белый центр не становится отверстием автоматически

Мы преобразовали подготовленный растр цветка размером 1 254 × 1 254 через PerfectVector и проверили неизменённый SVG. Он содержал три замкнутых контура: почти белый фоновый прямоугольник, чёрный силуэт цветка и почти белый центральный круг. Встроенных растровых изображений не было.

Центр выглядел пустым на белой странице, но был отдельной нарисованной фигурой. Удаление одного круга показало бы сплошной чёрный цветок под ним, а не прорезало отверстие.

Для отдельного рабочего SVG мы удалили проверенный фон и поместили исходные контуры цветка и круга в один составной контур с правилом заливки чётности. Координаты контуров не менялись. Отрисовка исправленного SVG подтвердила прозрачные пиксели в центре и снаружи цветка с непрозрачным чёрным лепестком между ними. Это проверяет пустые области SVG, но не доказывает корректное тело OpenSCAD или пригодную к печати деталь.

Растровый цветок, исходный SVG из трёх контуров и исправленный SVG с составным контуром и прозрачным центром на синем фоне с синими очертаниями SVG
Подготовленный растровый исходник и реальный результат PerfectVector. Третья панель — отредактированный рабочий SVG: фон удалён, исходный центральный контур превращён в отверстие. Это отрисовки SVG, а не OpenSCAD. Синие линии наложены на реальные контуры SVG для проверки; контуры фона не показаны.

Импортёр OpenSCAD использует геометрию замкнутых фигур, а не считает их нарисованный вид инструкцией моделирования. Документированная поддержка также ограничена для текста, обрезки и маскирования. Для подготовки CAD превратите нужный материал в явные контуры, а нужные отверстия — в настоящие вырезы. См. документацию импорта SVG.

В векторном редакторе работайте с копией: определите внешний силуэт и внутреннюю фигуру, вычтите внутреннюю из внешней, затем сохраните результат. Временно поместите контрастный фон позади, чтобы подтвердить прозрачность отверстия. Удалите временный фон перед сохранением копии для CAD. Если отверстий несколько, проверьте каждое.

Импортируйте подготовленный SVG как 2D-геометрию

Сохраните готовый для CAD файл как emblem-cad.svg рядом с документом OpenSCAD. Начните только с этого:

import("emblem-cad.svg", center = true);

Просмотрите импорт сверху. Вы должны видеть нужное очертание и отверстие без прямоугольника вокруг графики. center = true центрирует импортированную ограничивающую рамку; он не исправляет контуры и не удаляет лишние фигуры. Справочник OpenSCAD по импорту SVG описывает параметр и поведение по умолчанию.

Если импорт пуст, сначала подтвердите имя файла и относительное расположение, затем прочитайте сообщения консоли. Откройте SVG в векторном редакторе и проверьте реальные фигуры вместо встроенного изображения. Одно расширение .svg не подтверждает трассировку картинки.

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

Задайте осознанную ширину перед высотой

SVG передают размеры через размер документа, единицы и систему координат. Параметр dpi OpenSCAD действует, когда соответствующие размеры не имеют явных единиц или отсутствуют; это не универсальная коррекция масштаба. Не меняйте DPI многократно до правдоподобного вида фигуры. Руководство импорта объясняет применимость параметра.

Для эмблемы с общей шириной 40 мм задайте размер явно:

resize([40, 0, 0], auto = true)
    import("emblem-cad.svg", center = true);

Здесь resize() устанавливает размер X в 40, а auto = true пропорционально масштабирует неуказанные размеры. Это отличается от scale(), умножающего существующие размеры. Справочник преобразований описывает обе операции.

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

Сорок миллиметров — пример размера, а не рекомендуемый минимум. При выбранном размере проверьте самую узкую перемычку, центральное отверстие и отдельные островки с учётом требований принтера, материала и детали.

Выдавите, отрисуйте и проверьте экспортированную модель

Когда 2D-очертание и ширина выглядят правильно, добавьте прямое выдавливание:

linear_extrude(height = 3)
    resize([40, 0, 0], auto = true)
        import("emblem-cad.svg", center = true);

Читайте изнутри наружу: импортировать подготовленную фигуру, задать ширину, затем дать 3 мм высоты. Это базовая схема выдавливания SVG из руководства 2D-подсистемы. Высота — ещё один пример, а не конструкционная рекомендация.

Сохраняйте первую модель простой. Дополнительное скручивание, сужение, объединения или размещение на поверхности могут скрывать правильность исходного импорта. Проверьте виды сверху и сбоку: отверстие должно оставаться открытым насквозь, а нужное очертание — иметь высоту.

Выполните полную отрисовку F6, проверьте ошибки, затем экспортируйте модель в STL, если этот формат нужен следующему приложению. Руководство экспорта STL различает отрисовку и экспорт. Успешный предварительный просмотр не является последней приёмочной проверкой.

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

Диагностируйте проблемный этап

Что вы видитеЧто проверить первымПолезное следующее действие
Сплошной прямоугольникТрассированный фоновый контурУдалить проверенный фон в рабочем SVG.
Центр заполняетсяБелая накладка вместо настоящего отверстияВычесть центр из силуэта и снова проверить прозрачность.
Неправильный размер очертанияРазмеры документа, единицы или лишние границыПроверить единицы исходника или задать осознанную пропорциональную ширину.
Линия пропадает или меняет толщинуОткрытая или замкнутая геометрия контураПревратить нужный материал в явные залитые фигуры.
Просмотр приемлем, но отрисовка не работаетОшибки консоли и подозрительные пересечения контуровУпростить до изолированного импорта, затем исправить исходную геометрию.
Слайсер теряет мелкие деталиРазмер элементов при конечном масштабеУвеличить или упростить дизайн и снова проверить слои.

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

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

Может ли OpenSCAD импортировать SVG напрямую? Да. Используйте import("emblem.svg"); для загрузки поддерживаемой 2D-геометрии. Проверьте контуры и размеры перед обёртыванием импорта в linear_extrude() для 3D-фигуры.

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

Как управлять размером импортированного SVG? Сначала проверьте размеры и единицы документа. Для выбранной общей ширины примените resize([40, 0, 0], auto = true) перед выдавливанием, заменив 40 нужной шириной. Удалите лишнюю фоновую геометрию перед настройкой границ.

Делает ли преобразование изображения в SVG его готовым к печати? Нет. Преобразование даёт контуры для проверки и подготовки. Всё ещё нужны подходящая замкнутая геометрия, намеренные отверстия и размеры, корректное выдавливание и проверка слайсера для конкретного дизайна и процесса.

Источники

  1. OpenSCAD SVG import reference — Поддерживаемая геометрия, параметры импорта, единицы и ограничения.
  2. OpenSCAD transformations — Пропорциональное изменение размеров, масштабирование и порядок преобразований.
  3. OpenSCAD 2D subsystem — Линейное выдавливание импортированной геометрии SVG.
  4. OpenSCAD STL export — Полная отрисовка и этап экспорта.

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

Ещё из блога

Создайте контуры SVG для 3D-печати из изображения