Slice-Watch mit Ordnern/Filtern, Orca-Nachbearbeitung, Cockpit-Verlauf mit ED, Zeitzone im Browser. Tasten-Grenze und README-API angeglichen, toter Code entfernt, Requirements gepinnt.
6.2 KiB
Grotti: Abräumen und weiterdrucken (Kobra 3)
Stand 13.10.2026.
Nach dem Druck kann Grotti auf der Kobra 3 Bett und Düse abkühlen und die Teile mit dem Extruderkopf nach vorn vom Bett schieben. Danach startet der nächste Schritt oder die nächste Wiederholung. Die Kobra S1 ist geschlossen — Abräumen dort ist noch offen.
Quittierung vs. Schieben
- Wand „Platte geräumt“: Nur Quittierung. Tabelle
bed_status, APIPOST /api/v1/drucker/<host>/abraeumenmitconfirm. Fährt keine Bahn.needs_clearsetzt der Watcher bei Druckende/Abbruch/Fehler (nicht schon beim Start). Solange gesetzt, startet „wenn frei“ den nächsten Job nicht. - Ablauf (Dateien): Drucken → Abkühlen → Schieben → Tasten, dann der nächste Druck mit LeviQ. Eine Bestätigung beim Einreihen; Schieben läuft ohne zweite Rückfrage. Nach erfolgreichem Schieben ist die Platte automatisch quittiert.
- Normale Drucke und „Nochmal“ schieben nicht — nach dem Druck muss man auf der Wand quittieren.
Oberfläche
Unter Dateien erscheint die Karte Ablauf, sobald mindestens eine Kobra 3 gewählt ist. Der Nutzer baut die Schritte selbst:
- Drucken — Datei, Bettnetz (LeviQ) standardmäßig an
- Abkühlen — Heizung aus, Lüfter an, Düse in die Bettmitte, warten bis Bett/Düse unter den Grenzen
- Schieben — Bahn mit einstellbaren Zahlen, danach Lüfter aus
- Tasten — kein
G28 Z. Mit aktivem LeviQ-Netz (keinBED_MESH_CLEAR):Result= Höhe über der lokalen Platte. Bezugspunkt + Tastpunkt (x/y) einstellbar. Maß: letztesResult is z=aus dem Store. Übermax_delta_mm(Default 3 mm) = Restteil. Enge 1 mm/2,5 mm-Werte aus alten Abläufen werden auf 3 mm angehoben (kalt an der Düse sonst Fehlalarm).
Darunter wie oft hintereinander. Einreihen legt einen Eintrag in die Warteschlange „Wenn frei“. Schieben testen fährt die Bahn auf einer freien Kobra 3 (Bestätigung „Bett ist leer“). Werte merkt sich der Browser lokal.
Vor dem Bett braucht es eine Kiste. Der Weg nach vorn muss frei sein.
Standardreihenfolge: Drucken → Abkühlen → Schieben → Tasten (dann Wiederholung, LeviQ am Druckstart). Altes 3×3-Prüfen (probe_count / mesh_*) wird übersprungen und in der Schrittleiste nicht mehr gezeigt.
Standardbahn (editierbar)
- Abkühlen: Heizung aus, Idle verlängern (Stepper an), Park Bettmitte. Z zuerst relativ +40 mm (gegen Z-max gekappt), dann X125/Y125. Hub wird geprüft.
- Schieben: hoch → Y hinten (
y_fromDefault 250) → Z noch klar? → langsam aufz_push(F400, nie F3000). Z prüfen; bei Abweichung Abbruch. Nur die X-Spuren aus der Config.M107. - Tasten: Mesh an. Absolut auf Freiraum, ein
PROBEam Tastpunkt,Result is z=. KeinSET Z=100/ Bezug-Null (hat die Koordinate nur verfälscht). Z zu tief nach Leerlauf → Abbruch, Idle soll Stepper an lassen.
Y klein ist vorn. Das Wischpad liegt hinten (~Y 260) und bleibt außerhalb der Bahn. Grotti klemmt Eingaben (X 0–250, Y 0–235, Z-Schieben 0,6–30, Z-Umsetzen bis 80, Tempo 5–80 mm/s).
Technik
- Kein Makro auf dem Drucker (
printer.cfgschreibt Rinkhals neu). Grotti schickt G-code per Moonraker/printer/gcode/script. - Modul
grotti/eject.py, Steuerung inprint_queue.py. - Ablauf = eine Queue-Zeile mit
steps(JSON),step_index,repeat_total,repeat_done,phase. - Nach dem Druck kein
G28(Z-Home würde in die Teile fahren). Slice-Ende Present nurX250 Y220— kein Z-Hub. Abkühlen: Heizung aus, Lüfter an, relativ Z+40 (≤ Z-max), dann X 125 Y 125. Schieben: anheben, Spur hinten ansetzen, langsam senken, nach vorn, hinten parken,M107. - Abräumen braucht gehomed Achsen. Slice-Ende der Kobra 3 enthält
M84; disable motors(nach Present) — danach sofort unhomed. Bei Ablauf mit Cool/Sweep entfernt GrottiM84/M18beim Upload. Zusätzlich:SET_IDLE_TIMEOUTschon während des Drucks und alle 120 s beim Abkühlen; wenn trotzdem unhomed,SET_KINEMATIC_POSITIONmit der echten letzten Toolhead-XYZ (Present), nie erfundene Z. Kein automatischesG28bei belegtem Bett. „Schieben testen“ (Bett leer bestätigt) homt mitG28.
Gestoppter Ablauf: Seitenleiste ▶ setzt beim gespeicherten step_index fort (PATCH /druck-queue/<id> mit status: running, resume: true).
- Tasten: Mesh aus, Rand-PROBE + Z-Null (Retract 2 mm), Mitte-PROBE, letztes
Result is z=gegenmax_delta_mm. NieG28 Z. Nie Toolhead-Z nach dem Retract. Fortsetzen bei gemeldetem Z unter Bett erlaubt (nur relativ hoch). - Druckfehler oder Abbruch stoppt den Ablauf — kein Weiterschieben.
Trockenlauf (Crash-Fix prüfen)
Bett leer, ein Drucker reicht. Ziel: Cool-Hub und Anfahren hinten testen, ohne G0 Z{z_push}.
PROBE fährt nur bis Trigger — nicht wie G0 Z2 zwangsweise auf Koordinate. Trotzdem nicht mit Z8 starten (nach dem Crash zu unheimlich).
Lauf A — sicher (zuerst):
G28, Düse wischen.G90→G0 Z40 F1800→ PresentX250 Y220.- Cool-Park: relativ Z+40 (≤ Z-max), Mitte. Erwartung: Z ≈ 80, Mitte.
sweep_go_back_high(hoch + Y hinten). Erwartung: hinten, Z klar oben.- Statt Senken:
PROBE. Erwartung:Result is z=typisch < 1 mm; sofortG0 Z40. - Stop. Keine Y-Bahn, kein
z_push.
Lauf B — niedrige „letzte Schicht“ (nur wenn A sauber):
Wie A, aber Schritt 2 mit G0 Z15 (nicht Z8). Cool +40 → Z ≈ 55. Wieder nur PROBE, nie G0 Z2.
Optional ganz am Ende: einmal sweep_lower mit F400 + assert_clear, Bett leer — nur nach A+B ok.
Grotti-Schalter „Trockenlauf / PROBE statt z_push“ noch nicht gebaut — bis dahin manuell oder _tmp_-Skript mit eject.*_script.
Grenzen
- Nur Familie
kobra_3. - Teile höher als die Umsetzhöhe trifft die Düse auf dem Weg nach hinten.
- Festsitzendes Material (z. B. PETG) schiebt die Düse nicht zuverlässig ab.
Backlog (später)
Ideen liegen in Grotti unter Ideen (Status „später“), nicht nur hier:
- Abdeckungen gegen Verkanten — Führung/Rutsche vorn, damit geschobene Teile nicht an Bettkante, Rahmen oder in der Kiste verkanten und den nächsten Lauf blockieren.
- Kobra S1 — eigener Abräum-Ablauf (geschlossen, Tür).
Erledigt: Antasten / Bettnetz vergleichen (Schritt Prüfen, 13.10.2026).