// Winkel in Grad, Strecken in mm // Animation: // $vpr = [85, 0, $t * 360]; winkel = 20; laenge = 1762; hoehe = 1134; dicke = 30; luecke = 20; stangendicke = 40; tiefeUntergrund = 5800; breiteUntergrund = 6490; module sol() { color("#7AD40060") cube([laenge, hoehe, dicke]); } module gruppe() { for(i = [0 : 1 : 2]){ for(j = [0 : 1 : 4]){ translate([i * (laenge + luecke), j * (hoehe + luecke), 0]) sol(); } } } gesamtlaenge = 3 * (laenge + luecke) - luecke; gesamtbreite = 5 * (hoehe + luecke) + stangendicke; module gestell1() { for(j = [0 : 1 : 5]) { translate([0, j * (hoehe + luecke) - (stangendicke + luecke) / 2, 0]) color("#1223C0") cube([gesamtlaenge, stangendicke, stangendicke]); } anzahl = 6; schritt = (gesamtlaenge - stangendicke) / (anzahl - 1); translate([0, 0, -stangendicke]) for(i = [0 : 1 : (anzahl - 2)]) { translate([i * schritt, -stangendicke + luecke / 2, 0]) color("#1223C0") cube([stangendicke, gesamtbreite, stangendicke]); } } module gestellMitPaneelen() { translate([0, stangendicke - luecke / 2, 0]) union() { gestell1(); translate([0, 0, stangendicke]) gruppe(); } } // Bodengestell schritt = (gesamtbreite - stangendicke) / 2; translate([tiefeUntergrund - 200, (breiteUntergrund - gesamtbreite) / 2, 0]) { color("#D00000") cube([stangendicke, gesamtbreite, stangendicke]); translate([-gesamtlaenge * cos(winkel), 0, 0]) { color("#D00000") cube([stangendicke, gesamtbreite, stangendicke]); for(i = [0 : 1 : 2]) translate([0, i * schritt, stangendicke]) cube([stangendicke, stangendicke, gesamtlaenge * sin(winkel) - stangendicke]); } translate([-(gesamtlaenge / 5 * 3 + stangendicke) * cos(winkel), 0, 0]) for(i = [0 : 1 : 2]) translate([0, i * schritt, stangendicke]) cube([stangendicke, stangendicke, (gesamtlaenge / 5 * 3 + stangendicke) * sin(winkel) - stangendicke]); } // Bodenstangen for(i = [0 : 1 : 2]) translate([tiefeUntergrund - 200 -gesamtlaenge * cos(winkel) + stangendicke, (breiteUntergrund - gesamtbreite) / 2 + i * schritt, 0]) color("#A02225") cube([gesamtlaenge * cos(winkel) - stangendicke, stangendicke, stangendicke]); // Diagonalverbinder 1 for(i = [0 : 1 : 2]) translate([600, i * schritt + (breiteUntergrund - gesamtbreite) / 2 - 5, 2 * stangendicke]) rotate([0, -25, 0]) color("#AAAAAA") cube([2250, 5, 50]); // Diagonalverbinder 2 color("#AAAAAA") for(i = [0 : 1 : 1]) translate([590.3, i * schritt + (breiteUntergrund - gesamtbreite) / 2 - 5, 4 * stangendicke]) { rotate([28, 0, 0]) cube([5, 3350, 50]); translate([0, -15, 1570]) rotate([-28, 0, 0]) cube([5, 3350, 50]); } // Diagonalverbinder 3 color("#AAAAAA") for(i = [0 : 1 : 1]) translate([2555, i * schritt + (breiteUntergrund - gesamtbreite) / 2 - 5, 2 * stangendicke]) { rotate([16, 0, 0]) cube([5, 3090, 50]); translate([0, -15, 850]) rotate([-16, 0, 0]) cube([5, 3090, 50]); } // Kamin translate([260 + 70, 4000, 0]) cylinder(500, r = 70); // Lüftung translate([110 + 530 + 85, 1460, 0]) cylinder(150, r = 85); // Die Paneele mit Untergestell translate([tiefeUntergrund - 200, (breiteUntergrund - gesamtbreite) / 2, stangendicke]) rotate([0, winkel, 0]) translate([-gesamtlaenge, 0, 0]) gestellMitPaneelen(); // Bodenplatte translate([0, 0, -50]) color("#12121244") difference() { cube([tiefeUntergrund, breiteUntergrund, 50]); translate([-1, -1, -1]) cube([111, 1381, 52]); // Ausschnitt/Versatz } // Hauswand translate([-50, 1380, 0]) color("#12121244") cube([50, breiteUntergrund, 4000]); // Sonnenstrahlen 19° //for(i = [0 : 100 : 5999]) //translate([i, 600, 0]) //color("#FF0000") //rotate([0, 90 - 19, 0]) //cube([10, 10, 3000]);