//--------------------------------------------------------------------- // // OpenSCAD-Script for mosaic 50x50mm Schuko Socket // // derived from: // https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/ //--------------------------------------------------------------------- // // 2024-06-03 xsider modified for grid 25mm and M2-screws // //--------------------------------------------------------------------- //Moduldefinition mit Parametern für Frontplattensystem im 19mm-Raster module FrontElem ( //Frontplattenelement xwert=2, //Anzahl der Segmente in horizontaler Richtung ywert=2, //Anzahl der Segmente in vertikaler Richtung segment=25, //Kantenlänge des Segments hght=3.0, //Höhe des Rands des Frontplattensegments thick=2, //verbleibende Dicke des Frontplattensegments wo=1.0, //Wandstärke oben wu=2.0, //Wandstärke unten splt = 0.05, // Luftspalt skd3=4.3, //Schraubenkopfdurchmesser M2-Schraube skh3=2, //Schraubenkopfhöhe M2-Schraube dsh3=2.2, //Schaftdurchmesser M2-Schraube dvst3=6.3, //Verstärkung für M2-Schraube ) //Beginn Modul { difference() { //difference 1 union() { //union 1 difference() { //difference 2 union() { //union 2 //alles, was vor der nächsten geschweiften Klammer steht, wird zusammengefügt (union 2)0 //Körper des Frontplattensegments cube([xwert*segment, ywert*segment, hght]); // umlaufend 0.2mm Luft translate([1.3,1.3,-13+3])cube([47.4,47.4,13-1]); } //union 2 end //alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2) } //difference 2 end //alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1) //Verstärkungen für Schrauben x-Achse unten for (x=[0:segment:xwert*segment]) { translate([x,0,0]) cylinder(d=dvst3,h=hght,$fn=16); } //Verstärkungen für Schrauben x-Achse oben for (x=[0:segment:xwert*segment]) { translate([x,ywert*segment,0]) cylinder(d=dvst3,h=hght,$fn=16); } //Verstärkungen für Schrauben y-Achse links for (y=[0:segment:ywert*segment]) { translate([0,y,0]) cylinder(d=dvst3,h=hght,$fn=16); } //Verstärkungen für Schrauben y-Achse rechts for (y=[0:segment:ywert*segment]) { translate([xwert*segment,y,0]) cylinder(d=dvst3,h=hght,$fn=16); } } //union 1 end //alles, was vor der nächsten geschweiften Klammer steht, wird davon wieder abgezogen (difference 1) //Bohrungen für Schrauben x-Achse unten for (x=[0:segment:xwert*segment]) { translate([x,0,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); translate([x,0,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); } //Bohrungen für Schrauben x-Achse oben for (x=[0:segment:xwert*segment]) { translate([x,ywert*segment,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); translate([x,ywert*segment,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); } //Bohrungen für Schrauben y-Achse links for (y=[0:segment:ywert*segment]) { translate([0,y,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); translate([0,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); } //Bohrungen für Schrauben y-Achse rechts for (y=[0:segment:ywert*segment]) { translate([xwert*segment,y,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); translate([xwert*segment,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); } //Abschneiden Verstärkungen unten translate([-250,-10,-0.1]) cube([500,10,25]); //Abschneiden Verstärkungen oben translate([-250,ywert*segment,-0.1]) cube([500,10,25]); //Abschneiden Verstärkungen links translate([-10,-250,-0.1]) cube([10,500,25]); //Abschneiden Verstärkungen rechts translate([xwert*segment,-250,-0.1]) cube([10,500,25]); // cutout for 45mm plug insert translate([2.45,2.45,-8.6+3])cube([45.1,45.1,8.6+1]); // translate([4.65,4.65,-15])cube([40.7,40.7,20]); ddome=5.4; h=30; fn=256; // Cutout for screw domes in Grind for (x=[0:segment:xwert*segment]) { translate([x,0,-h]) cylinder(d=ddome,h=h,$fn=fn); } //Bohrungen für Schrauben x-Achse oben for (x=[0:segment:xwert*segment]) { translate([x,ywert*segment,-h]) cylinder(d=ddome,h=h,$fn=fn); } //Bohrungen für Schrauben y-Achse links for (y=[0:segment:ywert*segment]) { translate([0,y,-h]) cylinder(d=ddome,h=h,$fn=fn); } //Bohrungen für Schrauben y-Achse rechts for (y=[0:segment:ywert*segment]) { translate([xwert*segment,y,-h]) cylinder(d=ddome,h=h,$fn=fn); } //Bohrungen für Schrauben x-Achse unten for (x=[0:segment:xwert*segment]) { translate([x,0,-h]) cylinder(d=ddome,h=h,$fn=fn); } } //difference 1 end } //module end //Hier werden Instanzen des Moduls aufgerufen translate([0,0,0]) FrontElem();