//---------------------------------------------------------------------
//
// OpenSCAD-Script for mosaic 50x50mm window holder
//
// derived from:
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
//---------------------------------------------------------------------
//
// 2024-06-03 xsider    modified for grid 25mm and M2-screws
//
//---------------------------------------------------------------------

$fn=32;
//Moduldefinition mit Parametern
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
//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

//MC-Einbaubuchse
)
//Beginn Modul
{
difference(){   //difference 2
union(){        //union 2
    //alles, was vor der nächsten geschweiften Klammer steht, wird zusammengefügt (union 2)0
//Rahmenaufdoppelung für Acrylscheibe 2x1mm
translate([25-21,25-21,0])cube([42,42,2]);
translate([12.5,3+1.5,0])cylinder(h=2,r=2.5,center=false);
translate([25+12.5,3+1.5,0])cylinder(h=2,r=2.5,center=false);
translate([12.5,50-4.5,0])cylinder(h=2,r=2.5,center=false);
translate([25+12.5,50-4.5,0])cylinder(h=2,r=2.5,center=false);
}               //union 2 end
    //alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
// Ausschnitt Fenster Acrylglasplatte
translate([25-17,25-16,-5])cube([34,32,10]);


// Kernlochbohrungen
translate([12.5,3+1.5,-5])cylinder(h=10,r=1.1,center=false);
translate([25+12.5,3+1.5,-5])cylinder(h=10,r=1.1,center=false);
translate([12.5,50-4.5,-5])cylinder(h=10,r=1.1,center=false);
translate([25+12.5,50-4.5,-5])cylinder(h=10,r=1.1,center=false);

// Anfasung Frontfenster
FrontPoints = [
  [  0,  0,  0 ],  //5
  [ 38,  0,  0 ],  //6
  [ 38,  36,  0 ],  //7
  [  0,  36,  0 ],  //8
  [  2,  2,  2 ],  //1
  [ 36,  2,  2 ],  //2
  [ 36,  34,  2 ],  //3
  [  2,  34,  2 ], // 4
  ]; 
  
FrontFaces = [
  [0,1,2,3],  // bottom
  [4,5,1,0],  // front
  [7,6,5,4],  // top
  [5,6,2,1],  // right
  [6,7,3,2],  // back
  [7,4,0,3]]; // left
  
translate([(50-38)/2,36+7,3])rotate([180,0,0])polyhedron( FrontPoints, FrontFaces );


      
}  //difference 2 end

}  //module end

//Hier werden Instanzen des Moduls aufgerufen
translate([0,0,0]) FrontElem();

