//--------------------------------------------------------------------- // // OpenSCAD-Script for mosaic 50x50mm window M3 screws // // derived from: // https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/ //--------------------------------------------------------------------- // // 2024-07-27 xsider modified for grid 50mm and M3-screws // 2024-06-03 xsider modified for grid 25mm and M2-screws // //--------------------------------------------------------------------- $fn=128; //Moduldefinition mit Parametern für Frontplattensystem im 19mm-Raster module FrontElem ( //Frontplattenelement xwert=1, //Anzahl der Segmente in horizontaler Richtung ywert=1, //Anzahl der Segmente in vertikaler Richtung segment=50, //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 //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)0 //Körper des Frontplattensegments cube([xwert*segment, ywert*segment, hght]); //Rahmenaufdoppelung für Acrylscheibe 2x1mm //translate([25-21,25-21,-1.8])cube([42,42,2]); } //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]) { if (M2==true) translate([x,0,0]) cylinder(d=dvst3,h=hght,$fn=16); if (B2mm==true) translate([x,0,0]) cylinder(d=dvst2,h=hght,$fn=16); } //Verstärkungen für Schrauben x-Achse oben for (x=[0:segment:xwert*segment]) { if (M2==true) translate([x,ywert*segment,0]) cylinder(d=dvst3,h=hght,$fn=16); if (B2mm==true) translate([x,ywert*segment,0]) cylinder(d=dvst2,h=hght,$fn=16); } //Verstärkungen für Schrauben y-Achse links for (y=[0:segment:ywert*segment]) { if (M2==true) translate([0,y,0]) cylinder(d=dvst3,h=hght,$fn=16); if (B2mm==true) translate([0,y,0]) cylinder(d=dvst2,h=hght,$fn=16); } //Verstärkungen für Schrauben y-Achse rechts for (y=[0:segment:ywert*segment]) { if (M2==true) translate([xwert*segment,y,0]) cylinder(d=dvst3,h=hght,$fn=16); if (B2mm==true) translate([xwert*segment,y,0]) cylinder(d=dvst2,h=hght,$fn=16); } /* //Abflachungen für 4mm-MC-Buchse (Mindestgröße 2x2) translate([xwert*segment/2-5,ywert*segment/2+MCdist/2,0]) cube([10,3,thick]); translate([xwert*segment/2-5,ywert*segment/2-MCdist/2-3,0]) cube([10,3,thick]); */ } //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]) { if (M2==true) translate([x,0,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); if (M2==true) translate([x,0,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); if (B2mm==true) translate([x,0,-0.1]) cylinder(d=dsh2,h=2*hght,$fn=16); if (B2mm==true) translate([x,0,hght-skh2]) cylinder(d=skd2,h=2*hght,$fn=16); } //Bohrungen für Schrauben x-Achse oben for (x=[0:segment:xwert*segment]) { if (M2==true) translate([x,ywert*segment,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); if (M2==true) translate([x,ywert*segment,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); if (B2mm==true) translate([x,ywert*segment,-0.1]) cylinder(d=dsh2,h=2*hght,$fn=16); if (B2mm==true) translate([x,ywert*segment,hght-skh2]) cylinder(d=skd2,h=2*hght,$fn=16); } //Bohrungen für Schrauben y-Achse links for (y=[0:segment:ywert*segment]) { if (M2==true) translate([0,y,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); if (M2==true) translate([0,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); if (B2mm==true) translate([0,y,-0.1]) cylinder(d=dsh2,h=2*hght,$fn=16); if (B2mm==true) translate([0,y,hght-skh2]) cylinder(d=skd2,h=2*hght,$fn=16); } //Bohrungen für Schrauben y-Achse rechts for (y=[0:segment:ywert*segment]) { if (M2==true) translate([xwert*segment,y,-0.1]) cylinder(d=dsh3,h=2*hght,$fn=16); if (M2==true) translate([xwert*segment,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=16); if (B2mm==true) translate([xwert*segment,y,-0.1]) cylinder(d=dsh2,h=2*hght,$fn=16); if (B2mm==true) translate([xwert*segment,y,hght-skh2]) cylinder(d=skd2,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]); // Ausschnitt Vertiefung Acrylglasplatte //translate([25-19,25-18,-2])cube([38,36,2]); // Ausschnitt Sichtfenster translate([2.5,2.5,-5])cube([45,45,10]); // Ausschnitt Acrylplatte von hinten difference(){ translate([1,1,-1])cube([48,48,2]); //Verstärkungen für Schrauben y-Achse links for (y=[0:segment:ywert*segment]) translate([0,y,-2]) cylinder(d=6,h=4,$fn=16); //Verstärkungen für Schrauben y-Achse rechts for (y=[0:segment:ywert*segment]) translate([xwert*segment,y,-2]) cylinder(d=6,h=4,$fn=16); } } //difference 1 end } //module end //Hier werden Instanzen des Moduls aufgerufen //translate([0,0,0]) FrontElem(); // Acrylplatte: module Acrylplatte() { segment=50; xwert=1; ywert=1; difference(){ translate([0.05,0.05,-1])cube([49.9,49.9,3]); //Verstärkungen für Schrauben y-Achse links for (y=[0:segment:ywert*segment]) translate([0,y,-2]) cylinder(d=3.1,h=4,$fn=128); //Verstärkungen für Schrauben y-Achse rechts for (y=[0:segment:ywert*segment]) translate([xwert*segment,y,-2]) cylinder(d=3.1,h=4,$fn=128); } } projection() Acrylplatte();