149 lines
6.6 KiB
OpenSCAD
149 lines
6.6 KiB
OpenSCAD
//---------------------------------------------------------------------
|
|
//
|
|
// OpenSCAD-Script for mosaic grid 50x25mm with 2x4mm connectors
|
|
//
|
|
// derived from:
|
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
|
//---------------------------------------------------------------------
|
|
//
|
|
// 2024-06-03 xsider modified for 25mm grid M2 screws
|
|
//
|
|
//---------------------------------------------------------------------
|
|
|
|
//Moduldefinition mit Parametern für Frontplattensystem im 19mm-Raster
|
|
module FrontElem (
|
|
//Frontplattenelement
|
|
xwert=2, //Anzahl der Segmente in horizontaler Richtung
|
|
ywert=1, //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
|
|
//M2-Schrauben
|
|
M2=true, //Bohrungen für M3-Zylinderkopf-Inbusschraube
|
|
skd3=4.3, //Schraubenkopfdurchmesser M3-Schraube
|
|
skh3=2, //Schraubenkopfhöhe M3-Schraube
|
|
dsh3=2.2, //Schaftdurchmesser M3-Schraube
|
|
dvst3=6.3, //Verstärkung für M3-Schraube
|
|
//Schneidschrauben 2mmx6mm
|
|
B2mm=false, //Bohrungen für 2mm-Schneidschrauben
|
|
//Beschriftungsfeld eingesenkt
|
|
|
|
Btext=6.2, //Breite Beschriftungsband
|
|
Ltext=30.2, //Länge Beschriftungsband
|
|
Dtext=0.2, //Tiefe Beschriftungsfeld, oder Null
|
|
|
|
TRSdia=8.0, //Bohrung für Telefonbuchse 4mm BLK-Vollisiolierte KLemmen
|
|
//MC-Einbaubuchse
|
|
)
|
|
//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)
|
|
//Körper des Frontplattensegments
|
|
cube([xwert*segment, ywert*segment, hght]);
|
|
} //union 2 end
|
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
|
//Einsenkung in das Segment
|
|
polyhedron(
|
|
points= [[wu,wu,thick], //0 unten
|
|
[xwert*segment-wu,wu,thick], //1 unten
|
|
[xwert*segment-wu,ywert*segment-wu,thick], //2 unten
|
|
[wu,ywert*segment-wu,thick], //3 unten
|
|
[wo,wo,hght+0.01], //4 oben
|
|
[wo,ywert*segment-wo, hght+0.01], //5 oben
|
|
[xwert*segment-wo,ywert*segment-wo,hght+0.01], //6 oben
|
|
[xwert*segment-wo,wo,hght+0.01], //7 oben
|
|
],
|
|
faces= [[0,1,2,3], //Boden
|
|
[0,4,7,1], //Deckel
|
|
[1,7,6,2], //Front
|
|
[2,6,5,3], //Seitenwand rechts
|
|
[3,5,4,0], //Rückwand
|
|
[4,5,6,7]] //Seitenwand links
|
|
);
|
|
|
|
|
|
//Bohrung für 4mm-Telefonbuchse (Mindestgröße 1x1)
|
|
translate([xwert*segment/2-(19/2),ywert*segment/2+3,-0.1]) cylinder(d=TRSdia, h=10, $fn=32);
|
|
translate([xwert*segment/2+(19/2),ywert*segment/2+3,-0.1]) cylinder(d=TRSdia, h=10, $fn=32);
|
|
translate([xwert*segment/2-Ltext/2,ywert*segment/2-9,thick-Dtext+0.05]) cube([Ltext, Btext, Dtext]);
|
|
} //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]);
|
|
} //difference 1 end
|
|
|
|
} //module end
|
|
|
|
//Hier werden Instanzen des Moduls aufgerufen
|
|
translate([0,0,0]) FrontElem();
|
|
|