v0.4.13: opbouw buitenwand boven lager dak, latwerk-raster per gevel, dakrand 80 mm boven dakleer, lage rand loopt door
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
373c2c2fb7
commit
94a5215f82
+15
-4
@@ -508,6 +508,9 @@ window.WallModel = (() => {
|
||||
// linkerrand van dit stuk. Het verticale latten-raster volgt dan de
|
||||
// hele gevel i.p.v. per stuk opnieuw te beginnen; een eindlat komt
|
||||
// alleen aan het einde van de gevel.
|
||||
// facade.gridY0 (optioneel, mm, wand-coördinaten): hoogte waarop het
|
||||
// horizontale latten-raster van de hele gevel begint. Een wandstuk dat
|
||||
// hoger begint (opbouw, blootliggende naadwand) volgt zo hetzelfde raster.
|
||||
// skinFrom (optioneel, mm): buitenafwerking pas vanaf deze hoogte (het
|
||||
// blootliggende deel van een naadwand boven het dak van de andere unit).
|
||||
function computeBattens(CONFIG, cladding, trasraam, skinExt, facade, skinFrom) {
|
||||
@@ -524,7 +527,12 @@ window.WallModel = (() => {
|
||||
|
||||
// Horizontale latten: vanaf de onderkant elke 400 mm (hartmaat).
|
||||
const horizontaal = [];
|
||||
for (let y = y0 + w / 2; y < tl.maxY - w / 2; y += sp) {
|
||||
let yStart = y0 + w / 2;
|
||||
if (facade && facade.gridY0 !== undefined) {
|
||||
const g = facade.gridY0 + w / 2;
|
||||
yStart = g + Math.max(0, Math.ceil((yStart - g) / sp - 1e-9)) * sp;
|
||||
}
|
||||
for (let y = yStart; y < tl.maxY - w / 2; y += sp) {
|
||||
skinSegmentsAtY(CONFIG, y).forEach(([x0, x1]) => {
|
||||
if (x0 <= -halfW + 0.5) x0 = xL;
|
||||
if (x1 >= halfW - 0.5) x1 = xR;
|
||||
@@ -646,10 +654,13 @@ window.WallModel = (() => {
|
||||
// Watermerk-UV's (doek) in gevel-coördinaten, zodat het patroon over
|
||||
// naden/wandstukken doorloopt (UV = vormcoördinaat in m + verschuiving).
|
||||
const uvShiftM = facade ? (CONFIG.wallWidth / 2 + facade.u0) * 0.001 : 0;
|
||||
// Verticaal: een hoger beginnend stuk (facade.yOff, mm boven het
|
||||
// loopvlak van de gevel) schuift het watermerk mee omhoog.
|
||||
const uvShiftYM = facade && facade.yOff ? facade.yOff * 0.001 : 0;
|
||||
const shiftUV = (geo) => {
|
||||
if (!uvShiftM) return geo;
|
||||
if (!uvShiftM && !uvShiftYM) return geo;
|
||||
const uv = geo.attributes.uv;
|
||||
for (let k = 0; k < uv.count; k++) uv.setX(k, uv.getX(k) + uvShiftM);
|
||||
for (let k = 0; k < uv.count; k++) { uv.setX(k, uv.getX(k) + uvShiftM); uv.setY(k, uv.getY(k) + uvShiftYM); }
|
||||
return geo;
|
||||
};
|
||||
|
||||
@@ -1335,7 +1346,7 @@ window.WallModel = (() => {
|
||||
}
|
||||
|
||||
return {
|
||||
STANDARD_BEAM, STOCK_LENGTHS_MM, CORNER_STUDS, EXTERIOR_MATERIALS, OPENING_TYPES, BATTEN, CLADDING_DIRECTIONS, CLADDING_THICK_MM, claddingOffset, cornerExt, TRASRAAM_DEFAULT_MM, trasraamFor, computeBattens, planPurchase, purchaseText,
|
||||
STANDARD_BEAM, STOCK_LENGTHS_MM, CORNER_STUDS, EXTERIOR_MATERIALS, OPENING_TYPES, BATTEN, CLADDING_DIRECTIONS, CLADDING_THICK_MM, claddingOffset, cornerExt, TRASRAAM_DEFAULT_MM, trasraamFor, skinStartY, computeBattens, planPurchase, purchaseText,
|
||||
sheathingHoles, skinSegmentsAtY, topLine, topPlateOutlines,
|
||||
validateState, resolveOpenings, computeBOM, groupBOM, buildConfig, configFromState, thicknessOf, computeFrame,
|
||||
createMaterials, build3D, computeSpecs
|
||||
|
||||
Reference in New Issue
Block a user