PerfectVector
Di Irene Kim

AxiDraw: controlla l’ordine dei tracciati prima del disegno

Confronta le anteprime SVG offline di AxiDraw per verificare l'ordine, l'inversione e il movimento del percorso con la penna sollevata dal foglio. Conserva la geometria del disegno e scopri cosa conserva l'SVG salvato.

10 min di lettura
In questa pagina

Per ottimizzare la corsa della penna SVG in AxiDraw, conferma innanzitutto che i percorsi disegnano i segni desiderati. Quindi confronta le anteprime offline con la stessa geometria e impostazioni fisse. Il riordino può abbreviare il movimento della penna con la penna sollevata senza ridurre il numero di sollevamenti o modificare le forme disegnate.

Conserva il tuo SVG originale. L'anteprima qui sotto controlla l'ordine e l'inversione facoltativa del percorso; non ricostruisce le linee centrali, non ripara i contorni indesiderati né riorganizza in modo permanente gli oggetti SVG originali. Il nostro test utilizza otto tratti aperti creati, non un contorno vettoriale di PerfectVector o un disegno fisico a penna.

Provalo con la tua immagine
Apri lo strumento completo
Puoi provarlo gratis. Rilascia un’immagine e guarda l’anteprima del tuo vettoriale, senza registrarti.

Diagnosticare i salti prima di modificare l'ordine

Il movimento con la penna che tocca la carta è il percorso che lascia i segni. Il movimento con la penna sollevata dal foglio è movimento tra segni con la penna sollevata. Un disegno dall'aspetto breve può avere un movimento lungo con la penna sollevata dal foglio quando gli oggetti successivi sono distanti.

Cosa mostra l'anteprimaCosa affrontare per primo
Due bordi attorno a una linea che dovrebbe essere un trattoCostruisci il percorso a linea unica previsto
Un perimetro vuoto dove volevi una zona d'ombraCrea percorsi penna con riempimento tratteggio espliciti
Segni corretti, ma salti ripetuti attraverso la paginaConfronta le impostazioni di sequenziamento del percorso e di inversione della direzione del percorso di seguito
Linee indesiderate tracciate tra segni separatiControllare la geometria del pen-down e l'unione del percorso prima di accettare qualsiasi percorso più breve

La misurazione della lunghezza del percorso SVG risponde alla lunghezza della geometria del disegno. Di per sé non include il viaggio della macchina tra questi percorsi.

Il riferimento CLI AxiDraw distingue queste impostazioni: 0 normalmente segue l'ordine dei documenti con l'unione disponibile, 1 riordina anche i percorsi e 2 consente anche l'inversione del percorso. Il collegamento di percorsi di disegno adiacenti è una decisione separata. Per questo confronto, lo disabilitiamo con min_gap = -1 in modo che i tratti adiacenti non possano diventare un segno continuo.

L'inversione può essere importante per il lavoro sensibile alla direzione. Se il disegno deve seguire una particolare sequenza o direzione di scrittura, un percorso di spostamento più breve con la penna sollevata non è motivo sufficiente per accettare l'impostazione 2. I livelli vincolano anche l'ordinamento; Non si dovrebbe presumere che i gruppi nidificati preservino una sequenza di disegni in fase di ottimizzazione. Esamina l'anteprima effettiva del tuo documento.

Esegui tre anteprime offline su un SVG invariato

Questo esempio richiede Python e l'API AxiDraw Python ufficiale. Abbiamo testato l'API 3.9.6 con Python 3.9.6. Segui le istruzioni di installazione ufficiali se il modulo non è installato nell'ambiente Python che utilizzi.

Il riferimento API Python definisce l'anteprima come simulazione offline. Imposta preview = True dopo plot_setup e prima plot_run. Lo script seguente lo imposta e lo afferma sempre; non contiene alcuna chiamata di connessione del dispositivo.

Salva questo piccolo esempio come eight-strokes.svg o utilizza un duplicato del tuo 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>

Il file di test ha un viewport 100 × 80 mm e dimensioni viewBox corrispondenti. Qui ogni unità di coordinate viene mappata su 1 mm, seguendo la mappatura viewport e viewBox di SVG. Ciascuno dei suoi otto tratti è lungo 8 mm.

Salva quanto segue come 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)

Eseguilo con l'ambiente Python contenente l'API ufficiale, utilizzando un nuovo nome di directory di output:

python3 preview-orders.py eight-strokes.svg preview-check

Salva tre SVG diagnostici e distances.json. rendering = 3 include sia il movimento in rilievo che quello del disegno. Gli avviamenti casuali e la rotazione automatica sono disattivati; l'unione dei percorsi è disabilitata. Mantieni fisse queste scelte quando confronti il ​​tuo file. Questo script è un metodo di ispezione offline, non un comando per utilizzare un plotter.

Confrontare separatamente il movimento con la penna sollevata e la geometria disegnata

Sul nostro file di test a otto tempi, lo script esatto ha prodotto:

RiordinoMovimento stimato con la penna sollevata dal foglioMovimento con la penna che tocca la cartaAscensori segnalati
00,509749 mt0,064 m8
10,223592 m0,064 m8
20,180919 m0,064 m8

Queste sono le stime del software nativo per questo file, incluso il viaggio dall'inizio al ritorno a casa. La distanza di abbassamento della penna è rimasta di 64 mm e il numero di sollevamenti è rimasto di otto. Un movimento più breve con la penna sollevata dal foglio non significava meno sollevamenti. Non abbiamo misurato un disegno fisico a penna, il tempo trascorso per la stampa o un miglioramento garantito per un altro disegno.

Le anteprime AxiDraw in pila mostrano otto tratti di disegno blu invariati mentre i percorsi di movimento magenta con la penna sollevata differiscono tra l'ordine zero e due; il contrasto del display e lo spessore dei tratti sono migliorati.
Acquisizione effettiva dell'Preview delle copie di visualizzazione del percorso SDK nativo in pila, renderizzate con resvg. Il blu è pennato; il magenta è pennato. I colori e gli spessori dei tratti sono migliorati per la leggibilità; le coordinate del percorso nativo rimangono invariate. Nessun plotter era connesso.

La figura in pila confronta le impostazioni 0 e 2; la tabella include anche 1. Visualizza copie dei percorsi di anteprima dell'SDK nativo con colori blu e magenta più forti e tratti più spessi per garantire la leggibilità. Questi sono stili di visualizzazione, non larghezze fisiche della penna. Le coordinate e le trasformazioni del percorso nativo rimangono invariate; la finestra di visualizzazione ritaglia lo spazio inutilizzato. Sono state ispezionate tutte e tre le anteprime native e un controllo della geometria indipendente ha rilevato gli stessi otto segmenti di disegno orizzontali, consentendo l'inversione dell'ordine dei punti finali. Ogni vertice pen-down campionato è rimasto sul segmento previsto.

Per il tuo file, apri ciascuna anteprima SVG ed esamina il livello di disegno separatamente dal livello di viaggio in rilievo. Confermare le dimensioni e la posizione della pagina previste, tutti i segni previsti, i fori o gli spazi vuoti invariati e nessun nuovo connettore disegnato. Verificare che qualsiasi corsa inversa sia accettabile. Rifiuta un percorso che disegna segni sbagliati anche se il suo rapporto di distanza è inferiore.

Comprendi cosa conserva l'anteprima salvata

La documentazione sul riordino di AxiDraw spiega che l'ottimizzazione avviene in una copia temporanea. Gli oggetti originali in un SVG di output salvato mantengono il loro ordine originale. Allo stesso modo i nostri output hanno mantenuto ogni percorso stroke-* originale e la sua sequenza originale.

Pertanto, preview-order-2.svg è un'anteprima diagnostica, non una prova che un altro programma leggerà un file di grafica riordinato in modo permanente. Mantieni insieme la fonte, l'opzione scelta e il rapporto di confronto. Quando si utilizza l'originale con AxiDraw in un secondo momento, applicare nuovamente le impostazioni di ordinamento previste nel flusso di lavoro di stampa appropriato.

Se il problema riguarda la geometria del disegno indesiderata, tornare alla fase di creazione del percorso. Se solo il percorso di spostamento con la penna sollevata è dispendioso, confrontare le anteprime a impostazione fissa. Le dimensioni fisiche, il comportamento della penna e il funzionamento della macchina richiedono ancora controlli propri; questo controllo offline non li dimostra.

Dove si inserisce PerfectVector prima di questo controllo

Se hai ancora solo grafica raster e desideri che le sue forme delineate visibili con un riempimento di colore siano forme vettoriali modificabili, vettorizzatore di immagini di PerfectVector può essere un passaggio precedente adatto. Esamina la sua anteprima rispetto ai contorni e ai buchi della tua fonte. Non deduce una singola linea centrale né ottimizza l'ordine del percorso AxiDraw; utilizzare il flusso di lavoro della linea centrale o del tratteggio quando questi sono i percorsi necessari.

Se disponi già dei percorsi SVG corretti, conservali ed esegui direttamente il controllo offline. Ripercorrere un SVG non aggiunge informazioni sull'ordine mancanti. L'anteprima protetta di PerfectVector è di sola visualizzazione; la modifica e l'esportazione di un risultato richiedono lo sblocco.

Domande frequenti

Il riordino di AxiDraw modifica permanentemente l'ordine degli oggetti del mio SVG? No. L'ottimizzazione documentata utilizza una copia temporanea. Un'anteprima salvata contiene livelli di movimento diagnostici, mentre gli oggetti del disegno originale mantengono il loro ordine. Conserva separatamente l'impostazione scelta.

Perché il movimento con la penna sollevata dal foglio si è ridotto mentre il conteggio dei sollevamenti è rimasto lo stesso? Gli stessi otto tratti separati possono essere visitati in una sequenza o direzione diversa. Nel nostro test di riferimento con unione dei percorsi disabilitata, tutte le impostazioni riportavano otto sollevamenti e 64 mm di disegno, mentre il movimento con la penna sollevata è cambiato.

L'ordine può correggere una traccia a doppio contorno o generare ombreggiature? No. Correggere prima i percorsi di disegno. Utilizza un flusso di lavoro basato sulla linea centrale per un singolo tratto o costruisci percorsi di tratteggio espliciti per l'ombreggiatura dell'area, quindi confronta l'ordinamento sulla geometria accettata.

Fonti

  1. AxiDraw — Riferimento API Python — Definisce l'anteprima e il rendering offline, con esempi che restituiscono SVG di anteprima.
  2. AxiDraw — Riferimento CLI — Copre l'installazione, la sequenza dei percorsi e le impostazioni di inversione della direzione del percorso, la gestione dei livelli e l'ottimizzazione temporanea.
  3. W3C — Sistemi di coordinate, trasformazioni e unità SVG — Spiega la mappatura del viewport utilizzata dall'esempio quotato.

Stai ancora partendo da un disegno raster di cui hai bisogno di forme delineate con riempimento di colore? Inizia gratuitamente con la tua immagine, quindi esamina i contorni e i buchi dell'anteprima rispetto alla fonte. Una volta esistenti i percorsi penna previsti, controllarne l'ordine separatamente con il metodo offline sopra.

Altro dal blog

PerfectVector

Trasforma la tua immagine in un
SVG modificabile

Vettorializza e controlla l’anteprima gratis, senza limiti giornalieri.