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:
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
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.