Waende bekommen Dicke, Carportdaecher werden flacher
Vier Korrekturen am Aussenplan: Die Waende sind Kaesten und keine Flaechen mehr. An einer Oeffnung stand sonst ein Blatt Papier im Raum - Innenseite, Oberkante und die beiden Schnittkanten fehlten, und genau das sah seltsam aus. Die Dicke wird nur gerechnet, wo ein Koerper ueberhaupt offen ist; bei einer geschlossenen Wand sieht man sie nie. Der First der Garage lief vorher schon richtig, Nord-Sued. Die Drehung um 90 Grad war ein Missverstaendnis und ist zurueckgenommen - jetzt steht die Achse ausgeschrieben da, damit bei diesem fast quadratischen Grundriss nicht wieder die zweite Nachkommastelle entscheidet. Die halb offenen Nord- und Suedwaende des EG-Carports sind wieder zu. Die Faehigkeit bleibt im Zeichner, sie wird hier nur nicht mehr gebraucht. Beide Pultdaecher sind auf ein Drittel abgeflacht: 0,27 m statt 0,8 beim OG-Carport, 0,23 statt 0,7 beim EG-Carport - rund vier Prozent Neigung. Beim OG-Carport ist die Wandhoehe dafuer auf 2,23 m gesetzt, damit die hohe Seite bei 2,50 m herauskommt und dort an die Traufe des Garagendachs anschliesst. Nachgerechnet: beide bei 2,50 m. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+67
-14
@@ -134,27 +134,30 @@ function aussenFlaechen()
|
||||
// Beide Carports sind Holzkonstruktionen mit Pultdach, die Module
|
||||
// liegen plan darauf. Der OG-Carport faellt zur Strasse ab, also nach
|
||||
// Westen, und ist nach Sueden offen.
|
||||
["raum" => "Carport OG", "z" => 0, "hoehe" => 2.5, "farbe" => "#b8b3aa",
|
||||
// Die hohe Seite liegt im Osten und schliesst dort an die Traufe des
|
||||
// Garagendachs an - deshalb 2,23 + 0,27 und nicht glatt 2,5: die
|
||||
// Oberkante der hohen Seite soll die 2,5 treffen, nicht die Wand.
|
||||
["raum" => "Carport OG", "z" => 0, "hoehe" => 2.23, "farbe" => "#b8b3aa",
|
||||
"dachfarbe" => "#a8a29a", "pv" => true,
|
||||
"dach" => ["art" => "pult", "hoehe" => 0.8, "tief" => "W"],
|
||||
"dach" => ["art" => "pult", "hoehe" => 0.27, "tief" => "W"],
|
||||
"offen" => ["S"],
|
||||
"ecken" => [[12.2, 19.2], [13.3, 25.4], [9.3, 26.1], [8.2, 19.9]]],
|
||||
|
||||
// Der EG-Carport faellt nach Sueden ab, ist nach Westen offen, und
|
||||
// seine Nord- und Suedwand stehen nur in der hinteren Haelfte.
|
||||
// Der EG-Carport faellt nach Sueden ab und ist nach Westen offen.
|
||||
["raum" => "Carport EG", "z" => 0, "hoehe" => 2.2, "farbe" => "#b8b3aa",
|
||||
"dachfarbe" => "#a8a29a", "pv" => true,
|
||||
"dach" => ["art" => "pult", "hoehe" => 0.7, "tief" => "S"],
|
||||
"offen" => ["W"], "halb" => ["N", "S"],
|
||||
"dach" => ["art" => "pult", "hoehe" => 0.23, "tief" => "S"],
|
||||
"offen" => ["W"],
|
||||
"ecken" => [[19.0, 34.6], [19.3, 39.1], [10.7, 40.3], [10.4, 35.8]]],
|
||||
|
||||
// Die Garage hat ein begruentes Dach und ihr Tor nach Sueden. Der
|
||||
// First laeuft quer zu dem, was die laengere Achse nahelegen wuerde -
|
||||
// bei einem fast quadratischen Grundriss entscheidet das sonst der
|
||||
// Zufall der zweiten Nachkommastelle.
|
||||
// First laeuft Nord-Sued, die Traufen liegen also im Osten und Westen;
|
||||
// an der westlichen setzt der OG-Carport an. Ausgeschrieben, weil bei
|
||||
// einem fast quadratischen Grundriss sonst die zweite Nachkommastelle
|
||||
// entscheidet, welche Seite die laengere ist.
|
||||
["raum" => "Garage", "z" => 0, "hoehe" => 2.5, "farbe" => "#c9ced5",
|
||||
"dachfarbe" => "#7d9470", "tor" => "S",
|
||||
"dach" => ["art" => "sattel", "hoehe" => 1.5, "achse" => "OW"],
|
||||
"dach" => ["art" => "sattel", "hoehe" => 1.5, "achse" => "NS"],
|
||||
"ecken" => [[12.2, 19.2], [13.3, 25.4], [19.6, 24.3], [18.5, 18.0]]],
|
||||
|
||||
["raum" => "Veranda EG", "z" => 0, "hoehe" => 0, "farbe" => "#aeb8c4",
|
||||
@@ -398,6 +401,9 @@ function aussenZeichnung()
|
||||
$farbe = $f["farbe"] ?? "#8a9099";
|
||||
$offen = $f["offen"] ?? [];
|
||||
$halb = $f["halb"] ?? [];
|
||||
// Wandstaerke gibt es nur, wo sie zu sehen ist - an einer Oeffnung.
|
||||
// Bei einem geschlossenen Koerper waere sie Rechenarbeit fuer nichts.
|
||||
$dicke = ($offen || $halb) ? ($f["dicke"] ?? 0.2) : 0.0;
|
||||
|
||||
// --- Hoehe der Oberkante je Ecke ---------------------------------
|
||||
//
|
||||
@@ -481,16 +487,63 @@ function aussenZeichnung()
|
||||
}
|
||||
}
|
||||
|
||||
$wandflaeche = [
|
||||
// Eine Wand ist ein Kasten und keine Flaeche. Sichtbar wird
|
||||
// die Dicke nur an einer Oeffnung - dort steht sonst ein
|
||||
// Blatt Papier im Raum, und genau das sah seltsam aus.
|
||||
// Innenseite, Oberkante und die beiden Schnittkanten kommen
|
||||
// deshalb nur dazu, wo der Koerper ueberhaupt offen ist.
|
||||
$innenVon = [$von[0] - $k["nx"] * $dicke, $von[1] - $k["ny"] * $dicke];
|
||||
$innenBis = [$bis[0] - $k["nx"] * $dicke, $bis[1] - $k["ny"] * $dicke];
|
||||
|
||||
$seiten = [];
|
||||
// Aussenseite
|
||||
$seiten[] = [[
|
||||
aussenPunkt($einpassung, $von[0], $von[1], $z),
|
||||
aussenPunkt($einpassung, $bis[0], $bis[1], $z),
|
||||
aussenPunkt($einpassung, $bis[0], $bis[1], $zBis),
|
||||
aussenPunkt($einpassung, $von[0], $von[1], $zVon),
|
||||
];
|
||||
if (!aussenSichtbar($wandflaeche)) {
|
||||
], 0.72];
|
||||
if ($dicke > 0) {
|
||||
// Innenseite - umgekehrter Umlauf, damit sie zaehlt, wenn
|
||||
// man durch die Oeffnung hineinsieht.
|
||||
$seiten[] = [[
|
||||
aussenPunkt($einpassung, $innenBis[0], $innenBis[1], $z),
|
||||
aussenPunkt($einpassung, $innenVon[0], $innenVon[1], $z),
|
||||
aussenPunkt($einpassung, $innenVon[0], $innenVon[1], $zVon),
|
||||
aussenPunkt($einpassung, $innenBis[0], $innenBis[1], $zBis),
|
||||
], 0.60];
|
||||
// Oberkante
|
||||
$seiten[] = [[
|
||||
aussenPunkt($einpassung, $von[0], $von[1], $zVon),
|
||||
aussenPunkt($einpassung, $bis[0], $bis[1], $zBis),
|
||||
aussenPunkt($einpassung, $innenBis[0], $innenBis[1], $zBis),
|
||||
aussenPunkt($einpassung, $innenVon[0], $innenVon[1], $zVon),
|
||||
], 0.86];
|
||||
// Die beiden Schnittkanten an den Enden der Wand
|
||||
$seiten[] = [[
|
||||
aussenPunkt($einpassung, $innenVon[0], $innenVon[1], $z),
|
||||
aussenPunkt($einpassung, $von[0], $von[1], $z),
|
||||
aussenPunkt($einpassung, $von[0], $von[1], $zVon),
|
||||
aussenPunkt($einpassung, $innenVon[0], $innenVon[1], $zVon),
|
||||
], 0.84];
|
||||
$seiten[] = [[
|
||||
aussenPunkt($einpassung, $bis[0], $bis[1], $z),
|
||||
aussenPunkt($einpassung, $innenBis[0], $innenBis[1], $z),
|
||||
aussenPunkt($einpassung, $innenBis[0], $innenBis[1], $zBis),
|
||||
aussenPunkt($einpassung, $bis[0], $bis[1], $zBis),
|
||||
], 0.84];
|
||||
}
|
||||
$etwasSichtbar = false;
|
||||
foreach ($seiten as $seite) {
|
||||
if (aussenSichtbar($seite[0])) {
|
||||
$polygone[] = ["punkte" => $seite[0],
|
||||
"farbe" => aussenSchatten($farbe, $seite[1])];
|
||||
$etwasSichtbar = true;
|
||||
}
|
||||
}
|
||||
if (!$etwasSichtbar) {
|
||||
continue;
|
||||
}
|
||||
$polygone[] = ["punkte" => $wandflaeche, "farbe" => aussenSchatten($farbe, 0.72)];
|
||||
|
||||
// Das Tor sitzt mittig in seiner Wand und reicht nicht ganz
|
||||
// bis unter die Traufe.
|
||||
|
||||
Reference in New Issue
Block a user