Quelle: Markus' realer Workflow - „Teelicht-Halter aus Wuerfel mit 5 Seiten" + „Schale mit Rotary von unten"
Verwandt: A20 (Multi-Setup-Workflow ✅ Basis), A44 (Two-Sided/Indexed #37), A47 (Spannmittel-Modell #42), A48 (Run-Lock #43)
Markus' reale Workflows
Workflow 1: 6-seitiger Teelicht-Halter (5-Sided Wuerfel)
Setup 1: Wuerfel-Rohling, Oberseite oben
-> 1. Seite fertig (Aussparung + Gravur)
Setup 2: Wuerfel umgespannt, naechste Seite oben (90° Rotation um Y)
-> 2. Seite fertig
Setup 3-5: weitere 3 Seiten analog
Pro Aufspannung:
- Werkstueck in anderer Orientierung (welche Seite zeigt nach oben?)
- Nullpunkt muss konsistent bleiben (z.B. immer Wuerfel-Mittelpunkt)
- Selbe Werkzeuge ODER unterschiedliche (Werkzeugwechsel zwischen Aufspannungen moeglich)
- 5 Setups verkettet in EINEM Projekt
- Reihenfolge wichtig (Boden-Seite zuletzt damit Wuerfel stabil bleibt)
Workflow 2: Schale mit Rotary
Setup 1: Runder Rohling, Standard 3-Achs-Modus
-> Unten breiter werden lassen (konische Aussenform)
Setup 2: Rohling umgespannt (180° um X gedreht)
-> Von oben: Schale rein fraesen (Pocket)
Setup 3: CNC UMGEBAUT auf Rotary
-> Schale von „unten" in Rotary-Spannfutter
-> Seiten gravieren / Ornamente heraus arbeiten
Pro Aufspannung:
- Werkstueck-Orientierung wechselt (180° flip)
- Maschinen-Modus wechselt (Standard XYZ -> Rotary Y)
- Spannmittel wechselt (Schraubstock -> Vakuum -> Spannfutter)
- Werkzeuge wechseln
Was wir HABEN
Setup Datenmodell hat bereits:
maschinen_modus: str (standard_xyz / rotary_y / rotary_x / laser / drag_knife) ✅
spannmittel: str (aber: nur Freitext, nicht strukturiert) ⚠️
werkzeug_id + nullpunkt ✅
pause_vor: SetupPause mit Typ UMSPANN / WERKZEUGWECHSEL / SPINDEL_WECHSEL ✅
rohmaterial_uebernehmen: bool ✅
Was FEHLT konkret
1. Werkstueck-Transformation zwischen Setups
Aktuell: nur Nullpunkt-Verschiebung in SetupPause.nullpunkt_neu. Markus' Wuerfel braucht aber Rotation: Setup 2 = Setup 1 + 90° um Y-Achse.
Vorschlag Datenmodell:
class WerkstueckTransformation(BaseModel):
rotation_grad_x: float = 0.0 # 0/90/180/270 typisch
rotation_grad_y: float = 0.0
rotation_grad_z: float = 0.0
spiegelung_x: bool = False
spiegelung_y: bool = False
spiegelung_z: bool = False
nullpunkt_neu: tuple[float, float, float] | None = None
referenz: Literal["block_mitte", "ecke_vorne_links", "ref_pin", ...] = "block_mitte"
class Setup(BaseModel):
# ... existing
werkstueck_transformation: WerkstueckTransformation | None = None
# Wenn None: aus Vorgaenger-Setup uebernehmen (mit identity)
2. Maschinen-Umbau als eigener Pause-Typ
Aktuell: SetupPauseTyp hat WERKZEUGWECHSEL/UMSPANN/WERKSTUECK_VERSCHIEBEN/SPINDEL_WECHSEL/OPTIONALER_STOP.
Fehlt: MASCHINEN_UMBAU — z.B. „Rotary-Achse einbauen", „Y umkonfigurieren ($101=88.889)".
class SetupPauseTyp(str, Enum):
# ... existing
MASCHINEN_UMBAU = "maschinen_umbau" # neu
Mit Sub-Felder fuer was umzubauen ist:
- Modus vorher / nachher (standard_xyz -> rotary_y)
- Anleitung (Markdown mit Schritten + Foto-Slots)
- Default-Anleitungen je Umbau-Typ aus Maschinen-Profil
3. Strukturiertes Spannmittel pro Setup
Aktuell spannmittel: str = \"\" ist nur Freitext. Issue #42 (A47) plant ein strukturiertes Spannmittel-Modell — das gehoert pro Setup, nicht pro Maschine!
Z.B. Setup 1 = Schraubstock + 4 Zwingen, Setup 2 = Vakuum-Tisch, Setup 3 = Spannfutter (Rotary).
Verknuepfung A47 <-> dieses Issue.
4. Reihenfolge der Bearbeitungs-Seiten (Stabilitaets-Hinweise)
Beim Wuerfel: erste 4 Seiten OK, Boden-Seite letzte weil sonst Werkstueck instabil.
Sicherheits-Check (siehe A48 #43): Pre-Generation-Check \"Reihenfolge plausibel?\" warnt wenn Letzter Setup nicht der Bodenseiten-Setup ist (heuristisch).
5. Werkstueck-Rest-Tracking zwischen Setups
Bei der Schale: Setup 1 (Aussen-Form) + Setup 2 (Innen-Pocket) - beide brauchen wissen was nach Setup 1 vom Material uebrig ist.
Heute: jeder Setup beginnt mit fresh Rohmaterial (vereinfacht). Realer: zwischen Setups muss das Werkstueck nach-modelliert werden.
Optional fortgeschritten: Voxel-Simulation (haben wir bereits, D10) erweitern so dass nach Setup 1 das aktualisierte Voxel-Volumen die Input fuer Setup 2 ist.
6. Wizard fuer N-Sided Manual Flip
A44 (#37) hat Two-Sided + Indexed (Automatic) als Wizard. Fehlt: N-Sided Manual Flip (Markus' Wuerfel). Wuerfel = 5 Sides, jede Aufspannung manuell.
Wizard fragt:
- Werkstueck-Form (Wuerfel / Quader / Zylinder / frei)
- Anzahl Seiten zu bearbeiten
- Pro Seite: welche Operationen
- Generiert N Setups mit korrekten WerkstueckTransformationen
Akzeptanzkriterien
Backend
Frontend
Wiki + Sample-Files
Tests
Bezug
Quelle: Markus' realer Workflow - „Teelicht-Halter aus Wuerfel mit 5 Seiten" + „Schale mit Rotary von unten"
Verwandt: A20 (Multi-Setup-Workflow ✅ Basis), A44 (Two-Sided/Indexed #37), A47 (Spannmittel-Modell #42), A48 (Run-Lock #43)
Markus' reale Workflows
Workflow 1: 6-seitiger Teelicht-Halter (5-Sided Wuerfel)
Pro Aufspannung:
Workflow 2: Schale mit Rotary
Pro Aufspannung:
Was wir HABEN
SetupDatenmodell hat bereits:maschinen_modus: str(standard_xyz / rotary_y / rotary_x / laser / drag_knife) ✅spannmittel: str(aber: nur Freitext, nicht strukturiert)werkzeug_id+nullpunkt✅pause_vor: SetupPausemit Typ UMSPANN / WERKZEUGWECHSEL / SPINDEL_WECHSEL ✅rohmaterial_uebernehmen: bool✅Was FEHLT konkret
1. Werkstueck-Transformation zwischen Setups
Aktuell: nur Nullpunkt-Verschiebung in
SetupPause.nullpunkt_neu. Markus' Wuerfel braucht aber Rotation: Setup 2 = Setup 1 + 90° um Y-Achse.Vorschlag Datenmodell:
2. Maschinen-Umbau als eigener Pause-Typ
Aktuell:
SetupPauseTyphat WERKZEUGWECHSEL/UMSPANN/WERKSTUECK_VERSCHIEBEN/SPINDEL_WECHSEL/OPTIONALER_STOP.Fehlt:
MASCHINEN_UMBAU— z.B. „Rotary-Achse einbauen", „Y umkonfigurieren ($101=88.889)".Mit Sub-Felder fuer was umzubauen ist:
3. Strukturiertes Spannmittel pro Setup
Aktuell
spannmittel: str = \"\"ist nur Freitext. Issue #42 (A47) plant ein strukturiertes Spannmittel-Modell — das gehoert pro Setup, nicht pro Maschine!Z.B. Setup 1 = Schraubstock + 4 Zwingen, Setup 2 = Vakuum-Tisch, Setup 3 = Spannfutter (Rotary).
Verknuepfung A47 <-> dieses Issue.
4. Reihenfolge der Bearbeitungs-Seiten (Stabilitaets-Hinweise)
Beim Wuerfel: erste 4 Seiten OK, Boden-Seite letzte weil sonst Werkstueck instabil.
Sicherheits-Check (siehe A48 #43): Pre-Generation-Check
\"Reihenfolge plausibel?\"warnt wenn Letzter Setup nicht der Bodenseiten-Setup ist (heuristisch).5. Werkstueck-Rest-Tracking zwischen Setups
Bei der Schale: Setup 1 (Aussen-Form) + Setup 2 (Innen-Pocket) - beide brauchen wissen was nach Setup 1 vom Material uebrig ist.
Heute: jeder Setup beginnt mit fresh Rohmaterial (vereinfacht). Realer: zwischen Setups muss das Werkstueck nach-modelliert werden.
Optional fortgeschritten: Voxel-Simulation (haben wir bereits, D10) erweitern so dass nach Setup 1 das aktualisierte Voxel-Volumen die Input fuer Setup 2 ist.
6. Wizard fuer N-Sided Manual Flip
A44 (#37) hat Two-Sided + Indexed (Automatic) als Wizard. Fehlt: N-Sided Manual Flip (Markus' Wuerfel). Wuerfel = 5 Sides, jede Aufspannung manuell.
Wizard fragt:
Akzeptanzkriterien
Backend
WerkstueckTransformationModell indb/models.pySetup.werkstueck_transformationFeldSetupPauseTyp.MASCHINEN_UMBAU+ Detail-FelderFrontend
Wiki + Sample-Files
Tests
Bezug