abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

Windschiefes Dach - Dachstuhl

Hmooslechner
Moderator
Ich habe mich mal im GDL damit auseinandergesetzt:

Hier mal die ersten Versionen meiner Gedanken:




https://www.youtube.com/watch?v=b5H9ojaEULk

https://www.dropbox.com/s/hnscpi5k3yu8f ... 2.pln?dl=0" TARGET="_blank">Edu23Aut: https://www.dropbox.com/s/hnscpi5k3yu8f ... 2.pln?dl=0

Es gibt zwar in Archicad die Möglichkeit, solche Dachformen als Schalen darzustellen, aber über die Unterkonstruktion bekommen wir als Anwender von Graphisoft keinerlei direkte Konstruktionshilfe. Dabei erscheint es mir wichtig, gerade Träger verwenden zu können, denn diese sind im realen Bauwesen sehr leicht verfügbar. Gedrehte Elemente kann man zwar herstellen - zum Beispiel Leimbinder oder Metallträger in Torsion verformt, aber das bedeutet einen unverhältnismäßig hohen Aufwand.

Normalerweise geht es dabei besonders um Altbauten, bei denen oft die Auflagerwände der Pfetten nicht parallel gemauert wurden. Seltener setzten Architekten "windschiefe Dächer" zur Gestaltung bewußt ein.

Mir war dabei wichtig, dass - geometrisch - die Auflagerpunkte der Pfetten als Konstruktions-Grundlagen gelten, denn diese sind meistens "gegeben". Also ist mein Element so aufgebaut, dass man diese Auflagerpunkte als ersten Schritt im 2D-Grundriss an die richtige Lage bringen kann.

Dann kann man im 3D jeden Auflagerpunkt in die richtige Höhe ziehen. Dabei kann mein GDL "etwas mehr", als es bei Altbauten nötig wäre - denn jeder der 4 Punkte kann in anderer Höhe liegen. Bei Altbauten liegen aber die Anfangs und Endpunkte normalerweise in der selben Höhe.

Das GDL rechnet sich nun die Zwischenpunkte an der Pfettenlinie (derzeit nur als 3D-Linie gerechnet ohne 3D-Pfettendarstellung - kommt noch..) und verbindet einfach Fußpfettenpunkt mit oberem Punkt an der Partnerpfette.

Dann wird davon ausgehend der Dachüberstand jedes Sparrens gerechnet.

Ich verwende also NICHT nur die Koordinatentransformation zur Darstellung (für die reine 3D-Dartellung des Sparrens schon), sondern jeder Endpunkt ist in seiner XYZ-Koordinate im Programm verfügbar.


Dies ermöglicht es zum Beispiel, die Daten jedes Sparrens im Grundriss hinzuschreiben oder es würde auch ermöglichen, die Gesamtlänge - und Kubatur) des verbauten Holzes auszurechnen - was ich vielleicht noch einbaue, damit es direkt in die 3D-Darstellung reingeschrieben wird.

Die Höhenlage der 4 Ausgangspunkte könnte ich auch noch hinschreiben lassen - mal sehen.

Nun habe ich gerade 4 weitere fixierte Hotspots hinzugefügt:

Wenn man eine Schale drauflegen will, benötigt man die Dicke der Schale und 4 Punkte zur Ausrichtung. Dies ist nun auf einfachste Weise möglich. Diese Hotspots sitzen nun an den Aussenkanten der Anfangs- und End-Sparren um einen kleinen Abstand nach aussen verschoben, um die mögliche Sparrendrehung im Grundriss ausgleichen zu können:

Edu23Aut-Version:
https://www.dropbox.com/s/1qiyy1lbxid4m8y/Windschiefer%20Dachstuhl%203.pln?dl=0


Wo ich noch Probleme habe - mir gelingt es nicht, die Textur richtig auszurichten.
Eigentlich sollte es ganz einfach sein - und es funktioniert auch in der Schleife - aber nicht beim letzten Sparren in der Schleife !?! - Hä -?!!?

Hier die Schleife und danach der Anfangs-Sparren mit dem gosub 998, damit die Textur ausgerichtet werden soll. Was mache ich da falsch?



for i = 1 to Sparrenanzahl !!! Diagonalen der Sparren rechnen

SparrenLG = DiagonaleS3D[i]+UDUE[i]+ODUE[i]
addx xpu[i]
addy ypu[i]
addz SPuXYZ[i][3]+UZUE[i]
if SPUXYZ[i][1] < SPOXYZ[i][1] then rotz Win2DS[i]+90+180
if SPUXYZ[i][1] > SPOXYZ[i][1] then rotz Win2DS[i]+90
rotx hWinS[i]
if WieLiegtSparren = "auf Achse" then addx -SparrenX/2 !!! Sparren liegt auf Achse
if WieLiegtSparren = "Innerhalb der Konstruktionspunkte" then addx -Sparrenschieber*i !!! Sparren liegt innerhalb
gosub 998
block SparrenX, SparrenLG, SparrenY !!! Sparrenreihe

if i = Sparrenanzahl then !!! Hilfspunkte zur Konstruktion der Schale
rotx 0
addx SparrenX
lin_ 0, -Schalenvorsprung,0, 0,-Schalenvorsprung, Schalendicke + SparrenY
lin_ 0,SparrenLG + Schalenvorsprung,0, 0,SparrenLG + Schalenvorsprung, Schalendicke + SparrenY
hotspot 0, -Schalenvorsprung, Schalendicke + SparrenY
hotspot 0, SparrenLG + Schalenvorsprung, Schalendicke + SparrenY
del 2
else
endif
del top

next i


! 1. Sparren extra, weil er nicht in der Schleife ist:


SparrenLG = DiagonaleS3D1+UDUE1+ODUE1
addx xpu1
addy ypu1
addz ab[1][3]+UZUE1
if ab[1][1] < cd[1][1] then rotz Win2DS1 +90+180
if ab[1][1] > cd[1][1] then rotz Win2DS1 +90
rotx hWinS1
if WieLiegtSparren = "auf Achse" then addx -SparrenX/2 !!! Sparren liegt auf Achse
if WieLiegtSparren = "Innerhalb der Konstruktionspunkte" then addx 0 !!! Sparren liegt innerhalb
gosub 998
block SparrenX, SparrenLG, SparrenY !! Anfangs-Sparren

rotx 0 !!! Hilfspunkte zur Konstruktion der Schale
lin_ 0,-Schalenvorsprung,0, 0,-Schalenvorsprung, Schalendicke + SparrenY
lin_ 0,SparrenLG + Schalenvorsprung,0, 0,SparrenLG + Schalenvorsprung, Schalendicke + SparrenY
hotspot 0, -Schalenvorsprung, Schalendicke + SparrenY
hotspot 0, SparrenLG + Schalenvorsprung, Schalendicke + SparrenY
del 1
del top



return





!!!! GDL Coocbook 4
998:!Paint upright
ROTz 90
GOSUB 999:!Paint Texture
DEL 1
RETURN


999:!Paint Texture
!Horizontally
BASE
VERT 0,0,0
VERT 0.1,0,0
VERT 0,0.1,0
VERT 0,0,0.1
COOR 256+2, -1,-2,-3,-4
BODY -1
RETURN
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
2 ANTWORTEN 2
Hmooslechner
Moderator
Nun mal mit der Schale drauf:




https://www.youtube.com/watch?v=etEWQxUaLv0
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator
Einige Erweiterungen dieses Elementes:

https://www.youtube.com/watch?v=HoO8b-Cq1_U





AC24EduAut:
https://www.dropbox.com/s/5btwajjiz7vr75j/Windschiefer%20Dachstuhl%205.pln?dl=0

Diesmal habe ich die Höhen der 4 Eckpunkte ins 2D geschrieben. Dann habe ich die Einzelkomponenten "zuschaltbaren" gestaltet. Als weitere Neuerung führe ich einen "Wegschnittkörper" ein, mit dessen Hilfe man im Grundriss eine Kontur als 4-Eck definieren kann, aus dem im 3D dann ein Prisma als Abzugskörper definiert ist, der Überstände wegschneidet.
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia