//--------------------------------------------------------------------- // // OpenSCAD-Script for mosaic 25x25mm neutral plate // // 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 module FrontElem ( //Frontplattenelement xwert=1, //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 M2-Zylinderkopf-Inbusschraube 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]); } //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 ); } //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();