Как превратить рисунок в однолинейный SVG для плоттера
Преобразуйте отсканированный рисунок в осевые контуры SVG, по которым перьевой плоттер проходит один раз, без двойных краёв обычной контурной трассировки.
На этой странице
- Почему обычная трассировка SVG рисует каждую линию дважды
- Что на самом деле содержит однолинейный SVG
- Выберите рисунок, подходящий для трассировки по средней линии
- 1. Получите и подготовьте исходник
- 2. Выполните трассировку по средней линии в Inkscape
- 3. Проверьте конечные точки, ветви и случайные петли
- 4. Определите, где перо должно подниматься
- 5. Задайте внешний вид обводки и размер документа
- 6. Просмотрите маршрут и выполните тест перед окончательным рисованием
- Где подходит PerfectVector, а где нет
- Частые вопросы
- Источники
Чтобы превратить рисунок в однолинейный SVG для перьевого плоттера, используйте трассировку по средней линии, а не обычную контурную трассировку. Обычный векторизатор обводит оба края каждого чернильного штриха. Трассировщик средней линии определяет один контур посередине — именно по нему должно двигаться перо.
Результат может содержать несколько открытых контуров и требовать нескольких подъёмов пера. «Однолинейный» описывает геометрию каждого штриха; это не означает, что вся иллюстрация представляет собой один непрерывный <path>. Объединение всех сегментов в один объект может добавить нежелательные соединительные линии, поэтому оптимизируйте перемещения только после того, как сам рисунок будет правильным.
Краткий порядок действий
- Возьмите рисунок с тонкими, ровными, контрастными линиями на чистом фоне.
- Отсканируйте или сфотографируйте его без перспективных искажений, затем удалите тени и текстуру бумаги.
- Выполните трассировку по средней линии в Inkscape или другом инструменте с такой функцией.
- Задайте результату видимую обводку без заливки и проверьте каждое разветвление и конечную точку.
- Удалите соринки, сгладьте явную неровность и соедините только те линии, которые должны соприкасаться.
- Задайте размер страницы SVG, просмотрите маршрут рисования и выполните небольшой тест на бумаге.
Почему обычная трассировка SVG рисует каждую линию дважды
Штрих маркера имеет видимую ширину. Контурный векторизатор воспринимает эту тёмную область как фигуру и проводит вокруг неё границу. В полученном SVG часто оказывается длинный замкнутый контур: одна сторона исходного штриха, поворот вокруг его конца и обратный путь по другой стороне.
На экране такой файл выглядит правильно, потому что фигура с заливкой напоминает чернильный штрих. Перьевой плоттер не воспроизводит заливку как цветную область. Он следует векторным контурам. Поэтому две границы превращаются в два прохода пера.

Двойной контур полезен, когда для дальнейшей работы нужна фигура с заливкой, печатный силуэт или граница реза. Но эта геометрия не подходит, если перо, гравировальный наконечник или инструмент для фольгирования должен пройти по исходному штриху один раз. Стандартный подход к линейным рисункам объясняется в статье почему линии превращаются в обводящие контуры; здесь мы подготовим вариант для плоттера.
Что на самом деле содержит однолинейный SVG
Линейный рисунок, готовый для плоттера, обычно имеет следующие свойства:
- контуры используют обводку и не имеют заливки;
- каждый видимый штрих представлен одним осевым контуром, а не тонкой замкнутой фигурой;
- предусмотренные пересечения сходятся точно, без мелких зазоров и дублирующих сегментов;
- конечные точки находятся там, где перо должно остановиться или подняться;
- размеры страницы соответствуют бумаге или предполагаемой области рисования;
- контуры остаются в пределах страницы.
SVG может содержать десять контуров или тысячу. Само их количество не говорит о том, однолинейный ли это рисунок. Увеличьте один штрих и воспользуйтесь инструментом узлов. Если вы видите один ряд узлов посередине, это средняя линия. Если узлы идут по обеим сторонам и соединяются вокруг концов, это обводящий контур. Для анимационных рисунков руководство по режимам преобразования OpenToonz применяет это различие к выбранным кадрам, собственным векторным уровням и последующему редактированию ширины.
Для эффекта постепенного рисования в браузере в руководстве по анимации обводки SVG сравниваются открытый маршрут, полоса с заливкой и её периметр. Подготовьте маршрут рисования до настройки времени: анимация не восстанавливает порядок движений пера из обводящего контура.
Документация AxiDraw особенно ясно описывает поведение устройства: в обычном режиме рисования SVG контуры рисуются как контуры, а внешний вид заливки и обводки не используется для закрашивания области. Предпросмотр может выглядеть насыщенным и сплошным, но при этом содержать совсем не тот маршрут, который вам нужен.
Выберите рисунок, подходящий для трассировки по средней линии
Трассировка по средней линии работает лучше всего, когда исходник даёт алгоритму очевидную середину:
- тёмные чернила на белой или равномерно окрашенной бумаге;
- достаточно постоянная ширина штриха;
- отчётливые промежутки между соседними линиями;
- отсутствие теневой штриховки, плотных скоплений штрихов и текстуры бумаги, мешающих распознать линию;
- кривые достаточно крупные, чтобы отличаться от шума сканирования.
Тонкий фломастер, линер или аккуратный цифровой рисунок кистью подходят лучше, чем графитный карандаш. Разный нажим карандаша создаёт серый текстурный штрих с неопределёнными краями и серединой. У широкой каллиграфической кисти тоже есть средняя линия, но изменение ширины несёт выразительную информацию, которую один равномерный штрих плоттера не воспроизведёт.
Если переменная ширина принципиальна для рисунка, есть три честных варианта: сохранить контурную версию и заполнить её штриховкой, использовать несколько проходов пера или разные наконечники либо оставить изображение векторной графикой с заливкой, не рассчитывая, что одна средняя линия будет выглядеть так же.
1. Получите и подготовьте исходник
По возможности отсканируйте рисунок. При фотографировании держите камеру параллельно бумаге и освещайте её с обеих сторон, чтобы один край не оказался в тени. Обрежьте страницу, исправьте перспективу и поверните изображение до трассировки.
Затем подготовьте простой чёрно-белый исходник:
- осветлите бумагу до белого, не стирая слабые, но намеренные линии;
- затемните рисунок настолько, чтобы каждый нужный штрих оставался непрерывным;
- удалите отдельные пылинки, крошки ластика и тени;
- не повышайте резкость до появления светлого ореола вокруг линии;
- проверьте пересечения при большом увеличении.
Не утолщайте линию лишь ради того, чтобы она стала «более векторной». Более толстый растровый штрих создаёт широкую область, середина которой на крутых поворотах может быть неоднозначной. Сохраняйте минимальную чистую ширину, при которой линия остаётся непрерывной.
Если исходник — детский рисунок и его неровность придаёт ему характер, воспользуйтесь советами по получению изображения из статьи превращение детского рисунка в SVG, но пропустите этап обычной контурной трассировки. Подготовка остаётся той же, меняется режим трассировки.
2. Выполните трассировку по средней линии в Inkscape
Импортируйте подготовленное изображение в Inkscape, выделите его и откройте Path → Trace Bitmap. Выберите Centerline tracing (autotrace), а не Brightness cutoff или Edge detection. В руководстве Inkscape для начинающих этот режим описан как сведение фигуры к открытому контуру; он рекомендуется для рукописного текста и других линейных рисунков.
Просмотрите результат и обратите внимание на сложные места:
- близкие параллельные штрихи могут слиться в один;
- внутри петли может появиться короткая перемычка;
- на пересечении может быть выбрана неверная ветвь;
- слабый штрих может распасться на несколько частей;
- пыль может превратиться в маленький отдельный контур.
Примените трассировку, отодвиньте вектор от растра и сравните их рядом. Уберите заливку у полученного объекта и задайте контрастную обводку, чтобы маршрут был виден. Если ничего не появляется, возможно, у результата просто ещё не задана обводка: выделите его и назначьте её.
Названия меню и доступные движки трассировки могут меняться между версиями, поэтому используйте текущий режим средней линии в установленном Inkscape, а не слепо повторяйте старые инструкции для расширений.
3. Проверьте конечные точки, ветви и случайные петли
Переключитесь на инструмент узлов. Начните с одной конечной точки и мысленно пройдите по маршруту. Хорошая средняя линия должна держаться около середины чернильного штриха и выбирать тот же путь, что выбрало бы перо.
Исправляйте геометрию в следующем порядке:
- Удалите соринки и короткие фрагменты. Они вызывают ненужные касания пера.
- Соедините разорванные штрихи. Объединяйте конечные точки только там, где исходная линия была непрерывной.
- Удалите дублирующие сегменты. Два одинаковых контура рисуются дважды, даже если точно совпадают.
- Исправьте точки разветвления. Определите, какой контур продолжается, а какой заканчивается на стыке.
- Сгладьте локальные неровности. Переместите или удалите несколько узлов; не упрощайте вслепую весь рисунок.
- Разомкните случайные замкнутые петли. Осевой контур может образовывать петлю, если она есть на рисунке, но тонкая капсула вокруг штриха означает, что сохранилась контурная геометрия.
Включите контурный или каркасный режим просмотра, если редактор его поддерживает. Оформление может скрывать дубликаты, а просмотр самих контуров сразу их обнаруживает.
4. Определите, где перо должно подниматься
Меньшее число подъёмов пера может ускорить рисование и уменьшить следы перемещений, но полное отсутствие подъёмов не всегда лучше. Отдельные глаза, точки и несвязанные украшения должны либо остаться отдельными, либо получить видимые соединительные штрихи.
Соединяйте контуры, когда:
- их конечные точки уже сходятся на рисунке;
- задуманный штрих непрерывен;
- соединение не меняет маршрут через пересечение.
Оставляйте контуры отдельными, когда:
- соединение проведёт линию по пустой бумаге;
- нужно сменить цвет или наконечник;
- элементы визуально пересекаются, но не являются одним штрихом;
- намеренный подъём предотвращает скопление чернил на стыке.
Программы упорядочивания контуров могут сократить перемещения с поднятым пером, не изменяя рисунок. В актуальном справочнике командной строки AxiDraw переупорядочивание описано как оптимизация, меняющая порядок элементов и при необходимости направление контуров для сокращения таких перемещений. Это отдельная задача, не трассировка по средней линии. Сначала подготовьте правильные штрихи, затем изменяйте их порядок.
5. Задайте внешний вид обводки и размер документа
Плоттер следует геометрии, а не декоративной толщине, которую вы видите в редакторе. Используйте умеренную экранную ширину обводки, позволяющую удобно проверять контуры; изменение этой ширины обычно не меняет физический наконечник.
Задайте странице SVG предполагаемый размер бумаги и оставьте безопасное поле вокруг рисунка. Проверьте единицы и размеры документа, а не масштабируйте на глаз в диалоге рисования. Если при импорте в другое приложение размер меняется, выполните тест SVG с известным размером, прежде чем редактировать узлы.
Если используются несколько цветов пера, разместите их на понятных слоях или примените правила оформления, по которым ПО плоттера сможет их разделить. Рисуйте по одному цвету за раз и сохраняйте совмещение, не меняя начало координат страницы.
6. Просмотрите маршрут и выполните тест перед окончательным рисованием
В предпросмотре или симуляции ПО плоттера проверьте:
- неожиданные двойные проходы;
- длинные соединения с опущенным пером через пустые области;
- мелкие фрагменты, оставляющие точки;
- чрезмерное число подъёмов пера;
- контуры за пределами страницы;
- маршрут, который начинается в густо закрашенной влажной области и возвращается туда до высыхания чернил.
Выполните тест в окончательном физическом размере на недорогой бумаге. Контур, выглядящий плавным при увеличении 400%, с настоящим пером может обнаружить механическое дрожание, скопления чернил или разрывы. Регулируйте скорость, высоту пера и нажим в настройках плоттера, а не меняйте правильную геометрию SVG ради компенсации особенностей устройства.
Где подходит PerfectVector, а где нет
PerfectVector — контурный векторизатор. Он полезен, когда отсканированному рисунку нужны чистые фигуры с заливкой для печати, резки, раскрасок или дальнейшего редактирования. Он не превращает широкий чернильный штрих в единственный осевой контур, который нужен перьевому плоттеру.
Рабочий смешанный процесс — восстановить чистые силуэты или области с заливкой с помощью PerfectVector, затем перерисовать немногочисленные настоящие штрихи инструментом средней линии. Для рисунка, целиком состоящего из штрихов, сразу переходите к трассировке по средней линии в Inkscape или вручную обведите важные кривые. Для небольшого выразительного наброска ручное рисование часто быстрее, чем исправление неудачной автоматической средней линии.
Частые вопросы
Почему перьевой плоттер рисует каждую линию дважды? Обычная векторная трассировка проходит по обоим краям каждого тёмного штриха, создавая тонкую замкнутую фигуру. Плоттер проходит по обоим граничным контурам. Используйте трассировку по средней линии и проверяйте сами контуры, не полагаясь на предпросмотр с заливкой.
Означает ли однолинейный SVG, что весь рисунок состоит из одного контура? Нет. Обычно это означает, что каждый видимый штрих представлен одним осевым контуром вместо двух обводящих границ. Несвязанные детали могут оставаться отдельными контурами и требовать подъёмов пера; принудительное объединение в один контур может создать нежелательные соединительные линии.
Может ли Inkscape преобразовать рисунок в средние линии? Да. В текущих версиях Inkscape Trace Bitmap включает режим Centerline tracing для рукописного текста и линейных рисунков. Результат всё равно нужно проверять: пересечения, слабые линии и переменная ширина штрихов могут создавать неверные ветви или разрывы.
Нужна ли однолинейному SVG заливка? Обычно нет. Задайте контурам видимую обводку и уберите заливку, чтобы проверить маршрут пера. Физическая ширина линии определяется наконечником и настройками плоттера, а не только отображаемой шириной обводки SVG.
Может ли PerfectVector создать однолинейный SVG для перьевого плоттера? Напрямую — нет. PerfectVector создаёт чистые обводящие контуры для графики с заливкой, печати и фигурной резки. Для одного контура посередине каждого штриха используйте трассировщик средней линии или перерисуйте маршрут вручную.
Источники
- Руководство Inkscape для начинающих — трассировка изображения — Режим трассировки по средней линии для рукописного текста и линейных рисунков.
- Справочник AxiDraw Python API — Обычное рисование контуров SVG и обработка внешнего вида заливки и обводки.
- Справочник AxiDraw CLI — Порядок и направление контуров, предпросмотр и оптимизация перемещений с поднятым пером.
- W3C — контуры SVG — Открытые контуры, подконтуры, конечные точки и геометрия контуров.
Если части рисунка нужны чистые векторные фигуры с заливкой до подготовки маршрутов плоттера, выполните трассировку этого растра в PerfectVector и проверьте контуры. Штрихи, по которым перо должно пройти один раз, завершите трассировкой по средней линии и настоящим тестом на бумаге.
Ещё из блога

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

Точечные обводки SVG: интервалы и круглые концы
Создайте точечные границы SVG с круглыми концами, рассчитайте видимые зазоры и исправьте неравномерный стык замкнутой обводки на оригинальном значке и редактируемых примерах.