| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /* [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();
- }
- }
|