From c40764a25f85aa98855d229d61e336d70c530a17 Mon Sep 17 00:00:00 2001 From: Karim Date: Sun, 5 Jul 2026 19:32:38 +0200 Subject: [PATCH] =?UTF-8?q?Linienstile=20aufger=C3=A4umt:=20redundante=200?= =?UTF-8?q?.13-Volllinien=20zusammengef=C3=BChrt,=20weight-only=20als=20Vo?= =?UTF-8?q?lllinie=20benannt,=20Referenzen=20remappt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PENDENZEN.md | 2 +- src/model/sampleProject.ts | 32 ++++++++++++++------------------ src/ui/ResourceManager.tsx | 3 ++- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/PENDENZEN.md b/PENDENZEN.md index f83f42d..93ec9d6 100644 --- a/PENDENZEN.md +++ b/PENDENZEN.md @@ -74,7 +74,7 @@ - [ ] **Einstellungs-Fenster (Rest):** Verdrahtung ist **da** (`viewSlice.snapColor`/`marqueeColor` → PlanView `SnapMarker`/Marquee, Defaults aus `theme/accents.ts`, Projekt-MüM-Feld `referenceElevationMasl`). **Offen bleibt nur:** Snap/Endpunkt-Default = ❓„aki" (s.u., derzeit Sora #5FA1C9) — reine Farbentscheidung des Nutzers. - [ ] **Bildschraffur:** ambientCG/CGI-Colorfiles als Quelle (Material-Lib WIP — erst nach Freigabe); Bild-Filter Sättigung/Helligkeit/Kontrast/SW (`image.filters`). - [ ] **E2b Schraffur-Kachel-Motiv** (MotifEditor für HatchStyle-Tile wiederverwenden). -- [ ] **Linienstile aufräumen** (Weight-only-Stile → „Volllinie", lineStyleId-Referenzen remappen). +- [x] ~~**Linienstile aufräumen**~~ — **erledigt (2026-07-05):** die drei funktional identischen 0.13-Volllinien (`thin`/`hatch-line`/`joint-massive` — alle weight 0.13, `dash:null`, gleiche Farbe) auf EINE kanonische „Volllinie 0.13" (`thin`) zusammengeführt; alle weight-only-Stile klar als „Volllinie X.XX" benannt; Schraffur-Referenzen (`hatch-line`→`thin`, inkl. `ResourceManager.patToHatches`) + Schichtfugen (`joint-massive`→`thin`) remappt; `hatch-dash` (einzige gestrichelte) bleibt. Ids stabil gelassen (geladene Projekte + interne Refs bleiben heil; Rendering-Gewichte unverändert). 7→5 Stile. tsc + Suite 331 grün. - [ ] 2D-Plan z-Anordnen (Kombo-Schraffuren); Bild-Schraffur GL/DXF (heute Fallback). - [ ] **AUDIT (DOSSIER-Studie):** A1 Override-Regel-Engine; A2→A3 View-Snapshots → Print-Layout-Blätter (PDF pro Blatt); A5 reichere Öffnungen; B1 Text-Werkzeug (+ Kreis-Tool → Shortcuts 1&3); A4 Tragwerk; B2 Object-Info numerisch. (A6 Bauteil-Schedule-CSV erledigt.) Belege in `/tmp/dossier-ref/rhino/*.py`. - [ ] Elemente im Schnitt anwählbar; render3d 2D-Schraffur auf 3D-Flächen. diff --git a/src/model/sampleProject.ts b/src/model/sampleProject.ts index f2ac2c5..f2ee033 100644 --- a/src/model/sampleProject.ts +++ b/src/model/sampleProject.ts @@ -16,22 +16,18 @@ export const sampleProject: Project = { id: "demo", name: "Demo-Haus", // ── Ressourcen-Bibliotheken (zentral verwiesen per id) ────────────────── - // Linienstile: Strichstärken aus DEFAULT_LAYER_SCHEMA (lw in mm). "hatch-line" - // ist der dünne Strich für Schraffur-Muster. + // Linienstile: aufgeräumt auf kanonische VOLLLINIEN je Strichstärke (dash=null) + // + eine gestrichelte Linie. Früher gab es drei funktional identische 0.13- + // Volllinien ("thin"/"hatch-line"/"joint-massive") — zusammengeführt auf "thin" + // ("Volllinie 0.13"); Schraffur-/Schichtfugen-Referenzen zeigen jetzt darauf. + // (Die ids bleiben stabil, damit geladene Projekte + interne Referenzen halten.) lineStyles: [ - { id: "thin", name: "Dünn 0.13", weight: 0.13, color: "#1a1a1a", dash: null }, - { id: "medium", name: "Mittel 0.25", weight: 0.25, color: "#1a1a1a", dash: null }, - { id: "thick", name: "Stark 0.5", weight: 0.5, color: "#0a0a0a", dash: null }, - // Schraffurlinie = schwarze Haarlinie (Grundeinstellung für alle Schraffuren). - { id: "hatch-line", name: "Schraffurlinie", weight: 0.13, color: "#1a1a1a", dash: null }, - // Feinste Haarlinie für die SIA-Schnittschraffuren (Beton/Backstein/Dämmung): - // Gewicht unter der Bildschirm-Untergrenze, damit die Musterlinien als dünnste - // Haarlinie (Stroke-Minimum) rendern. - { id: "hatch-hair", name: "Schraffur-Haarlinie", weight: 0.02, color: "#1a1a1a", dash: null }, + { id: "hatch-hair", name: "Volllinie 0.02", weight: 0.02, color: "#1a1a1a", dash: null }, + { id: "thin", name: "Volllinie 0.13", weight: 0.13, color: "#1a1a1a", dash: null }, + { id: "medium", name: "Volllinie 0.25", weight: 0.25, color: "#1a1a1a", dash: null }, + { id: "thick", name: "Volllinie 0.5", weight: 0.5, color: "#0a0a0a", dash: null }, // Gestrichelte Haarlinie für die Dämmung (Striche quer durch die Wanddicke). { id: "hatch-dash", name: "Dämmungsstrich", weight: 0.02, color: "#1a1a1a", dash: [0.35, 0.3] }, - // Kräftige Schichtfuge, wo zwei massive Materialien aneinanderstoßen (Wandstile). - { id: "joint-massive", name: "Schichtfuge 0.13", weight: 0.13, color: "#1a1a1a", dash: null }, ], // Schraffuren: color = Linien-/Vollfüllfarbe des Musters; angle in Grad. // "none" = keine Schraffur (nur Component-Füllung). @@ -46,7 +42,7 @@ export const sampleProject: Project = { scale: 1, angle: 0, color: "#1a1a1a", - lineStyleId: "hatch-line", + lineStyleId: "thin", }, { id: "diagonal", @@ -55,7 +51,7 @@ export const sampleProject: Project = { scale: 1, angle: 45, color: "#1a1a1a", - lineStyleId: "hatch-line", + lineStyleId: "thin", }, { id: "crosshatch", @@ -64,7 +60,7 @@ export const sampleProject: Project = { scale: 1, angle: 0, color: "#1a1a1a", - lineStyleId: "hatch-line", + lineStyleId: "thin", }, { id: "solid-concrete", @@ -133,7 +129,7 @@ export const sampleProject: Project = { layers: [ { componentId: "render-ext", thickness: 0.02 }, // Innere Fuge der Dämmung trifft auf den Backstein (massiv↔massiv) → 0.13 mm. - { componentId: "insulation", thickness: 0.16, jointLineStyleId: "joint-massive" }, + { componentId: "insulation", thickness: 0.16, jointLineStyleId: "thin" }, { componentId: "brick", thickness: 0.15 }, { componentId: "render-int", thickness: 0.015 }, ], @@ -160,7 +156,7 @@ export const sampleProject: Project = { // Estrich (schwimmend) → Trittschalldämmung. { componentId: "screed", thickness: 0.06 }, // Innere Fuge der Dämmung trifft auf die Betondecke (massiv) → 0.13 mm. - { componentId: "insulation", thickness: 0.04, jointLineStyleId: "joint-massive" }, + { componentId: "insulation", thickness: 0.04, jointLineStyleId: "thin" }, // Betondecke (Rohdecke, tragend) — innerste/unterste Schicht. { componentId: "concrete", thickness: 0.2 }, ], diff --git a/src/ui/ResourceManager.tsx b/src/ui/ResourceManager.tsx index c60fb0c..d9ddbe8 100644 --- a/src/ui/ResourceManager.tsx +++ b/src/ui/ResourceManager.tsx @@ -1847,7 +1847,8 @@ function patToHatches(text: string): Omit[] { scale: 1, angle: p.families[0]?.angle ?? 45, color: "#1a1a1a", - lineStyleId: "hatch-line", + // Kanonische Volllinie 0.13 (früher "hatch-line", zusammengeführt auf "thin"). + lineStyleId: "thin", })); }