3d printing workflow
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kevin Mika 96a4b03bc0
add gen_profiles.sh: merged configs für manuelles Slicen generieren
Kombiniert Drucker- und Material-INIs zu fertigen PrusaSlicer-Profilen
unter profiles/, die direkt via File > Import > Import Config geladen
werden können — gedacht für Modelle in models/manual/, die manuelle
Ausrichtung brauchen.

Signed-off-by: Kevin Mika <mika.kevin@nexus-6.eu>
2026-08-09 21:38:23 +02:00
material fix(slice): 3MF-Zentrierung, Support-Erkennung und Volumenprüfung 2026-07-25 11:37:39 +02:00
printer Initial commit: slice.sh, material profiles, printer config 2026-06-13 11:46:32 +02:00
profiles add gen_profiles.sh: merged configs für manuelles Slicen generieren 2026-08-09 21:38:23 +02:00
.gitignore add Readme 2026-06-21 08:12:55 +02:00
gen_profiles.sh add gen_profiles.sh: merged configs für manuelles Slicen generieren 2026-08-09 21:38:23 +02:00
nexus-ender.code-workspace Initial commit: slice.sh, material profiles, printer config 2026-06-13 11:46:32 +02:00
README.md add Readme 2026-06-21 08:12:55 +02:00
slice.sh fix(slice): 3MF-Zentrierung, Support-Erkennung und Volumenprüfung 2026-07-25 11:37:39 +02:00

nexus-ender / slice.sh

Automatisiertes Slicen von STL/3MF-Modellen mit PrusaSlicer, inkl. optionalem Nextcloud-Sync (WebDAV) für Modelle und fertige GCodes.

Voraussetzungen

  • Linux (Arch, Debian/Ubuntu o. ä. — getestet auf Arch)
  • Bash ≥ 4 (für mapfile, assoziative Arrays)
  • PrusaSlicer (CLI muss als prusa-slicer im PATH verfügbar sein)
  • curl
  • Python 3 inkl. pip
  • Python-Pakete: numpy, numpy-stl

Installation der Abhängigkeiten

Arch Linux:

sudo pacman -S bash curl python python-pip prusa-slicer
pip install --user numpy numpy-stl

Debian/Ubuntu:

sudo apt update
sudo apt install bash curl python3 python3-pip
pip3 install --user numpy numpy-stl

PrusaSlicer gibt es für Debian/Ubuntu nicht offiziell als Paket — am einfachsten das AppImage von der PrusaSlicer-Releases-Seite herunterladen, ausführbar machen und als prusa-slicer ins PATH legen, z. B.:

chmod +x PrusaSlicer-*.AppImage
sudo mv PrusaSlicer-*.AppImage /usr/local/bin/prusa-slicer

Prüfen, ob alles gefunden wird:

prusa-slicer --help > /dev/null && echo "PrusaSlicer OK"
python3 -c "import stl, numpy; print('Python-Pakete OK')"

Download

git clone <repo-url> nexus-ender
cd nexus-ender
chmod +x slice.sh

Verzeichnisstruktur

nexus-ender/
├── slice.sh
├── .env                # optional, siehe unten
├── material/           # Material-Profile (*.ini, aus PrusaSlicer exportiert)
├── printer/             # Drucker-Profil (*.ini), wird mit Material-Profil gemergt
├── models/              # STL/3MF-Dateien (auch in Unterordnern)
│   └── manual/          # wird ignoriert — für Modelle, die NICHT automatisch gesliced werden sollen
├── output/              # generierte GCodes (nach Material/Pfad sortiert)
└── logs/                # detaillierte Logs je Lauf, automatisch angelegt

Mindestens ein *.ini in material/ muss vorhanden sein, sonst bricht das Script ab. Ein Drucker-Profil in printer/ ist optional — fehlt es, wird nur das Material-Profil verwendet.

Konfiguration (optional): Nextcloud-Sync

Nur nötig, wenn STLs automatisch von Nextcloud geholt und GCodes dorthin hochgeladen werden sollen. .env im Projektordner anlegen:

NEXTCLOUD_URL="https://deine-nextcloud.example.com"
NEXTCLOUD_BASE="/remote.php/dav/files/<benutzername>/dein-ordner"
NEXTCLOUD_USER="dein-benutzername"
NEXTCLOUD_PASS="dein-app-passwort"

Fehlt die .env, sind die Zugangsdaten unvollständig, oder ist Nextcloud nicht erreichbar, gibt das Script nur eine Warnung aus und slict trotzdem ganz normal lokal weiter — nur der Sync-Teil wird übersprungen.

Nutzung

./slice.sh

Das Script läuft in 5 Schritten:

  1. Neue STLs von Nextcloud herunterladen (falls konfiguriert)
  2. Lokale STL/3MF-Dateien in models/ einlesen
  3. Material-Profile prüfen (per Hash erkennen, ob sich seit dem letzten Lauf etwas geändert hat)
  4. Slicen (nur wo nötig) und GCode hochladen (falls Nextcloud verfügbar)
  5. Erfolgreich gesyncte STLs wieder von Nextcloud löschen

Im Terminal erscheint pro Material eine kompakte Fortschrittszeile:

PETG_GST3D       [ 7/12] sliced:5  skipped:2  failed:0

Alles Detaillierte (einzelne Dateien, PrusaSlicer-Ausgabe, Warnungen) landet in logs/slice_<timestamp>.log — dort nachsehen, falls etwas fehlschlägt.

Hinweise

  • Modelle in models/manual/ werden weder synchronisiert noch automatisch gesliced.
  • Wird ein Modell größer als die Druckbett-Fläche (220×220 mm) erkannt, skaliert das Script es automatisch passend herunter (nur bei STL, nicht bei 3MF).
  • Ändert sich ein Material-Profil, werden beim nächsten Lauf alle zugehörigen GCodes neu generiert; unveränderte Profile slicen nur fehlende GCodes.