diff --git a/00_Konzept/raci-aktiv-feld.svg b/00_Konzept/raci-aktiv-feld.svg deleted file mode 100644 index 5766857..0000000 --- a/00_Konzept/raci-aktiv-feld.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - RACI-Lösung: das Aktiv-Feld (RACI-Fläche) - Eine flache Platte mit 4 abgetrennten Bereichen R · A · C · I, je 4 Standflächen (2×2), symmetrisch. Liegt neben dem Action-Stein und wandert mit. - Beispiel: ds_01 — A: Service Owner · R: Projektleitung · C: Betrieb, Architektur, SPM · I: frei - - - - Aktivitäts-Tile (Draufsicht) - - - - - - Szenario-Karte - Action-Stein steht in der Verankerung - („wir sind hier") · Tile bleibt blank - - - - - - liegt daneben - & wandert mit - - - - - RACI-Fläche — Rollen-Figuren je Bereich gestellt - - - - - - - - - - - PL - R - - - - - - - - - SO - genau 1 - A - - - - - - - - - - Betr. - - Arch - - SPM - C - - - - - - - - - (frei) - I - - - ~236 × 74 × 6 mm · R/C/I je 4 Standflächen (2×2) · A = genau 1 · Sockel Ø20, Pitch 24 · keine Löcher - - - - - Figurenfarbe = Rollenkategorie - Governance (SO, SPM) - Management (PL) - Teams (Betrieb) - Operative (Arch) - Externe (Lieferant) - - diff --git a/00_Konzept/raci-tile-variante.svg b/00_Konzept/raci-tile-variante.svg deleted file mode 100644 index 8e4b054..0000000 --- a/00_Konzept/raci-tile-variante.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - RACI-Tile-Variante: Kreuz-Teilung in 4 Quadranten - Sieht aus wie ein normales Tile, aber durch die Mitte horizontal + vertikal geteilt. Ein Tile, neben dem aktuellen platziert, pro Aktivität bestückt. - Beispiel ds_01 — A: Service Owner · R: Projektleitung · C: Betrieb, Architektur, SPM · I: frei - - - - - - - - - - - - - - - - - R - A - C - I - - - - PL - - - - - SO (genau 1) - - - - Betrieb - - Arch - - SPM - - - (frei) - - 100 × 100 mm · Quadranten ~48 × 48 mm · A = markiertes Einzelfeld · C am stärksten belegt (bis 4) - - - - - Kapazität (Maximum) - A = 1 (immer) - R = bis 3 - C = bis 4 - I = bis ~2 - - Warum nicht Eck-Mulden? - 1 Mulde = 1 Figur → - reicht für C/R nicht. - Quadrant = Fläche → - mehrere Figuren ok. - - diff --git a/01_3D-Druck/README_3d-druck.md b/01_3D-Druck/README_3d-druck.md index 2a0b8c5..4e9503b 100644 --- a/01_3D-Druck/README_3d-druck.md +++ b/01_3D-Druck/README_3d-druck.md @@ -11,9 +11,8 @@ Verankerung und Steckmechanik. |-------|-------| | [`materialliste.md`](materialliste.md) | Alle Bauteile mit Maßen, Mengen, Material- und Druckempfehlung | | [`visual-prompts_3d-producer.md`](visual-prompts_3d-producer.md) | Bild-Prompts als Orientierungs-Renderings für den Producer | -| [`board-layout.svg`](board-layout.svg) | Maßstäbliche Layout-Skizze des gesamten Boards (exakt 40 Tiles, Sequenz, Loop) | -| `board-layout.png` | PNG-Vorschau der Layout-Skizze | -| [`gen_board_layout.py`](gen_board_layout.py) | Generator-Skript für die Layout-Skizze (bei Änderungen erneut ausführen) | +| [`board-layout.svg`](board-layout.svg) | Maßstäbliche Layout-Skizze des gesamten Boards (40 Pucks: 37 + 3 Gate-Pucks, Sequenz, Loop) — im Browser/Editor ansehen | +| [`gen_board_layout.py`](gen_board_layout.py) | Generator-Skript für die Layout-Skizze (bei Änderungen erneut ausführen → `board-layout.svg`) | | [`openscad/`](openscad/) | Parametrische Modelle (OpenSCAD) der Schlüsselteile zum direkten Slicen | ## Grundsätzliche Design-Entscheidungen diff --git a/01_3D-Druck/bauteile-masse.svg b/01_3D-Druck/bauteile-masse.svg deleted file mode 100644 index 1b4b147..0000000 --- a/01_3D-Druck/bauteile-masse.svg +++ /dev/null @@ -1,164 +0,0 @@ - - - - - SLC-Workshop — Bauteilmaße (aktuell, v0.4) - Maßstab 2 px = 1 mm · rote Maße in mm · Figuren werden gestellt (keine Stecklöcher) - - - - - 50 mm - - - - Phasen-Basistile (Draufsicht) - - - - - - - - - - - Verankerung - Ø60 · T4 - - - 100 - - 100 - Tab 12×6 (N/O) - Slot 12×6 (S/W) - Dicke 6 mm · Ecken r3 · Passung +0,4 mm - - - - - Aktivitäts-Scheibe (blanko + Aufkleber) - - - op_05 - Aufkleber - Ø58–60 - - Ø60 - × 4 mm · Fase 1 mm · blanko (Aufkleber statt Gravur) - - - - - Entscheidungs-Chip - - GO - - Ø30 - × 4 mm · Münze, Symbolgravur - Go / Go m. Auflagen / Zurück / Ablehnung - - - - - Action-Stein - - - Karte - 60×90 - - - Ø35 - ×30 - - - Fuß Ø59 × 5 · M8-Mutter - Schlitz B64 × T4 · Standring Ø70 opt. - - - - - Gate-Tor (Vorderansicht) - - - - - - - - - - - - - - - - - - lichte Weite 90 - - Höhe 100 - Querbalken 14 - Füße 60×30×4 - 4 Standfelder Ø18 (Gravur 0,6) — keine Löcher - Materialstärke (Tiefe) 8 · Pfosten 12 · Kartenschlitz 65×3 (T10) - - - - - Aktiv-Feld · RACI-Fläche (Draufsicht) - - - - - - R - - - - A - - - - - C - - - - - I - - ~236 - 74 × 6 mm · R/C/I je 4 (2×2) · A = genau 1 (schematisch) - Ø22 (alle gleich, wie Puck) · Pitch 30 (Sockel Ø20) · keine Löcher - - - - - Rollen-Figur - - - - - - Höhe ~50 mm - flacher Standfuß, - kein Pin - - Sockel Ø20 - - diff --git a/01_3D-Druck/board-layout.png b/01_3D-Druck/board-layout.png deleted file mode 100644 index 639d011..0000000 Binary files a/01_3D-Druck/board-layout.png and /dev/null differ diff --git a/01_3D-Druck/board-layout.svg b/01_3D-Druck/board-layout.svg index f26877f..5e565d3 100644 --- a/01_3D-Druck/board-layout.svg +++ b/01_3D-Druck/board-layout.svg @@ -1,310 +1,513 @@ - - + + -Service-Lifecycle — Board-Layout (40 Tiles) -37 Aktivitaeten + 3 Gates · 1 Tile = 100x100 mm · lineare Bahn, Sequenz links nach rechts - -DESIGN -4 Tiles - - - - -ds_01 -Eigenschaften definieren - - - - - -ds_02 -Komponenten designen - - - - - -ds_03 -Vorgehen beschreiben - - - - - -ds_04 -Implementierung vorbereiten - - -TRANSITION -12 Tiles - - - - -tr_01 -Entw. / Konfig.? - - - - - -tr_02 -Entwicklung koordinieren - - - - - -tr_03 -Anwendungen entwickeln - - - - - -tr_04 -Komponenten annehmen - - - - - -tr_05 -Komponenten konfigurieren - - - - - -tr_06 -Betriebsdoku erstellen - - - - - -tr_07 -Komponenten testen - - - - - -tr_08 -Formale Uebergabe - - - - - -tr_09 -Entry-Pruefung - - - - - -tr_10 -Ausrollen - - - - - -tr_11 -Aktivierung vorbereiten - - - - - -tr_12 -Go-Live-Freigabe - - -OPERATION -7 Tiles - - - - -op_01 -Early Life Support - - - - - -op_02 -Betriebs-Leitlinien - - - - - -op_03 -Laufender Betrieb - - - - - -op_04 -Ressourcen & Budget - - - - - -op_05 -Services ueberwachen - - - - - -op_06 -Qualitaetsbericht - - - - - -op_07 -Proaktive Problemerkennung - - -SUPPORT -11 Tiles - - - - -sp_01 -Support-Leitlinien - - - - - -sp_02 -Wissensdatenbank - - - - - -sp_03 -Incidents/Requests verteilen - - - - - -sp_04 -Requests bearbeiten - - - - - -sp_05 -Incident 1st Level - - - - - -sp_06 -Incident 2nd Level - - - - - -sp_07 -Record geloest - - - - - -sp_08 -Schliessen - - - - - -sp_09 -Problem Record anlegen - - - - - -sp_10 -Wiederk. Incidents -> Problem - - - - - -sp_11 -RCA & Workaround - - -REVIEW -6 Tiles - - - - -rv_01 -Taktische RCA + KPIs - - - - - -rv_02 -Performance & Improvement - - - - - -rv_03 -SOR Periodischer Review - - - - - -rv_04 -Service Improvement - - - - - -rv_05 -Redesign / Erweiterung - - - - - -rv_06 -Ausserbetriebnahme - -Betriebs-Loop - -zurueck in DPM -rv_05 Redesign / rv_06 Retirement - -Gate-Tile (Tor mit Rollen-Steckplaetzen) - -Aktivitaets-Tile (mit Verankerung fuer einseitiges Plaettchen) -Breiteste Phase: 12 Tiles ~ 134 cm (bei 100 mm Tiles + 12 mm Verbinder). Bahn bei Platzmangel maeandrierend faltbar. +Service-Lifecycle — Board-Layout (40 Pucks) +37 Aktivitaeten + 3 Gate-Pucks · 1 Puck = Ø100 mm · lose Bahn, Sequenz links nach rechts + +DESIGN +4 Pucks + + + + + + + + + +ds_01 +Eigenschaften definieren + + + + + + + + + + +ds_02 +Komponenten designen + + + + + + + + + + +ds_03 +Vorgehen beschreiben + + + + + + + + + + +ds_04 +Implementierung vorbereiten + + +TRANSITION +12 Pucks + + + + + + + + + +tr_01 +Entw. / Konfig.? +GATE + + + + + + + + + + +tr_02 +Entwicklung koordinieren + + + + + + + + + + +tr_03 +Anwendungen entwickeln + + + + + + + + + + +tr_04 +Komponenten annehmen + + + + + + + + + + +tr_05 +Komponenten konfigurieren + + + + + + + + + + +tr_06 +Betriebsdoku erstellen + + + + + + + + + + +tr_07 +Komponenten testen + + + + + + + + + + +tr_08 +Formale Uebergabe + + + + + + + + + + +tr_09 +Entry-Pruefung +GATE + + + + + + + + + + +tr_10 +Ausrollen + + + + + + + + + + +tr_11 +Aktivierung vorbereiten + + + + + + + + + + +tr_12 +Go-Live-Freigabe +GATE + + +OPERATION +7 Pucks + + + + + + + + + +op_01 +Early Life Support + + + + + + + + + + +op_02 +Betriebs-Leitlinien + + + + + + + + + + +op_03 +Laufender Betrieb + + + + + + + + + + +op_04 +Ressourcen & Budget + + + + + + + + + + +op_05 +Services ueberwachen + + + + + + + + + + +op_06 +Qualitaetsbericht + + + + + + + + + + +op_07 +Proaktive Problemerkennung + + +SUPPORT +11 Pucks + + + + + + + + + +sp_01 +Support-Leitlinien + + + + + + + + + + +sp_02 +Wissensdatenbank + + + + + + + + + + +sp_03 +Incidents/Requests verteilen + + + + + + + + + + +sp_04 +Requests bearbeiten + + + + + + + + + + +sp_05 +Incident 1st Level + + + + + + + + + + +sp_06 +Incident 2nd Level + + + + + + + + + + +sp_07 +Record geloest + + + + + + + + + + +sp_08 +Schliessen + + + + + + + + + + +sp_09 +Problem Record anlegen + + + + + + + + + + +sp_10 +Wiederk. Incidents -> Problem + + + + + + + + + + +sp_11 +RCA & Workaround + + +REVIEW +6 Pucks + + + + + + + + + +rv_01 +Taktische RCA + KPIs + + + + + + + + + + +rv_02 +Performance & Improvement + + + + + + + + + + +rv_03 +SOR Periodischer Review + + + + + + + + + + +rv_04 +Service Improvement + + + + + + + + + + +rv_05 +Redesign / Erweiterung + + + + + + + + + + +rv_06 +Ausserbetriebnahme + +Betriebs-Loop + +zurueck in DPM +rv_05 Redesign / rv_06 Retirement + +Gate-Puck (rot, Etikett G1/G2/G3 + Icon) + +Station-Puck (Ø100, 7 Figurenmulden + Etikett) +Breiteste Phase: 12 Pucks ~ 132 cm (bei Ø100 mm Pucks + ~10 mm Abstand). Bahn bei Platzmangel maeandrierend. \ No newline at end of file diff --git a/01_3D-Druck/gen_board_layout.py b/01_3D-Druck/gen_board_layout.py index 1a91b69..eb0d422 100644 --- a/01_3D-Druck/gen_board_layout.py +++ b/01_3D-Druck/gen_board_layout.py @@ -1,10 +1,12 @@ #!/usr/bin/env python3 """Generiert die Board-Layout-Skizze (SVG) fuer den SLC-Workshop. -Lineares Phasen-Swimlane-Layout: jede Phase eine Zeile, Tiles links->rechts. -Exakt 40 Tiles (37 Aktivitaeten + 3 Gates). Reproduzierbar: bei Aenderungen +Lineares Phasen-Swimlane-Layout: jede Phase eine Zeile, Pucks links->rechts. +Exakt 40 Pucks (37 Aktivitaeten + 3 Gate-Pucks). Reproduzierbar: bei Aenderungen einfach erneut ausfuehren -> board-layout.svg. """ +import math + # (id, kurzname, is_gate) PHASES = [ ("DESIGN", "#2F80C9", [ @@ -60,15 +62,16 @@ PHASES = [ ] # Layout-Parameter -TILE_W, TILE_H = 112, 74 -GAP_X, GAP_Y = 16, 46 +TILE_W, TILE_H = 86, 86 # Zelle je Puck (rund, inscribed) +GAP_X, GAP_Y = 12, 40 +PUCK_R = 35 # Puck-Radius in px (= Ø100 mm) LABEL_W = 150 X0 = 30 + LABEL_W + 20 Y0 = 96 MAX_TILES = max(len(t) for _, _, t in PHASES) WIDTH = X0 + MAX_TILES * (TILE_W + GAP_X) + 200 HEIGHT = Y0 + len(PHASES) * (TILE_H + GAP_Y) + 120 -TILE_MM = 100 # ein Tile = 100x100 mm +TILE_MM = 100 # ein Puck = Ø100 mm def esc(s): @@ -85,32 +88,33 @@ def lighten(hexcol, f=0.85): def tile_svg(x, y, tid, name, color, is_gate): - fill = color if is_gate else lighten(color, 0.88) + """Zeichnet einen runden Puck: Aussenring, 7 Figurenmulden, zentrales Etikett.""" + cx, cy = x + TILE_W / 2.0, y + TILE_H / 2.0 + fill = color if is_gate else lighten(color, 0.90) stroke = color sw = 3 if is_gate else 2 - txtcol = "#ffffff" if is_gate else "#1a1a1a" parts = [] - # Puzzle-Notch links (Hintergrundfarbe), Bump rechts (Randfarbe) - parts.append(f'') - parts.append(f'') - parts.append(f'') + # 7 Figurenmulden im Ring + for k in range(7): + a = math.radians(360.0 / 7 * k - 90) + wx = cx + (PUCK_R - 8) * math.cos(a) + wy = cy + (PUCK_R - 8) * math.sin(a) + parts.append(f'') + # zentrales Etikett-Feld + parts.append(f'') + parts.append(f'{esc(tid)}') + # Name unter dem Puck + parts.append(f'{esc(name)}') if is_gate: - # kleiner Torbogen + GATE-Label - ax, ay = x + TILE_W/2, y + 14 - parts.append(f'') - parts.append(f'{esc(tid)}') - parts.append(f'{esc(name)}') - else: - parts.append(f'') # Verankerung - parts.append(f'{esc(tid)}') - parts.append(f'{esc(name)}') + parts.append(f'GATE') return "\n".join(parts) @@ -128,10 +132,10 @@ svg.append('') # Titel svg.append(f'' - f'Service-Lifecycle — Board-Layout (40 Tiles)') + f'Service-Lifecycle — Board-Layout (40 Pucks)') svg.append(f'' - f'37 Aktivitaeten + 3 Gates · 1 Tile = {TILE_MM}x{TILE_MM} mm · ' - f'lineare Bahn, Sequenz links nach rechts') + f'37 Aktivitaeten + 3 Gate-Pucks · 1 Puck = Ø{TILE_MM} mm · ' + f'lose Bahn, Sequenz links nach rechts') row_y = {} for ri, (pname, color, tiles) in enumerate(PHASES): @@ -143,7 +147,7 @@ for ri, (pname, color, tiles) in enumerate(PHASES): svg.append(f'{esc(pname)}') svg.append(f'{len(tiles)} Tiles') + f'font-size="12" fill="#fff">{len(tiles)} Pucks') # Tiles prev = None for ti, (tid, name, is_gate) in enumerate(tiles): @@ -179,16 +183,16 @@ svg.append(f'' # Legende / Massstab ly = HEIGHT - 64 -svg.append(f'') -svg.append(f'Gate-Tile (Tor mit Rollen-Steckplaetzen)') -svg.append(f'') -svg.append(f'Aktivitaets-Tile (mit Verankerung fuer einseitiges Plaettchen)') +svg.append(f'') +svg.append(f'Gate-Puck (rot, Etikett G1/G2/G3 + Icon)') +svg.append(f'') +svg.append(f'Station-Puck (Ø100, 7 Figurenmulden + Etikett)') # Gesamtbreite-Hinweis -total_mm = MAX_TILES * (TILE_MM + 12) +total_mm = MAX_TILES * (TILE_MM + 10) svg.append(f'' - f'Breiteste Phase: {MAX_TILES} Tiles ~ {total_mm/10:.0f} cm ' - f'(bei {TILE_MM} mm Tiles + 12 mm Verbinder). Bahn bei Platzmangel maeandrierend faltbar.') + f'Breiteste Phase: {MAX_TILES} Pucks ~ {total_mm/10:.0f} cm ' + f'(bei Ø{TILE_MM} mm Pucks + ~10 mm Abstand). Bahn bei Platzmangel maeandrierend.') svg.append('') @@ -199,4 +203,4 @@ with open(out, "w", encoding="utf-8") as f: total = sum(len(t) for _, _, t in PHASES) gates = sum(1 for _, _, t in PHASES for _, _, g in t if g) print(f"geschrieben: {out}") -print(f"Tiles gesamt: {total} (Aktivitaeten: {total-gates}, Gates: {gates})") +print(f"Pucks gesamt: {total} (Aktivitaeten: {total-gates}, Gate-Pucks: {gates})")