AxiDraw: sprawdź kolejność ścieżek przed rysowaniem
Porównaj podglądy SVG offline AxiDraw, aby sprawdzić kolejność ścieżek, odwrócenie i ruch przy pisaku podniesionym z papieru. Zachowaj geometrię rysunku i poznaj, co zachowuje zapisany plik SVG.
Na tej stronie
Aby zoptymalizować podróż pióra SVG w AxiDraw, najpierw upewnij się, że ścieżki rysują żądane znaki. Następnie porównaj podglądy offline z tą samą geometrią i stałymi ustawieniami. Zmiana kolejności może skrócić ruch pisaka z podniesionym pisakiem bez zmniejszania liczby podniesień i zmiany rysowanych kształtów.
Zachowaj oryginalny plik SVG. Poniższy podgląd sprawdza kolejność i opcjonalne odwrócenie ścieżki; nie rekonstruuje linii środkowych, nie naprawia niechcianych konturów ani trwale nie zmienia układu oryginalnych obiektów SVG. W naszym teście wykorzystaliśmy osiem autorskich pociągnięć, a nie wektoryzowany kontur z PerfectVector lub fizyczny rysunek piórem.
Zdiagnozuj skoki przed zmianą kolejności
Ruch piórem dotykającym papieru to trasa, która zostawia ślady. Ruch z pisakiem podniesionym z papieru to ruch pomiędzy znakami z podniesionym pisakiem. Krótko wyglądający rysunek może wymagać długiego ruchu, gdy pióro jest podniesione znad papieru, gdy kolejne obiekty są daleko od siebie.
| Co pokazuje podgląd | Czym się zająć w pierwszej kolejności |
|---|---|
| Dwie krawędzie wokół linii, które powinny stanowić jedno pociągnięcie | Zbuduj zamierzoną trasę jednoliniową |
| Pusty obwód, w którym chciałeś zacieniony obszar | Utwórz wyraźne ścieżki pisaków z kreskowaniem |
| Poprawne znaki, ale powtarzające się przeskoki na stronie | Poniżej porównaj ustawienia sekwencjonowania ścieżek i odwrócenia kierunku ścieżki |
| Niepożądane linie narysowane pomiędzy oddzielnymi znakami | Przed zaakceptowaniem krótszej trasy sprawdź geometrię oparcia i łączenie ścieżek |
Pomiar długości ścieżki SVG pozwala odpowiedzieć na pytanie, jak długa jest geometria rysunku. Samo w sobie nie obejmuje przejazdu maszyny pomiędzy tymi ścieżkami.
Dokumentacja CLI AxiDraw rozróżnia te ustawienia: 0 zwykle przestrzega kolejności dokumentów z możliwością łączenia, 1 również zmienia kolejność ścieżek, a 2 pozwala również na odwrócenie ścieżki. Połączenie sąsiednich ścieżek rysunkowych to osobna decyzja. Na potrzeby tego porównania wyłączamy tę funkcję za pomocą min_gap = -1, aby sąsiadujące kreski nie mogły stać się jednym ciągłym znacznikiem.
Odwrócenie może mieć znaczenie w przypadku prac wrażliwych na kierunek. Jeżeli rysunek musi mieć określoną kolejność pisania lub kierunek, krótsza droga ruchu z podniesionym pisakiem nie jest wystarczającym powodem do zaakceptowania ustawienia 2. Warstwy ograniczają również sortowanie; nie należy zakładać, że grupy zagnieżdżone zachowują optymalizowaną sekwencję rysowania. Sprawdź rzeczywisty podgląd swojego dokumentu.
Uruchom trzy podglądy offline na niezmienionym pliku SVG
Ten przykład wymaga języka Python i oficjalnego interfejsu API języka Python AxiDraw. Przetestowaliśmy API 3.9.6 z Pythonem 3.9.6. Postępuj zgodnie z oficjalnymi instrukcjami instalacji, jeśli moduł nie jest zainstalowany w środowisku Python, którego używasz.
Dokumentacja API Pythona definiuje podgląd jako symulację offline. Ustaw preview = True po plot_setup i przed plot_run. Poniższy skrypt zawsze to ustawia i potwierdza; nie zawiera żadnego połączenia z urządzeniem.
Zapisz ten mały przykład jako eight-strokes.svg lub użyj duplikatu własnego pliku 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>Plik testowy ma rzutnię 100 × 80 mm i pasujące wymiary viewBox. To odwzorowuje każdą jednostkę współrzędnych na 1 mm tutaj, zgodnie z mapowaniem rzutni i viewBox SVG. Każdy z ośmiu pociągnięć ma długość 8 mm.
Zapisz następujący plik jako 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)Uruchom go w środowisku Python zawierającym oficjalny interfejs API, używając nowej nazwy katalogu wyjściowego:
python3 preview-orders.py eight-strokes.svg preview-checkZapisuje trzy diagnostyczne pliki SVG i distances.json. rendering = 3 obejmuje zarówno ruch uniesiony, jak i rysujący. Losowe starty i automatyczny obrót są wyłączone; łączenie ścieżek jest wyłączone. Zachowaj te opcje na stałe podczas porównywania własnego pliku. Ten skrypt jest metodą inspekcji w trybie offline, a nie poleceniem obsługi plotera.
Porównaj ruch oddzielnie z podniesionym pisakiem i narysowaną geometrią
W naszym pliku testowym ośmiu uderzeń powstał dokładny skrypt:
| Zmiana kolejności | Szacunkowy ruch przy pisaku podniesionym z papieru | Ruch z piórem dotykającym papieru | Zgłoszone wzrosty |
|---|---|---|---|
0 | 0.509749 m | 0.064 m | 8 |
1 | 0.223592 m | 0.064 m | 8 |
2 | 0.180919 m | 0.064 m | 8 |
Są to szacunki oprogramowania natywnego dla tego pliku, obejmujące podróż od początku i powrót do domu. Odległość opuszczenia pozostała 64 mm, a liczba uniesień pozostała osiem. Krótszy ruch z pisakiem oderwanym od papieru nie oznaczał mniejszej liczby podniesień. Nie mierzyliśmy fizycznego rysunku piórem, czasu, jaki upłynął od wydruku ani gwarantowanej poprawy w przypadku kolejnego rysunku.

Skumulowany rysunek porównuje ustawienia 0 i 2; tabela zawiera także 1. Wyświetla kopie natywnych ścieżek podglądu SDK z mocniejszymi kolorami niebieskim i magenta oraz grubszymi kreskami dla zapewnienia czytelności. Są to style wyświetlania, a nie fizyczne szerokości piór. Natywne współrzędne ścieżki i transformacje pozostają niezmienione; rzutnia wyświetlania przycina nieużywaną przestrzeń. Sprawdzono wszystkie trzy natywne podglądy, a niezależna kontrola geometrii znalazła te same osiem poziomych segmentów rysunku, co umożliwiło odwrócenie kolejności ich punktów końcowych. Każdy próbkowany wierzchołek pozostawał w zamierzonym segmencie.
W przypadku pliku otwórz każdy podgląd SVG i sprawdź warstwę rysunku oddzielnie od warstwy z podniesionymi ruchami. Potwierdź zamierzony rozmiar strony i lokalizację, wszystkie oczekiwane znaki, niezmienione dziury lub odstępy i brak nowego narysowanego łącznika. Sprawdź, czy dopuszczalny jest każdy skok odwrócony. Odrzuć trasę, która rysuje nieprawidłowe znaki, nawet jeśli jej raport dotyczący odległości jest mniejszy.
Dowiedz się, co zachowuje zapisany podgląd
Dokumentacja dotycząca ponownego zamawiania AxiDraw wyjaśnia, że optymalizacja odbywa się w kopii tymczasowej. Oryginalne obiekty w zapisanym wyjściowym formacie SVG zachowują swoją pierwotną kolejność. W naszych wynikach również zachowano każdą oryginalną ścieżkę stroke-* i jej oryginalną sekwencję.
Dlatego preview-order-2.svg jest podglądem diagnostycznym, a nie dowodem na to, że inny program odczyta plik graficzny o trwale zmienionej kolejności. Zachowaj źródło, wybraną opcję i raport porównawczy razem. Jeśli później użyjesz oryginału w AxiDraw, zastosuj ponownie zamierzone ustawienia kolejności w odpowiednim procesie drukowania.
Jeśli Twoim problemem jest niechciana geometria rysunku, wróć do kroku tworzenia trasy. Jeśli tylko droga poruszania się z podniesionym pisakiem jest marnotrawstwem, porównaj podglądy ze stałymi ustawieniami. Rozmiar fizyczny, zachowanie pióra i działanie maszyny nadal wymagają własnych kontroli; ta kontrola offline ich nie potwierdza.
Gdzie pasuje PerfectVector przed tą kontrolą
Jeśli nadal masz tylko grafikę rastrową i chcesz, aby jej widoczne kontury z wypełnieniem kolorem były edytowalnymi kształtami wektorowymi, wektoryzator obrazu PerfectVector może być odpowiednim wcześniejszym krokiem. Sprawdź jego podgląd względem konturów i otworów źródła. Nie wyznacza pojedynczej linii środkowej ani nie optymalizuje kolejności ścieżek AxiDraw; użyj linii środkowej lub kreskowania, jeśli są to trasy, których potrzebujesz.
Jeśli masz już prawidłowe trasy SVG, zachowaj je i bezpośrednio przeprowadź kontrolę offline. Odtworzenie pliku SVG nie powoduje braku brakujących informacji o zamówieniu. Chroniony podgląd PerfectVector można tylko przeglądać; edycja i eksport wyniku wymagają jego odblokowania.
Często zadawane pytania
Czy zmiana kolejności AxiDraw trwale zmienia kolejność obiektów w moim pliku SVG? Nie. Udokumentowana optymalizacja wykorzystuje kopię tymczasową. Zapisany podgląd zawiera diagnostyczne warstwy ruchu, podczas gdy oryginalne obiekty graficzne zachowują swoją kolejność. Zachowaj wybrane ustawienie osobno.
Dlaczego ruch pióra podniesionego znad papieru zmniejszył się, podczas gdy liczba uniesień pozostała taka sama? Te same osiem oddzielnych pociągnięć można odwiedzać w innej kolejności lub kierunku. W naszym teście referencyjnym z wyłączonym łączeniem ścieżek wszystkie ustawienia zgłaszały osiem podniesień i 64 mm rysunku, podczas gdy ruch przy podniesionym pisaku uległ zmianie.
Czy zamawianie może naprawić podwójny ślad lub wygenerować cieniowanie? Nie. Najpierw popraw trasy rysunku. Użyj przepływu pracy z linią środkową dla pojedynczego pociągnięcia lub skonstruuj jawne ścieżki kreskowania do cieniowania obszaru, a następnie porównaj kolejność na zaakceptowanej geometrii.
Źródła
- AxiDraw — dokumentacja API Pythona — definiuje podgląd i renderowanie offline, z przykładami zwracającymi podgląd SVG.
- AxiDraw — dokumentacja CLI — obejmuje instalację, sekwencjonowanie ścieżek i ustawienia odwrócenia kierunku ścieżki, obsługę warstw i tymczasową optymalizację.
- W3C — Układy współrzędnych SVG, przekształcenia i jednostki — Wyjaśnia mapowanie rzutni użyte w zwymiarowanym przykładzie.
Wciąż zaczynasz od rysunku rastrowego, którego kontury z wypełnieniem kolorem są Ci potrzebne? Zacznij od własnego obrazu, a następnie sprawdź kontury i otwory podglądu względem źródła. Gdy już istnieją zamierzone trasy piór, sprawdź ich kolejność osobno, korzystając z powyższej metody offline.
Więcej z bloga
Głębokość V-carve: szerszy element logo sięga głębiej
Poznaj zależność szerokości grafiki, kąta frezu V i głębokości. Oblicz przykład logo oraz odróżnij płaskie dno, głębokość przejścia i odrysowane kontury.
Linie bigowania i cięcia SVG: odczytaj geometrię
Odczytaj geometrię zgięcia SVG przed wyborem Score lub Cut. Porównaj otwarte ścieżki, wypełnione pasy i kreski, a potem sprawdź udokumentowany proces Cricut.


