P0188_Mosaik_Frontplatte/openscad/P0188-02-a_FrontElement_2x1_4mm_Buchsen.scad
2024-09-08 16:21:06 +02:00

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();