/* [OpenSCAD] */ $fn=60; // [30:6:180] /* [Profil] */ // Aluprofil (quadratisch) Raster = 20; // [20,30] // Gewindebohrung metrisch Schraube = 5; // [5,6,8] /* [Verbinder] */ // Winkel der Verbindung Winkel = 90; // [30:5:180] // Radius, um die Schrauben zu erreichen Radius = 0; // [0:1:50] // Modell für den Slicer auf die Seite legen Kippen = true; /* [Hidden] */ // Montageplatte [Länge,Breite,Dicke] Montageplatte = [Raster*1.0,Raster,3]; Fuehrung = 1.5; //////////////////////////////////////////////////////////////////////////////////////// module grundplatte() { Toleranz=0.2; translate([ (Montageplatte.x/2+Radius),0,0]) difference() { // Platte mit Bolzen union() { cube( [Montageplatte.x,Montageplatte.y,Montageplatte.z], center=true ); if (Radius==0) { // Seitenplatten innen rund verbinden translate([-Montageplatte.x/2,0,0]) rotate([90,0,0]) cylinder( d=Montageplatte.z, h=Raster, center=true); } // zwei Führungsbolzen vorne und hinten translate([(Montageplatte.x/2-Montageplatte.z),0,-(Montageplatte.z+Fuehrung)/2]) cube( [Schraube/2, Schraube-Toleranz, Fuehrung], center=true ); translate([-(Montageplatte.x/2-Montageplatte.z),0,-(Montageplatte.z+Fuehrung)/2]) cube( [Schraube/2, Schraube-Toleranz, Fuehrung], center=true ); } // Langloch für Schraube hull() { translate([Montageplatte.z/2,0,0]) cylinder( d=Schraube+Toleranz, h=3*Montageplatte.z, center=true ); translate([-Montageplatte.z/2,0,0]) cylinder( d=Schraube+Toleranz, h=3*Montageplatte.z, center=true ); } } } module seite() { hull() { translate([Montageplatte.x/2+Radius,0,0]) cube([Montageplatte.x,Montageplatte.z,Montageplatte.z], center=true ); rotate([0,-Winkel,0]) translate([Montageplatte.x/2+Radius,0,0]) cube([Montageplatte.x,Montageplatte.z,Montageplatte.z], center=true ); } } // Auf die Seite legen, dann wird es beim Slicen einfacher turn90degree=(Kippen==true)?90:0; rotate([turn90degree,0,0]) union() { // Montageplatte color("red") grundplatte(); // innere Verbindung der beiden Grundplatten color("green") hull() { translate([ (Radius),0,0]) rotate([90,0,0]) cylinder( d=Montageplatte.z, h=Raster, center=true); rotate([0,-Winkel,0]) translate([ (Radius),0,0]) rotate([90,0,0]) cylinder( d=Montageplatte.z, h=Raster, center=true); } // die andere Montageplatte, gedreht und gespiegelt color("orange") rotate([0,-Winkel,0]) mirror([0,0,1]) grundplatte(); // beide Seitenteile color("lightblue") union() { translate([0,(Montageplatte.y-Montageplatte.z)/2,0]) seite(); translate([0,-(Montageplatte.y-Montageplatte.z)/2,0]) seite(); } }