Linienstile aufgeräumt: redundante 0.13-Volllinien zusammengeführt, weight-only als Volllinie benannt, Referenzen remappt

This commit is contained in:
2026-07-05 19:32:38 +02:00
parent ff68ec3a5c
commit c40764a25f
3 changed files with 17 additions and 20 deletions
+1 -1
View File
@@ -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. - [ ] **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`). - [ ] **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). - [ ] **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). - [ ] 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`. - [ ] **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. - [ ] Elemente im Schnitt anwählbar; render3d 2D-Schraffur auf 3D-Flächen.
+14 -18
View File
@@ -16,22 +16,18 @@ export const sampleProject: Project = {
id: "demo", id: "demo",
name: "Demo-Haus", name: "Demo-Haus",
// ── Ressourcen-Bibliotheken (zentral verwiesen per id) ────────────────── // ── Ressourcen-Bibliotheken (zentral verwiesen per id) ──────────────────
// Linienstile: Strichstärken aus DEFAULT_LAYER_SCHEMA (lw in mm). "hatch-line" // Linienstile: aufgeräumt auf kanonische VOLLLINIEN je Strichstärke (dash=null)
// ist der dünne Strich für Schraffur-Muster. // + 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: [ lineStyles: [
{ id: "thin", name: "Dünn 0.13", weight: 0.13, color: "#1a1a1a", dash: null }, { id: "hatch-hair", name: "Volllinie 0.02", weight: 0.02, color: "#1a1a1a", dash: null },
{ id: "medium", name: "Mittel 0.25", weight: 0.25, color: "#1a1a1a", dash: null }, { id: "thin", name: "Volllinie 0.13", weight: 0.13, color: "#1a1a1a", dash: null },
{ id: "thick", name: "Stark 0.5", weight: 0.5, color: "#0a0a0a", dash: null }, { id: "medium", name: "Volllinie 0.25", weight: 0.25, color: "#1a1a1a", dash: null },
// Schraffurlinie = schwarze Haarlinie (Grundeinstellung für alle Schraffuren). { id: "thick", name: "Volllinie 0.5", weight: 0.5, color: "#0a0a0a", dash: null },
{ 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 },
// Gestrichelte Haarlinie für die Dämmung (Striche quer durch die Wanddicke). // 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] }, { 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. // Schraffuren: color = Linien-/Vollfüllfarbe des Musters; angle in Grad.
// "none" = keine Schraffur (nur Component-Füllung). // "none" = keine Schraffur (nur Component-Füllung).
@@ -46,7 +42,7 @@ export const sampleProject: Project = {
scale: 1, scale: 1,
angle: 0, angle: 0,
color: "#1a1a1a", color: "#1a1a1a",
lineStyleId: "hatch-line", lineStyleId: "thin",
}, },
{ {
id: "diagonal", id: "diagonal",
@@ -55,7 +51,7 @@ export const sampleProject: Project = {
scale: 1, scale: 1,
angle: 45, angle: 45,
color: "#1a1a1a", color: "#1a1a1a",
lineStyleId: "hatch-line", lineStyleId: "thin",
}, },
{ {
id: "crosshatch", id: "crosshatch",
@@ -64,7 +60,7 @@ export const sampleProject: Project = {
scale: 1, scale: 1,
angle: 0, angle: 0,
color: "#1a1a1a", color: "#1a1a1a",
lineStyleId: "hatch-line", lineStyleId: "thin",
}, },
{ {
id: "solid-concrete", id: "solid-concrete",
@@ -133,7 +129,7 @@ export const sampleProject: Project = {
layers: [ layers: [
{ componentId: "render-ext", thickness: 0.02 }, { componentId: "render-ext", thickness: 0.02 },
// Innere Fuge der Dämmung trifft auf den Backstein (massiv↔massiv) → 0.13 mm. // 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: "brick", thickness: 0.15 },
{ componentId: "render-int", thickness: 0.015 }, { componentId: "render-int", thickness: 0.015 },
], ],
@@ -160,7 +156,7 @@ export const sampleProject: Project = {
// Estrich (schwimmend) → Trittschalldämmung. // Estrich (schwimmend) → Trittschalldämmung.
{ componentId: "screed", thickness: 0.06 }, { componentId: "screed", thickness: 0.06 },
// Innere Fuge der Dämmung trifft auf die Betondecke (massiv) → 0.13 mm. // 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. // Betondecke (Rohdecke, tragend) — innerste/unterste Schicht.
{ componentId: "concrete", thickness: 0.2 }, { componentId: "concrete", thickness: 0.2 },
], ],
+2 -1
View File
@@ -1847,7 +1847,8 @@ function patToHatches(text: string): Omit<HatchStyle, "id">[] {
scale: 1, scale: 1,
angle: p.families[0]?.angle ?? 45, angle: p.families[0]?.angle ?? 45,
color: "#1a1a1a", color: "#1a1a1a",
lineStyleId: "hatch-line", // Kanonische Volllinie 0.13 (früher "hatch-line", zusammengeführt auf "thin").
lineStyleId: "thin",
})); }));
} }