So, ich habe die Schaltbauvariante jetzt in ihren Proportionen korrigiert und dabei die ältere Bauart, ohne Einbuchtung an den Seiten, beibehalten.
Gleichzeitig habe ich die Gessmannvariante nachempfunden. Diese zeichnet sich vor allem durch die flache Oberseite aus.
Erstellt habe ich die Modelle in OpenSCAD. Ein simples, Skript-basiertes, CAD-Programm, welches ausschließlich über C-Syntax gefüttert wird. Damit kennen wir uns ja dank Arduino mittlerweile bestens aus.
Hier der Code zu den beidem Modellen:
Schaltbau:
Code: Alles auswählen
$fn=100;
m=1;
color("DimGray"){
union(){
difference() {
rotate([90,0,0])cylinder(r=m*19,h=m*14, center = true);
translate([0,-5,(-10-m*5)])cube(size = [40,10,20], center = true);
rotate([90,0,0])cylinder(r=2,h=m*15, center = true);
}
translate([0, 0, m*30])cube(size = [m*9,m*14,m*29], center = true);
difference() {
union(){
translate([0, 0, m*48.5])resize(newsize=[m*18,m*14,m*6])rotate([90,0,0])
cylinder(r=m*16,h=m*14, center = true);
translate([0, 0, m*41.5])
cube(size = [m*17,m*14,m*14], center = true);
}//union
for (z = [-1, 1]){
resize(newsize=[m*32,m*15,m*39.4])translate([m*z*20.5, 0, m*28])rotate([90,0,0])
cylinder(r=m*16,h=m*15, center = true);
}
}//difference
//translate([0, 0, m*48.5])sphere(r=m*12.5);//Wachsam-Kugel
}//union
}//Color
Gessmann:
Code: Alles auswählen
$fn=100;
m=1;
color("dimgray"){
difference(){
difference(){
union(){
rotate([90,0,0])cylinder(r=m*20,h=m*14, center = true); //Hauptscheibe
translate([0, 0, m*25])cube(size = [m*8,m*14,m*50], center = true);
rotate([90,0,0])
hull(){
translate([m*7.5,m*48,0])cylinder(r=m*2,h=m*14, center = true);
translate([m*-7.5,m*48,0])cylinder(r=m*2,h=m*14, center = true);
translate([m*0,m*40.5,0])cylinder(r=m*2,h=m*14, center = true);
}
for (z = [-1, 1]){
translate([ m*z*2.56,0,m*42.6])
rotate([0, m*z*25.5,0])cube(size = [m*4,m*14,m*4], center = true);
}//for
}//union
for (z = [-1, 1]){
rotate([90,0,0])
translate([m*z*6,m*40.84,0])cylinder(r=m*2,h=m*15, center = true);
}//for
}//difference
//------------------------------------------------------------------
for (z = [-1, 1]){ //For für Eindellung auf beiden Seiten
difference(){
translate([0, m*z*7, 0]) //Verchiebung in beide Richtungen
union(){
hull(){
rotate([90,0,0])translate([0,m*45,0])cylinder(r=m*2,h=m*3, center = true);
rotate([90,0,0])translate([0,m*22,0])cylinder(r=m*2,h=m*3, center = true);
}
rotate([90,0,0]) // 3 Rollen oben, verbunden
hull(){
translate([m*5.5,m*47,0])cylinder(r=m*1,h=m*3, center = true);
translate([m*-5.5,m*47,0])cylinder(r=m*1,h=m*3, center = true);
translate([ 0,m*42,0])cylinder(r=m*1,h=m*3, center = true);
}
for (z = [-1, 1]){ //Rundungsergänzung innen
translate([m*z*1.4,0,m*42.8])
cube(size = [m*2,m*3,m*2], center = true);
}//for
}//union
for (z = [-1, 1]){ //Rundungssubtraktion innen
rotate([90,0,0])
translate([m*z*3.5,m*41.8,0])cylinder(r=m*1.5,h=m*20, center = true);
}//for
}//difference
}//for
translate([0,-5,(-10-m*5)])cube(size = [40,10,20], center = true);
rotate([90,0,0])cylinder(r=m*2,h=m*15, center = true);
}//difference
}//Color
Der Parameter ‚m‘ gibt den Maßstab vor.
Mit etwas Glück kann ich eins am Samstag nachdrucken lassen.
Gruß
Jens