Проверьте порядок путей AxiDraw до рисования SVG
Сравните автономные предварительные просмотры SVG в AxiDraw, чтобы проверить порядок траекторий, разворот и перемещение пера, поднятого над бумагой. Сохраните геометрию чертежа и поймите, что сохраняет сохраненный SVG.
На этой странице
- Диагностика прыжков перед изменением порядка
- Запустите три автономных предварительного просмотра неизмененного SVG.
- Сравните движение с поднятым пером и нарисованную геометрию отдельно.
- Узнайте, что сохраняет сохраненный предварительный просмотр
- Где находится PerfectVector перед этой проверкой
- Часто задаваемые вопросы
- Источники
Чтобы оптимизировать перемещение пера SVG в AxiDraw, сначала убедитесь, что контуры рисуют нужные отметки. Затем сравните офлайн-просмотры с той же геометрией и фиксированными настройками. Изменение порядка может сократить движение пера при поднятом пере без уменьшения количества подъемов или изменения нарисованных фигур.
Сохраните исходный SVG. Предварительный просмотр ниже проверяет порядок и необязательное изменение пути; он не реконструирует осевые линии, не исправляет нежелательные контуры и не меняет местами исходные объекты SVG. В нашем тесте используются восемь авторских открытых штрихов, а не векторизованный контур из PerfectVector или физический рисунок пером.
Диагностика прыжков перед изменением порядка
Движение пера, касающегося бумаги, — это маршрут, по которому оставляют отметки. Движение с поднятым пером от бумаги — это перемещение между отметками с поднятым пером. Небольшой на вид рисунок может иметь длительное движение пером, поднятым над бумагой, когда последовательные объекты расположены далеко друг от друга.
| Что показывает предварительный просмотр | На что обратить внимание в первую очередь |
|---|---|
| Два края вокруг линии, которая должна составлять один штрих. | Постройте предполагаемый однолинейный маршрут |
| Пустой периметр, где вы хотели затененную область. | Создайте явные пути для штриховки |
| Правильные оценки, но повторяющиеся прыжки по странице | Сравните настройки последовательности путей и изменения направления пути ниже. |
| Нежелательные линии, нарисованные между отдельными метками | Проверьте геометрию пера вниз и соединение путей, прежде чем принимать более короткий маршрут. |
Измерение длины пути SVG позволяет определить длину геометрии чертежа. Само по себе оно не включает перемещение машины между этими путями.
В Справочнике по CLI AxiDraw эти настройки различаются: 0 обычно следует порядку документов с возможностью объединения, 1 также меняет порядок путей, а 2 также разрешает изменение пути. Соединение соседних путей рисования — отдельное решение. Для этого сравнения мы отключаем его с помощью min_gap = -1, чтобы соседние штрихи не могли стать одной непрерывной меткой.
Разворот может иметь значение для работы, чувствительной к направлению. Если рисунок должен следовать определенной последовательности или направлению письма, более короткий маршрут движения с поднятым пером не является достаточным основанием для принятия настройки 2. Слои также ограничивают сортировку; Не следует предполагать, что вложенные группы сохраняют последовательность рисования при оптимизации. Проверьте фактический предварительный просмотр вашего документа.
Запустите три автономных предварительного просмотра неизмененного SVG.
Для этого примера требуется Python и официальный API AxiDraw Python. Мы протестировали API 3.9.6 с Python 3.9.6. Следуйте официальным инструкциям по установке, если модуль не установлен в используемой вами среде Python.
В Справочнике по API Python предварительный просмотр определяется как автономное моделирование. Установите preview = True после plot_setup и до plot_run. Сценарий ниже всегда устанавливает и утверждает его; он не содержит вызова подключения устройства.
Сохраните этот небольшой пример как eight-strokes.svg или используйте дубликат своего собственного SVG:
<svg xmlns="http://www.w3.org/2000/svg" width="100mm" height="80mm" viewBox="0 0 100 80">
<g fill="none" stroke="#152b3b" stroke-width="0.4">
<path id="stroke-0" d="M 10 20 L 18 20"/>
<path id="stroke-1" d="M 88 60 L 80 60"/>
<path id="stroke-2" d="M 20 20 L 28 20"/>
<path id="stroke-3" d="M 78 60 L 70 60"/>
<path id="stroke-4" d="M 30 20 L 38 20"/>
<path id="stroke-5" d="M 68 60 L 60 60"/>
<path id="stroke-6" d="M 40 20 L 48 20"/>
<path id="stroke-7" d="M 58 60 L 50 60"/>
</g>
</svg>Светильник имеет видовое окно размером 100 × 80 мм и соответствующие размеры viewBox. Здесь каждая единица координат сопоставляется с 1 мм, следуя сопоставлению области просмотра и области просмотра SVG. Длина каждого из восьми штрихов составляет 8 мм.
Сохраните следующее как preview-orders.py:
from pathlib import Path
import json
import sys
from pyaxidraw import axidraw
source = Path(sys.argv[1]).resolve()
destination = Path(sys.argv[2])
destination.mkdir() # Use a new directory; preserve previous results.
reports = []
for order in (0, 1, 2):
ad = axidraw.AxiDraw()
ad.plot_setup(str(source))
ad.options.preview = True
ad.options.rendering = 3
ad.options.reordering = order
ad.options.random_start = False
ad.options.auto_rotate = False
ad.options.report_time = False
ad.params.min_gap = -1
assert ad.options.preview is True
output = ad.plot_run(True)
if ad.errors.code:
raise RuntimeError(f"Preview error: {ad.errors.code}")
(destination / f"preview-order-{order}.svg").write_text(output)
reports.append({
"order": order,
"pen_down_m": ad.distance_pendown,
"pen_up_m": ad.distance_total - ad.distance_pendown,
"pen_lifts": ad.pen_lifts,
})
report = json.dumps(reports, indent=2)
(destination / "distances.json").write_text(report + "\n")
print(report)Запустите его в среде Python, содержащей официальный API, используя новое имя выходного каталога:
python3 preview-orders.py eight-strokes.svg preview-checkОн сохраняет три диагностических SVG и distances.json. rendering = 3 включает как поднятое, так и рисующее движение. Случайный запуск и автоматическое вращение отключены; объединение путей отключено. Сохраняйте эти параметры фиксированными при сравнении вашего собственного файла. Этот сценарий представляет собой метод автономной проверки, а не команду для управления плоттером.
Сравните движение с поднятым пером и нарисованную геометрию отдельно.
На нашем восьмитактном приспособлении точный сценарий выдал:
| Изменение порядка | Предполагаемое движение ручки, поднятой над бумагой | Движение пера по бумаге. | Зарегистрированные подъемы |
|---|---|---|---|
0 | 0,509749 м | 0,064 м | 8 |
1 | 0,223592 м | 0,064 м | 8 |
2 | 0,180919 м | 0,064 м | 8 |
Это оценки собственного программного обеспечения для этого файла, включая поездку с самого начала и обратно домой. Расстояние от пера осталось 64 мм, а количество подъемов осталось восемь. Более короткое движение ручки, поднятой над бумагой, не означало меньшего количества подъемов. Мы не измеряли физический рисунок пером, затраченное время рисования или гарантированное улучшение для другого рисунка.

На сложенном рисунке сравниваются настройки 0 и 2; таблица также включает 1. Он отображает копии собственных путей предварительного просмотра SDK с более яркими синими и пурпурными цветами и более толстыми штрихами для удобства чтения. Это стили отображения, а не физическая ширина пера. Собственные координаты пути и преобразования не изменяются; окно просмотра дисплея обрезает неиспользуемое пространство. Были проверены все три встроенных предварительного просмотра, а независимая проверка геометрии обнаружила одни и те же восемь горизонтальных сегментов чертежа, что позволило изменить порядок их конечных точек. Каждая выбранная вершина пера оставалась на предназначенном для нее сегменте.
Для вашего файла откройте каждый SVG предварительного просмотра и изучите слой рисунка отдельно от слоя с повышенным перемещением. Подтвердите предполагаемый размер и расположение страницы, все ожидаемые метки, неизмененные отверстия и зазоры и отсутствие новых нарисованных соединителей. Убедитесь, что любой обратный ход приемлем. Отклонить маршрут, на котором нарисованы неправильные отметки, даже если его отчет о расстоянии меньше.
Узнайте, что сохраняет сохраненный предварительный просмотр
В документации по изменению порядка AxiDraw объясняется, что оптимизация происходит во временной копии. Исходные объекты в сохраненном выходном SVG сохраняют свой первоначальный порядок. Наши выходные данные также сохранили каждый исходный путь stroke-* и его исходную последовательность.
Таким образом, preview-order-2.svg является диагностическим предварительным просмотром, а не доказательством того, что другая программа прочитает окончательно измененный порядок файлов графического изображения. Храните источник, выбранный вариант и сравнительный отчет вместе. При дальнейшем использовании оригинала с AxiDraw снова примените заданные настройки порядка в соответствующем рабочем процессе печати.
Если ваша проблема заключается в нежелательной геометрии рисунка, вернитесь к этапу построения маршрута. Если только маршрут движения с поднятым пером является расточительным, сравните предварительный просмотр с фиксированными настройками. Физический размер, поведение пера и работа машины по-прежнему требуют собственных проверок; этот автономный контроль их не доказывает.
Где находится PerfectVector перед этой проверкой
Если у вас все еще есть только растровые изображения и вы хотите, чтобы их видимые контурные фигуры с цветовой заливкой были редактируемыми векторными фигурами, векторизатор изображений PerfectVector может быть подходящим предыдущим шагом. Проверьте его предварительный просмотр на соответствие контурам и отверстиям вашего источника. Он не выводит единственную осевую линию и не оптимизирует порядок путей AxiDraw; используйте рабочий процесс осевой линии или штриховки, когда вам нужны эти маршруты.
Если у вас уже есть правильные маршруты SVG, сохраните их и выполните автономную проверку напрямую. Повторное отслеживание SVG не добавляет недостающей информации о порядке. Защищенный предварительный просмотр PerfectVector доступен только для просмотра; редактирование и экспорт результата требуют его разблокировки.
Часто задаваемые вопросы
Изменит ли изменение порядка AxiDraw порядок объектов моего SVG? Нет. Документированная оптимизация использует временную копию. Сохраненный предварительный просмотр содержит слои диагностического движения, в то время как исходные графические объекты сохраняют свой порядок. Сохраните выбранную настройку отдельно.
Почему движение пера, поднятого над бумагой, уменьшилось, а количество подъемов осталось прежним? Те же восемь отдельных ударов можно проходить в разной последовательности или направлении. В нашем тестовом эталоне с отключенным объединением путей все настройки сообщали о восьми подъемах и 64 мм рисунка, в то время как движение с поднятым пером изменилось.
Может ли упорядочение исправить двойной контур или создать затенение? Нет. Сначала исправьте маршруты рисования. Используйте рабочий процесс осевой линии для одного штриха или создайте явные пути штриховки для затенения области, а затем сравните порядок принятой геометрии.
Источники
- AxiDraw — Справочник по API Python — определяет автономный предварительный просмотр и рендеринг с примерами, возвращающими файлы SVG для предварительного просмотра.
- AxiDraw — Справочник по CLI — описывает установку, настройки последовательности путей и изменения направления пути, обработку слоев и временную оптимизацию.
- W3C — Системы координат, преобразования и единицы измерения SVG — поясняет сопоставление области просмотра, используемое в примере с размерами.
Все еще начинаете с растрового рисунка, контурные фигуры которого с цветовой заливкой вам нужны? Начните со своего собственного изображения, затем проверьте контуры и отверстия предварительного просмотра относительно исходного изображения. Как только намеченные маршруты пера будут созданы, проверьте их порядок отдельно с помощью автономного метода, описанного выше.
Ещё из блога
V-гравировка: почему широкий штрих режется глубже
Узнайте, как ширина рисунка и угол V-фрезы определяют глубину, рассчитайте пример логотипа и различайте плоскую глубину, глубину прохода и геометрию трассировки.
Линии биговки и реза SVG: читайте геометрию
Прочитайте геометрию сгиба SVG до назначения Score или Cut. Сравните открытые контуры, залитые полосы и пунктир, затем проверьте документированный процесс Cricut.


