v0.4.12: dak volgt wandvorm (plat/lessenaar/zadel), dakrand per hoogte, naadwand midden of geheel in unit A/B

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Machiel
2026-09-30 14:43:42 +02:00
co-authored by Claude Opus 5.5
parent 001206a108
commit 373c2c2fb7
10 changed files with 627 additions and 274 deletions
+2 -2
View File
@@ -80,7 +80,7 @@ window.WallPdf = (() => {
doc.text('Isolatie: glaswol (spouwvullend)', tblX[0], my);
if (buitenMateriaal === 'vochtdoek') {
// Kruislat op het vochtdoek (zelfde berekening als de 3D: WallModel.computeBattens).
const bat = WallModel.computeBattens(CONFIG, opts.cladding || 'horizontaal', opts.trasraam, opts.skinExt, opts.facade);
const bat = WallModel.computeBattens(CONFIG, opts.cladding || 'horizontaal', opts.trasraam, opts.skinExt, opts.facade, opts.skinFrom);
const B = WallModel.BATTEN;
my += 4.5;
doc.text(`Latwerk ${B.thick}x${B.width}: ${bat.stock.count} st. \u00e0 ${B.length} mm, kruislat ${B.spacing} h.o.h.`, tblX[0], my);
@@ -251,7 +251,7 @@ window.WallPdf = (() => {
// Stijlen (vol + kreupel) als doorsneden: rechthoek met kruis.
doc.setDrawColor(...RED);
doc.setLineWidth(0.2);
const studXs = calcData.fullStuds.concat(calcData.jackStuds.map(j => j.x));
const studXs = [...new Set(calcData.studs.map(st => st.x))];
studXs.forEach(x => {
const x0 = px(x - CONFIG.studWidth / 2), x1 = px(x + CONFIG.studWidth / 2);
doc.rect(x0, tvFrame0, x1 - x0, tvFrame1 - tvFrame0, 'S');