Fenster: Linienstärke/Farbe (sashLine) wirkt jetzt auch bei 1:100

Die einzige bei "grob" sichtbare Glaslinie war fest codiert (weder Opening.
color noch die neuen Kategorie-Übersteuerungen griffen dort). Nutzt jetzt
sashLine (Fenster-Kategorie), konsistent mit mittel/fein.
This commit is contained in:
2026-07-12 18:52:08 +02:00
parent 814e9a8656
commit 6b89ad5bdb
2 changed files with 23 additions and 1 deletions
+12 -1
View File
@@ -2265,9 +2265,20 @@ function addOpeningSymbol(
if (detail === "grob") {
// SIA 1:100 — nur eine dünne Glaslinie mittig über die weisse Öffnung.
// Zählt zur "Fenster"-Kategorie (sashLine) — dieselbe Glaslinie, die bei
// mittel/fein früher sichtbar war (jetzt dort entfernt, s. Fenster-Session).
const g = sym.glassLines[Math.floor(sym.glassLines.length / 2)] ?? sym.glassLines[0];
if (g) {
out.push({ kind: "line", a: g[0], b: g[1], cls: "window-glass", weightMm: SYMBOL_HAIRLINE_MM, greyed, openingId: o.id });
out.push({
kind: "line",
a: g[0],
b: g[1],
cls: "window-glass",
weightMm: o.sashLine?.weight ?? SYMBOL_HAIRLINE_MM,
color: o.sashLine?.color ?? strokeColor,
greyed,
openingId: o.id,
});
}
} else {
// Linien-Kategorien einzeln übersteuerbar (Nutzer-Wunsch): Rahmen (Blend-
@@ -389,6 +389,17 @@ describe("generatePlan — Linien-Übersteuerung je Kategorie (Opening.frameLine
expect(sill[0].kind === "line" && sill[0].color).toBe("#0000ff");
expect(sill[0].kind === "line" && sill[0].weightMm).toBeCloseTo(0.4, 6);
});
it("sashLine wirkt auch bei 'grob' (1:100) auf die einzige dort sichtbare Glaslinie", () => {
const p = project(
{ ...baseWindow, typeId: "wt1", sashLine: { color: "#00ff00", weight: 0.3 } },
[twoSashType],
);
const g = linesOfClass(p, "window-glass", "grob");
expect(g.length).toBe(1);
expect(g[0].kind === "line" && g[0].color).toBe("#00ff00");
expect(g[0].kind === "line" && g[0].weightMm).toBeCloseTo(0.3, 6);
});
});
describe("generatePlan — Rollladenkasten shading (Item 3)", () => {