170 lines
5.8 KiB
OpenSCAD
170 lines
5.8 KiB
OpenSCAD
//---------------------------------------------------------------------
|
|
//
|
|
// 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();
|
|
|