Senden und Abbruch laufen über den Treiber, Orca-Doppelzeilen und tote Ideen-API fallen weg, Drucker folgen der Datei, Etikettenformat liegt in den Einstellungen.
2.8 KiB
Chargen, Etiketten und 3D-Viewer
Stand 17.10.2026.
Spulen-Chargen
Jede Spule in Grotti bekommt automatisch eine chargen_nr der Form S-YYYYMMDD-0001. Derselbe Wert steht in code und auf dem Etikett. Optional: hersteller_charge vom Rollenetikett.
Scannen: auf Material den Code tippen oder per USB-Handscanner (Tastatur + Enter). Lookup GET /api/v1/spulen/by-code/<code>. QR auf dem Etikett öffnet /material?spool=<id>.
Etikett: /etikett/<id>, Druck über den Browser. QR per lokalem qrcode.min.js (web/static/). Basis-URL für den QR kommt aus Einstellungen → FQDN (config.json Key fqdn); leer = Host der aktuellen Anfrage. Beispiel: https://grotti.example.de/material?spool=12. Format (Breite/Höhe, @page) aus Einstellungen → Etiketten (config.json Key etikett, Standard 70×40 mm).
Druck-Chargen
D-YYYYMMDD-0001 vergibt der Watcher am aktiven Lauf (History-Job, sonst Live). Die nächste Nummer zählt Läufe und schon vergebene Objekt-Etiketten, damit eine Charge nicht doppelt entsteht. adopt_live_run übernimmt die Nummer nur auf einen fertigen History-Lauf ohne eigene Charge. Objekt-Etiketten (D-…-01) wandern nur mit, wenn der Ziel-Lauf dieselbe Charge behält; sonst fallen sie mit dem Live-Lauf weg und werden unter der verbleibenden Charge neu vergeben.
Druck über /etikett/lauf/<id>?mode=druck|objekt. Auf dem Bogen: Charge, Soll … g (Slicer-Filamentmenge), Drucker, Material (Abzug oder Send/ACE/Lauf-Spule), QR proportional zur Etikettenhöhe. Wand: Knopf Etikett bei Druck/Pause. Urteil Ausschuss ändert die Charge nicht — gedruckte Bögen verwerfen.
3D-Pfad
GET /api/v1/dateien/<id>/pfad liefert einen gedünnten Toolpath (bis ca. 220 000 Punkte, plus layer_breaks, Cache-version 8) aus dem lokalen G-code. Thinning behält ganze Z-Höhen dicht und lässt nur ganze Schichten weg (sonst gesprenkelte Wände). Die Dateien-Seite und das Cockpit zeichnen ihn mit Three.js.
Darstellung: nur Extrusionswege. Preview = orange. Live: gedruckt leicht verdickt grün, offen grau; Schnitt nach progress. Parser akzeptiert E.39/Z.6. Bett: Gitter 10 mm, mm-Sprites, Legende.
Exclude-Object (nur Klipper/Moonraker): Status aus exclude_object. Polygone im Viewer; Liste unter dem Pfad; Zwei-Klick → POST .../steuern Action exclude_object mit confirm. Fehlt Modul/DEFINEs → Panel aus. BambuLab später eigener Adapter.
Cockpit-Live: Kamera-Frames werden unsichtbar vorgeladen (letztes Bild bleibt), no-cam-Layout nur ohne Kamera-URL. 3D-Orbit bleibt beim 5‑s-Poll erhalten (setPath nur beim ersten Laden / Dateiwechsel).
Auf der Wand: Caption Dateiname · % · Schicht a/b, sonst „Datei nicht in Grotti“.
Bedienung: Orbit / Zoom / Schwenken / Doppelklick-Reset; Tippen auf Polygon wählt das Objekt.