Skip to content

Fy102-Coder/SchnittPilot

Repository files navigation

SchnittPilot

Release Build License Python

🧪 Public Beta. SchnittPilot is in active development. Please report bugs and feature ideas via GitHub Issues.

Professional Windows desktop application for 1D cut optimization of bar stock (metal profiles, tubes, lumber, …) — built for metalworking, steel construction, and workshop fabrication.

Professionelle Desktop-Anwendung zur Zuschnittoptimierung von Stangenprofilen für Metallbau, Stahlbau und Werkstattfertigung.


⬇️ Download

Grab the latest beta from the Releases page — look for SchnittPilot-<version>-windows-x64.zip, unpack it anywhere, and double-click SchnittPilot.exe. No installer required.


📸 Screenshots

Main window — parts list, live cut plan & key figures

SchnittPilot main window with an optimized cut plan

Workshop-ready PDF export

PDF cut plan with graphical bars, cut tables and QR code


✨ Features

  • 🪚 1D bin-packing optimization — FFD heuristic + OR-Tools CP-SAT exact solver
  • ✂️ Kerf-aware — accounts for saw blade width in every cut
  • 📦 Remnant stock management — leftover pieces are reused first in future plans
  • 🖼️ Visual cut plans — on-screen view + workshop-ready PDF print
  • ⚙️ Multiple modes — minimum waste / fewest bars / best remnant reuse / fast heuristic
  • 💾 Project storage — SQLite database, full history of past jobs
  • 📤 Export — PDF (shop floor print with QR code), Excel, CSV
  • 🌐 Bilingual UI — German and English, switchable at runtime
  • 🪪 Company logo — pick a PNG/JPG, it appears in the PDF header
  • 💾 Automatic backups — periodic SQLite snapshots, configurable retention
  • 🎓 First-run tutorial — 6-step interactive walkthrough

🚀 Quick Start (Users)

  1. Download SchnittPilot-<version>-windows-x64.zip from Releases.
  2. Unzip anywhere (e.g. C:\Programs\SchnittPilot).
  3. Run SchnittPilot.exe.
  4. Follow the welcome tutorial — it walks you through profile setup, the parts list, optimization, and export.

🛠️ Development

git clone https://github.com/Fy102-Coder/SchnittPilot.git
cd SchnittPilot
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements-dev.txt
python main.py

Run tests:

pytest

Build the EXE locally:

pyinstaller build_exe.spec
# Output: dist/SchnittPilot.exe

📐 Project structure

SchnittPilot/
├── main.py                 # Entry point
├── build_exe.spec          # PyInstaller configuration
├── config/                 # Bundled YAML defaults
├── resources/              # Icons, QSS stylesheets
├── src/schnittpilot/
│   ├── app.py              # Application bootstrap
│   ├── config/             # Pydantic settings loader
│   ├── core/
│   │   ├── models/         # Domain models (Profile, Part, Stock, …)
│   │   ├── optimization/   # FFD + CP-SAT solver strategies
│   │   └── services/       # Application logic
│   ├── persistence/        # SQLite + Repository pattern + backup
│   ├── export/             # PDF / Excel / CSV exporters
│   ├── gui/                # PySide6 MVVM (widgets, dialogs, viewmodels)
│   ├── i18n/               # German / English string catalogues
│   └── utils/              # Logging, helpers
└── tests/                  # pytest suite

User settings live in %APPDATA%\SchnittPilot\config.yaml (Windows) and override the bundled defaults in config/default_config.yaml.


🤝 Contributing

Beta feedback is the whole point right now. The fastest ways to help:

Pull requests with bug fixes are welcome. For larger changes, please open an issue first so we can discuss the design.


📜 License

SchnittPilot is released under a custom Source-Available Beta License — see LICENSE for details.

In short:

  • ✅ The source is public for transparency, security review, and beta testing.
  • ✅ Free for personal, hobbyist, and non-commercial workshop use during the beta.
  • ❌ No commercial use, no redistribution, no derivative works without permission.

For commercial licensing, please open a GitHub issue.


📓 Changelog

See CHANGELOG.md for the full version history.

About

1D bar-stock cut optimizer for metalworking — minimize waste on tubes, profiles & lumber. Public beta.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages