AxiDraw: Pfadreihenfolge vor dem Plotten prüfen
Vergleichen Sie die Offline-SVG-Vorschau von AxiDraw, um die Pfadreihenfolge, -umkehr und -bewegung zu überprüfen, wenn der Stift vom Papier abgehoben ist. Behalten Sie die Zeichnungsgeometrie bei und verstehen Sie, was in der gespeicherten SVG-Datei enthalten ist.
Auf dieser Seite
- Diagnostizieren Sie die Sprünge, bevor Sie die Reihenfolge ändern
- Führen Sie drei Offline-Vorschauen auf einer unveränderten SVG-Datei aus
- Vergleichen Sie die Bewegung separat mit der angehobenen und gezeichneten Geometrie des Stifts
- Verstehen Sie, was die gespeicherte Vorschau bewahrt
- Wobei PerfectVector vor dieser Prüfung passt
- FAQ
- Quellen
Um den SVG-Stiftweg in AxiDraw zu optimieren, bestätigen Sie zunächst, dass die Pfade die gewünschten Markierungen zeichnen. Vergleichen Sie dann Offline-Vorschauen mit der gleichen Geometrie und den gleichen festen Einstellungen. Eine Neuordnung kann die Bewegung des Stifts bei angehobenem Stift verkürzen, ohne die Anzahl der Anhebungen zu verringern oder die gezeichneten Formen zu ändern.
Behalten Sie Ihr Original-SVG. In der Vorschau unten werden die Reihenfolge und die optionale Pfadumkehr überprüft. Es rekonstruiert keine Mittellinien, repariert keine unerwünschten Umrisse und ordnet die ursprünglichen SVG-Objekte nicht dauerhaft neu an. Unser Test verwendet acht erstellte offene Striche, keinen vektorisierten Umriss aus PerfectVector oder eine physische Stiftzeichnung.
Diagnostizieren Sie die Sprünge, bevor Sie die Reihenfolge ändern
Durch die Bewegung, bei der der Stift das Papier berührt, werden Markierungen erzeugt. Eine Bewegung mit vom Papier abgehobenem Stift ist eine Bewegung zwischen Markierungen mit angehobenem Stift. Bei einer kurz wirkenden Zeichnung kann es zu langen Bewegungen mit abgehobenem Stift vom Papier kommen, wenn aufeinanderfolgende Objekte weit voneinander entfernt liegen.
| Was die Vorschau zeigt | Worauf Sie zuerst eingehen sollten |
|---|---|
| Zwei Kanten um eine Linie, die ein Strich sein sollte | Konstruieren Sie die beabsichtigte einzeilige Route |
| Ein leerer Bereich, an dem Sie einen schattigen Bereich wünschen | Erstellen Sie explizite Schraffurfüllstiftpfade |
| Korrekte Markierungen, aber wiederholte Sprünge über die Seite | Vergleichen Sie unten die Einstellungen für Pfadsequenzierung und Pfadrichtungsumkehr |
| Unerwünschte Linien zwischen einzelnen Markierungen | Überprüfen Sie die Stiftgeometrie und die Pfadverbindung, bevor Sie eine kürzere Route akzeptieren |
Durch Messen der SVG-Pfadlänge lässt sich ermitteln, wie lang die Zeichnungsgeometrie ist. Die Fahrt der Maschine zwischen diesen Pfaden ist darin nicht enthalten.
Die AxiDraw-CLI-Referenz unterscheidet diese Einstellungen: 0 folgt normalerweise der Dokumentreihenfolge mit verfügbarer Verknüpfung, 1 ordnet Pfade ebenfalls neu an und 2 ermöglicht auch eine Pfadumkehr. Das Verbinden benachbarter Zeichenpfade ist eine separate Entscheidung. Für diesen Vergleich deaktivieren wir es mit min_gap = -1, sodass benachbarte Striche nicht zu einer durchgehenden Markierung werden können.
Bei richtungsabhängigen Arbeiten kann die Umkehrung von Bedeutung sein. Wenn die Zeichnung einer bestimmten Schreibreihenfolge oder -richtung folgen muss, ist eine kürzere Bewegungsstrecke mit erhobenem Stift kein ausreichender Grund, die Einstellung 2 zu akzeptieren. Ebenen schränken auch die Sortierung ein; Es sollte nicht davon ausgegangen werden, dass verschachtelte Gruppen eine Zeichnungssequenz während der Optimierung beibehalten. Sehen Sie sich die tatsächliche Vorschau Ihres Dokuments an.
Führen Sie drei Offline-Vorschauen auf einer unveränderten SVG-Datei aus
Dieses Beispiel erfordert Python und die offizielle AxiDraw Python API. Wir haben API 3.9.6 mit Python 3.9.6 getestet. Befolgen Sie die offiziellen Installationsanweisungen, wenn das Modul nicht in der von Ihnen verwendeten Python-Umgebung installiert ist.
Die Python API-Referenz definiert die Vorschau als Offline-Simulation. Legen Sie preview = True nach plot_setup und vor plot_run fest. Das folgende Skript legt es immer fest und bestätigt es; es enthält keinen Geräteverbindungsaufruf.
Speichern Sie dieses kleine Beispiel als eight-strokes.svg oder verwenden Sie ein Duplikat Ihrer eigenen SVG-Datei:
<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>Die Testdatei hat ein Ansichtsfenster von 100 × 80 mm und passende viewBox-Abmessungen. Dadurch wird hier jede Koordinateneinheit auf 1 mm abgebildet, entsprechend der Ansichtsfenster- und Ansichtsbox-Zuordnung von SVG. Jeder seiner acht Striche ist 8 mm lang.
Speichern Sie Folgendes als 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)Führen Sie es mit der Python-Umgebung aus, die die offizielle API enthält, und verwenden Sie einen neuen Ausgabeverzeichnisnamen:
python3 preview-orders.py eight-strokes.svg preview-checkEs speichert drei Diagnose-SVGs und distances.json. rendering = 3 umfasst sowohl erhöhte als auch zeichnende Bewegungen. Zufällige Starts und automatische Rotation sind deaktiviert; Die Pfadverknüpfung ist deaktiviert. Behalten Sie diese Auswahl beim Vergleich Ihrer eigenen Datei bei. Bei diesem Skript handelt es sich um eine Offline-Inspektionsmethode und nicht um einen Befehl zum Bedienen eines Plotters.
Vergleichen Sie die Bewegung separat mit der angehobenen und gezeichneten Geometrie des Stifts
In unserer Achttakt-Testdatei ergab das genaue Skript:
| Neuordnung | Geschätzte Bewegung mit vom Papier abgehobenem Stift | Bewegung, bei der der Stift das Papier berührt | Gemeldete Aufzüge |
|---|---|---|---|
0 | 0,509749 m | 0,064 m | 8 |
1 | 0,223592 m | 0,064 m | 8 |
2 | 0,180919 m | 0,064 m | 8 |
Hierbei handelt es sich um Schätzungen der nativen Software für diese Datei, einschließlich der Reise vom Start und zurück nach Hause. Der Stiftabsenkabstand blieb bei 64 mm und die Hubanzahl blieb bei acht. Eine kürzere Bewegung mit vom Papier abgehobenem Stift bedeutete nicht weniger Hebungen. Wir haben keine physische Stiftzeichnung, keine verstrichene Plotzeit oder eine garantierte Verbesserung für eine andere Zeichnung gemessen.

Die gestapelte Abbildung vergleicht die Einstellungen 0 und 2; Die Tabelle enthält auch 1. Es zeigt Kopien der nativen SDK-Vorschaupfade mit kräftigeren Blau- und Magentafarben und dickeren Strichen zur besseren Lesbarkeit an. Hierbei handelt es sich um Anzeigestile, nicht um physische Stiftbreiten. Die nativen Pfadkoordinaten und Transformationen bleiben unverändert; Das Anzeige-Ansichtsfenster schneidet ungenutzten Platz ab. Alle drei nativen Vorschauen wurden überprüft, und bei einer unabhängigen Geometrieprüfung wurden dieselben acht horizontalen Zeichnungssegmente gefunden, was eine Umkehrung ihrer Endpunktreihenfolge ermöglichte. Jeder abgetastete Scheitelpunkt mit abgesenktem Stift blieb auf seinem vorgesehenen Segment.
Öffnen Sie für Ihre Datei jede Vorschau-SVG und untersuchen Sie die Zeichnungsebene getrennt von der Ebene für die erhöhte Bewegung. Bestätigen Sie die beabsichtigte Seitengröße und -position, alle erwarteten Markierungen, unveränderte Löcher oder Lücken und keine neu gezeichneten Anschlüsse. Überprüfen Sie, ob ein umgekehrter Hub akzeptabel ist. Lehnen Sie eine Route ab, die falsche Markierungen aufweist, auch wenn der Entfernungsbericht kleiner ist.
Verstehen Sie, was die gespeicherte Vorschau bewahrt
In der Neuordnungsdokumentation von AxiDraw wird erläutert, dass die Optimierung in einer temporären Kopie erfolgt. Die ursprünglichen Objekte in einer gespeicherten Ausgabe-SVG behalten ihre ursprüngliche Reihenfolge. Unsere Ausgaben behielten ebenfalls jeden ursprünglichen stroke-*-Pfad und seine ursprüngliche Reihenfolge bei.
Daher ist preview-order-2.svg eine Diagnosevorschau und kein Beweis dafür, dass ein anderes Programm eine dauerhaft neu geordnete Bilddatei liest. Halten Sie die Quelle, die gewählte Option und den Vergleichsbericht zusammen. Wenn Sie das Original später mit AxiDraw verwenden, wenden Sie die beabsichtigten Bestelleinstellungen erneut im entsprechenden Plot-Workflow an.
Wenn Ihr Problem unerwünschte Zeichnungsgeometrie ist, kehren Sie zum Schritt zum Erstellen der Route zurück. Wenn nur die Bewegungsroute mit erhobenem Stift verschwenderisch ist, vergleichen Sie die Vorschauen mit festen Einstellungen. Physische Größe, Stiftverhalten und Maschinenbedienung bedürfen noch eigener Kontrollen; Diese Offline-Kontrolle beweist sie nicht.
Wobei PerfectVector vor dieser Prüfung passt
Wenn Sie immer noch nur Rastergrafiken haben und deren sichtbare umrissene Formen mit einer Farbfüllung als bearbeitbare Vektorformen haben möchten, kann der Bildvektorisierer von PerfectVector ein geeigneter früherer Schritt sein. Überprüfen Sie die Vorschau anhand der Konturen und Löcher Ihrer Quelle. Es wird keine einzelne Mittellinie abgeleitet oder die Pfadreihenfolge von AxiDraw optimiert. Verwenden Sie den Mittellinien- oder Schraffur-Workflow, wenn Sie diese Routen benötigen.
Wenn Sie bereits über die richtigen SVG-Routen verfügen, behalten Sie diese und führen Sie die Offline-Prüfung direkt durch. Durch das Zurückverfolgen einer SVG-Datei werden keine fehlenden Bestellinformationen hinzugefügt. Die geschützte Vorschau von PerfectVector ist schreibgeschützt; Um ein Ergebnis zu bearbeiten und zu exportieren, muss es entsperrt werden.
FAQ
Ändert die Neuordnung von AxiDraw dauerhaft die Objektreihenfolge meiner SVG-Datei? Nein. Die dokumentierte Optimierung verwendet eine temporäre Kopie. Eine gespeicherte Vorschau enthält diagnostische Bewegungsebenen, während die ursprünglichen Grafikobjekte ihre Reihenfolge beibehalten. Bewahren Sie die gewählte Einstellung separat auf.
Warum verringerte sich die Bewegung, wenn der Stift vom Papier abgehoben wurde, während die Anzahl der Abhebungen gleich blieb? Dieselben acht einzelnen Striche können in einer anderen Reihenfolge oder Richtung besucht werden. In unserer Testreferenz mit deaktivierter Pfadverbindung meldeten alle Einstellungen acht Anhebungen und 64 mm Zeichnung, während sich die Bewegung bei angehobenem Stift änderte.
Kann die Bestellung eine Spur mit doppeltem Umriss beheben oder eine Schattierung erzeugen? Nein. Korrigieren Sie zuerst die Zeichnungsrouten. Verwenden Sie einen Mittellinien-Workflow für einen einzelnen Strich oder erstellen Sie explizite Schraffurpfade für die Flächenschattierung und vergleichen Sie dann die Reihenfolge anhand dieser akzeptierten Geometrie.
Quellen
- AxiDraw – Python-API-Referenz – Definiert Offline-Vorschau und -Rendering, mit Beispielen, die Vorschau-SVGs zurückgeben.
- AxiDraw – CLI-Referenz – Behandelt Installation, Pfadsequenzierung und Pfadrichtungsumkehreinstellungen, Layer-Handhabung und temporäre Optimierung.
- W3C – SVG-Koordinatensysteme, Transformationen und Einheiten – Erklärt die vom bemaßten Beispiel verwendete Ansichtsfensterzuordnung.
Beginnen Sie immer noch mit einer Rasterzeichnung, deren umrissene Formen mit einer Farbe gefüllt werden sollen? Beginnen Sie kostenlos mit Ihrem eigenen Bild und vergleichen Sie dann die Konturen und Löcher der Vorschau mit der Quelle. Sobald die vorgesehenen Stiftrouten vorhanden sind, überprüfen Sie deren Reihenfolge separat mit der oben genannten Offline-Methode.
Mehr aus dem Blog
V-Carve-Tiefe: Warum breite Logostriche tiefer schneiden
Wie Grafikbreite und V-Fräserwinkel die Tiefe bestimmen: Berechne ein Logobeispiel und unterscheide Flachtiefe, Zustelltiefe und nachgezeichnete Konturen.
SVG-Falzlinien und Schnittlinien: Die Geometrie lesen
Lies die SVG-Falzgeometrie vor der Zuweisung von Score oder Cut. Vergleiche offene Pfade, gefüllte Streifen und Striche und prüfe dann den dokumentierten Cricut-Ablauf.


