Projekt P0188 angelegt
51
README.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Mosaik Frontplatten
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Frontplattensystem im Rastermaß 25/50mm für M2 und M3 Schrauben
|
||||||
|
|
||||||
|
Kombinierbar mit P0170
|
||||||
|
|
||||||
|
|Teilenummer|Bezeichnung |
|
||||||
|
|-----------|-----------------------------------------:|
|
||||||
|
|<del>P0188-01-a</del>|<del>Raster für 200x100 M2, Gewinde geschnitten</del> |
|
||||||
|
|P0188-01-b|Raster für 200x100 M2, Gewinde geschnitten, Schrauben an den Rahmenkanten Abstand vergrößert |
|
||||||
|
|P0188-02-a|Frontelement 2x1 4mm Buchsen\\ \\ Beschriftungsfenster 6x30mm |
|
||||||
|
|P0188-03-a|Frontelement 1x1 blank |
|
||||||
|
|P0188-04-a|Frontelement 2x1 blank |
|
||||||
|
|P0188-05-a|Frontelement 2x2 blank |
|
||||||
|
|P0188-06-a|Raster für 300x200 M2, Gewinde geschnitten, Eckbohrugen noch zu dicht beieinander |
|
||||||
|
|P0188-07-a|Frontelement 2x2 Anzeigefenster |
|
||||||
|
|P0188-08-a|Diarahmen 2x2 für -07 |
|
||||||
|
|P0188-09-a|Frontelement 2x3 Anzeigefenster groß |
|
||||||
|
|P0188-10-a|Acryleinsatz Anzeigefenster groß |
|
||||||
|
|<del>P0188-11-a</del>| |
|
||||||
|
|P0188-11-b|Raster für Anzeige 300x200 M2, Gewinde geschnitten, Schrauben an den Rahmenkanten Abstand vergrößert |
|
||||||
|
|P0188-12-a|Acryleinsatz Anzeigefenster 2x2 M3 |
|
||||||
|
|P0188-13-a|Raster für Anzeige 300x200 M3, Gewinde geschnitten |
|
||||||
|
|P0188-14-a| |
|
||||||
|
|P0188-15-a|Rückwand für Anzeige 300x200 M2, Gewinde geschnitten |
|
||||||
|
|P0188-16-a|Rückwand für Anzeige 300x200 M3, Gewinde geschnitten |
|
||||||
|
|P0188-17-a|Frontelement 1x1 Anzeige |
|
||||||
|
|P0188-18-a|Anzeigefenster 1x1 |
|
||||||
|
|P0188-19-a|Reflektor 1x1 Anzeige |
|
||||||
|
|<del>P0188-20-a</del>|<del>Wandhalter 200mm für Panel 300x200, Schlitze für M5</del> |
|
||||||
|
|P0188-20-b|Wandhalter 200mm für Panel 300x200, Schlitze für M6, größerer Abstand zur Wand. |
|
||||||
|
|P0188-21-a|Haltescheiben Durchmesser 10mm für -20 |
|
||||||
|
|P0188-22-a|Kabelhalter M2 50mm lang |
|
||||||
|
|P0188-23-a|Kabelhalter M3 50mm lang |
|
||||||
|
|P0188-24-a|Frontelement 2x1 2mm Buchsen\\ \\ Beschriftungsfenster 6x30mm |
|
||||||
|
|P0188-25-a|Frontelement 2x2 Steckdoseneinsatz System 45 M2\\ \\ Frontausschnitt ist noch etwas zu eng |
|
||||||
|
|<del>P0188-26-a</del>|<del>Frontelement 2x2 Steckdoseneinsatz System 45 M3<del> |
|
||||||
|
|P0188-26-b|Frontelement 2x2 Steckdoseneinsatz System 45 M3 Frontausschnitt erweitert |
|
||||||
|
|P0188-27-a|Frontplatte Blind 2x2 M3 Flachrundkopfschrauben |
|
||||||
|
|P0188-28-a|Raster für Steckdoseneinsatz 3,5 Felder (rechts offen) |
|
||||||
|
|P0188-29-a|Raster für Steckdoseneinsatz 4 Felder +2x0,5 (Mittenteile)\\ \\ Durch diese Aufteilung ist eine Überlappung um mind.2 Schrauben an den Stoßstellen sichergestellt|
|
||||||
|
|P0188-30-a|Firmware für Arduino Mega World Domination Panel |
|
||||||
|
|P0188-31-a|Software Statuswebserver World Domination Panel |
|
||||||
|
|
||||||
|
## Quellen
|
||||||
|
|
||||||
|
- Mosaikfrontplatten\\[https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten](https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten)
|
||||||
|
|
||||||
|
- Schriftart Osifont für Teilebeschriftung (Erhaben oder Versenkt)\\[https://github.com/hikikomori82/osifont](https://github.com/hikikomori82/osifont)
|
BIN
bedruckung/Beschriftung_23x23mm.ods
Normal file
BIN
bedruckung/Beschriftung_38x36mm_Diarahmen.ods
Normal file
BIN
bedruckung/Beschriftung_50x50mm.ods
Normal file
BIN
bilder/P0188-24-a_Frontelement_2x1_2mm-.jpg
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
datenblätter/WS2812.pdf
Normal file
BIN
doku/P0188_Mosaikfrontplatte.odt
Normal file
BIN
doku/P0188_Mosaikfrontplatte.pdf
Normal file
BIN
freecad/P0188-20-b_Wandhalter.FCStd
Normal file
BIN
freecad/P0188-20_Wandhalter.FCStd
Normal file
BIN
freecad/P0188-22_23_Kabelhalter.FCStd
Normal file
BIN
freecad/P0188.02_Zusammenbau.FCStd
Normal file
BIN
freecad/osifont.ttf
Normal file
273
openscad/P0188-01-b_Raster_für_200x100_gewinde_geschnitten.scad
Normal file
@ -0,0 +1,273 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic grid 25 mm 300x100 baseplate
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm and M2-screws
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=169.8, //Breite der Frontplatte, innenmaß für P0170 200x100mm
|
||||||
|
h=69.8, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
// Bohrungen für M3 Kernloch 2.5 +0.1 Toleranz
|
||||||
|
x01=80,y01=25,d01=1.8,
|
||||||
|
x02=80,y02=0,d02=1.8,
|
||||||
|
x03=80,y03=-25,d03=1.8,
|
||||||
|
x04=75,y04=30,d04=1.8,
|
||||||
|
x05=75,y05=-30,d05=1.8,
|
||||||
|
x06=50,y06=30,d06=1.8,
|
||||||
|
x07=50,y07=-30,d07=1.8,
|
||||||
|
x08=25,y08=30,d08=1.8,
|
||||||
|
x09=25,y09=-30,d09=1.8,
|
||||||
|
x10=00,y10=30,d10=1.8,
|
||||||
|
x11=00,y11=-30,d11=1.8,
|
||||||
|
x12=-25,y12=30,d12=1.8,
|
||||||
|
x13=-25,y13=-30,d13=1.8,
|
||||||
|
x14=-50,y14=30,d14=1.8,
|
||||||
|
x15=-50,y15=-30,d15=1.8,
|
||||||
|
x16=-75,y16=30,d16=1.8,
|
||||||
|
x17=-75,y17=-30,d17=1.8,
|
||||||
|
x18=-80,y18=25,d18=1.8,
|
||||||
|
x19=-80,y19=0,d19=1.8,
|
||||||
|
x20=-80,y20=-25,d20=1.8,
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=6,y=2,segment=25,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=7,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=1.8, // Kernloch 1.6 + 0.1 für Drucktoleranz
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
wall=2, //Wandstärke Verbindungsstreben
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
vv25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv02 = [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv01 = [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Strebendefinition horizontale Streben
|
||||||
|
vh25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh01 = [0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//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)
|
||||||
|
//Body
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cube([b-chmfr,h-chmfr,dick]);
|
||||||
|
//Umrandung
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, -h/2, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
translate([+b/2-chmfr, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
} //union 2 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
//Anfasung
|
||||||
|
if (chmtyp==0)
|
||||||
|
{
|
||||||
|
translate([-b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([-b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
}
|
||||||
|
//Bohrungen
|
||||||
|
translate([x01,y01,-0.1]) cylinder(d=d01, h=2*dick, $fn=fnn);
|
||||||
|
translate([x02,y02,-0.1]) cylinder(d=d02, h=2*dick, $fn=fnn);
|
||||||
|
translate([x03,y03,-0.1]) cylinder(d=d03, h=2*dick, $fn=fnn);
|
||||||
|
translate([x04,y04,-0.1]) cylinder(d=d04, h=2*dick, $fn=fnn);
|
||||||
|
translate([x05,y05,-0.1]) cylinder(d=d05, h=2*dick, $fn=fnn);
|
||||||
|
translate([x06,y06,-0.1]) cylinder(d=d06, h=2*dick, $fn=fnn);
|
||||||
|
translate([x07,y07,-0.1]) cylinder(d=d07, h=2*dick, $fn=fnn);
|
||||||
|
translate([x08,y08,-0.1]) cylinder(d=d08, h=2*dick, $fn=fnn);
|
||||||
|
translate([x09,y09,-0.1]) cylinder(d=d09, h=2*dick, $fn=fnn);
|
||||||
|
translate([x10,y10,-0.1]) cylinder(d=d10, h=2*dick, $fn=fnn);
|
||||||
|
translate([x11,y11,-0.1]) cylinder(d=d11, h=2*dick, $fn=fnn);
|
||||||
|
translate([x12,y12,-0.1]) cylinder(d=d12, h=2*dick, $fn=fnn);
|
||||||
|
translate([x13,y13,-0.1]) cylinder(d=d13, h=2*dick, $fn=fnn);
|
||||||
|
translate([x14,y14,-0.1]) cylinder(d=d14, h=2*dick, $fn=fnn);
|
||||||
|
translate([x15,y15,-0.1]) cylinder(d=d15, h=2*dick, $fn=fnn);
|
||||||
|
translate([x16,y16,-0.1]) cylinder(d=d16, h=2*dick, $fn=fnn);
|
||||||
|
translate([x17,y17,-0.1]) cylinder(d=d17, h=2*dick, $fn=fnn);
|
||||||
|
translate([x18,y18,-0.1]) cylinder(d=d18, h=2*dick, $fn=fnn);
|
||||||
|
translate([x19,y19,-0.1]) cylinder(d=d19, h=2*dick, $fn=fnn);
|
||||||
|
translate([x20,y20,-0.1]) cylinder(d=d20, h=2*dick, $fn=fnn);
|
||||||
|
|
||||||
|
//Rasterausschnitt
|
||||||
|
translate([-(x*segment)/2+x_off, -(y*segment)/2+y_off, -0.1]) cube([x*segment,y*segment,2*dick]);
|
||||||
|
} //difference 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1)
|
||||||
|
//Markierung Ursprung
|
||||||
|
translate([-(x*segment)/2+x_off,-(y*segment)/2+y_off,0]) rotate([0,0,45]) cylinder(d=1.3*diamat,h=dick, $fn=fnn);
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cylinder(d=diamat, h=dick+intr, $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Stützgitter horizontal
|
||||||
|
for (i = [0:x-1])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment-wall/2+y_off,-intr]) cube([segment,wall,dick+intr]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Stützgitter vertikal
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y-1])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment-wall/2+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cube([wall,segment,dick+intr]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} //union 1 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon wieder abgezogen (difference 1)
|
||||||
|
//Schraubenlöcher
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick+intr, $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Streben-Ausschnitte
|
||||||
|
//vertikale Streben
|
||||||
|
vv=[vv01,vv02,vv03,vv04,vv05,vv06,vv07,vv08,vv09,vv10,vv11,vv12,vv13,vv14,vv15,vv16,vv17,vv18,vv19,vv20,vv21,vv22,vv23,vv24,vv25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (vv[k][i-1]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment-wall+x_off,-(y*segment)/2+diamat/2+k*segment+y_off,-dick-intr]) cube([2*wall,segment-diamat,2*(dick+intr)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//horizontale Streben
|
||||||
|
vh=[vh01,vh02,vh03,vh04,vh05,vh06,vh07,vh08,vh09,vh10,vh11,vh12,vh13,vh14,vh15,vh16,vh17,vh18,vh19,vh20,vh21,vh22,vh23,vh24,vh25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (vh[k-1][i]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+diamat/2+x_off,-(y*segment)/2+k*segment-wall+y_off,-dick-intr]) cube([segment-diamat,2*wall,2*(dick+intr)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Schraubenblöcke
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (sm[k-1][i-1]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=1.1*diamat, h=2*(dick+intr), $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} //difference 1 end
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
translate([0,0,-2]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
148
openscad/P0188-02-a_FrontElement_2x1_4mm_Buchsen.scad
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 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();
|
||||||
|
|
137
openscad/P0188-03-a_FrontElement_1x1_blind.scad
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 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();
|
||||||
|
|
133
openscad/P0188-04-a_FrontElement_2x1_blind.scad
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x25mm neutral plate
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm and M2-screws
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
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
|
||||||
|
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();
|
||||||
|
|
160
openscad/P0188-05-a_FrontElement_2x2_blind.scad
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm 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=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 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)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])
|
||||||
|
{
|
||||||
|
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]);
|
||||||
|
} //difference 1 end
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
translate([0,0,0]) FrontElem();
|
||||||
|
|
210
openscad/P0188-06-b_Raster_für_300x200_gewinde_geschnitten.scad
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 25x25mm grid 300x200 M2
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 2024-06-09 xsider modified 7mm distance
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm and M2-screws
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=300-30.2, //Breite der Frontplatte, innenmaß für P0170 200x100mm
|
||||||
|
h=200-30.2, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=10,y=6,segment=25,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=7,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=1.8, // Kernloch 1.6 + 0.1 für Drucktoleranz
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
wall=2, //Wandstärke Verbindungsstreben
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
vv25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv06 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv05 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv04 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv03 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv02 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv01 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Strebendefinition horizontale Streben
|
||||||
|
vh25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh05 = [0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh03 = [0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh01 = [0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//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)
|
||||||
|
//Body
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cube([b-chmfr,h-chmfr,dick]);
|
||||||
|
//Umrandung
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, -h/2, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
translate([+b/2-chmfr, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
|
||||||
|
} //union 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
//Anfasung
|
||||||
|
if (chmtyp==0)
|
||||||
|
{
|
||||||
|
translate([-b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([-b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
}
|
||||||
|
//Bohrungen
|
||||||
|
for ( i= [-x/2:x/2] ) {
|
||||||
|
// x=10,y=6,segment=25,
|
||||||
|
translate([i*segment,y/2*segment+7,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
translate([i*segment,-y/2*segment-7,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
for ( i= [-y/2:y/2] ) {
|
||||||
|
translate([x/2*segment+7,i*segment,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
translate([-x/2*segment-7,i*segment,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Rasterausschnitt
|
||||||
|
translate([-(x*segment)/2+x_off, -(y*segment)/2+y_off, -0.1]) cube([x*segment,y*segment,2*dick]);
|
||||||
|
} //difference 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1)
|
||||||
|
//Markierung Ursprung
|
||||||
|
translate([-(x*segment)/2+x_off,-(y*segment)/2+y_off,0]) rotate([0,0,45]) cylinder(d=1.3*diamat,h=dick, $fn=fnn);
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cylinder(d=diamat, h=dick+intr, $fn=fnn);}}
|
||||||
|
//Stützgitter horizontal
|
||||||
|
for (i = [0:x-1]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment-wall/2+y_off,-intr]) cube([segment,wall,dick+intr]);}}
|
||||||
|
//Stützgitter vertikal
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y-1]) {
|
||||||
|
translate([-(x*segment)/2+i*segment-wall/2+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cube([wall,segment,dick+intr]);}}
|
||||||
|
} //union 1 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon wieder abgezogen (difference 1)
|
||||||
|
//Schraubenlöcher
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick+intr, $fn=fnn);}}
|
||||||
|
|
||||||
|
//Streben-Ausschnitte
|
||||||
|
//vertikale Streben
|
||||||
|
vv=[vv01,vv02,vv03,vv04,vv05,vv06,vv07,vv08,vv09,vv10,vv11,vv12,vv13,vv14,vv15,vv16,vv17,vv18,vv19,vv20,vv21,vv22,vv23,vv24,vv25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (vv[k][i-1]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment-wall+x_off,-(y*segment)/2+diamat/2+k*segment+y_off,-dick-intr]) cube([2*wall,segment-diamat,2*(dick+intr)]); }
|
||||||
|
}}
|
||||||
|
//horizontale Streben
|
||||||
|
vh=[vh01,vh02,vh03,vh04,vh05,vh06,vh07,vh08,vh09,vh10,vh11,vh12,vh13,vh14,vh15,vh16,vh17,vh18,vh19,vh20,vh21,vh22,vh23,vh24,vh25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (vh[k-1][i]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+diamat/2+x_off,-(y*segment)/2+k*segment-wall+y_off,-dick-intr]) cube([segment-diamat,2*wall,2*(dick+intr)]); }
|
||||||
|
}}
|
||||||
|
//Schraubenblöcke
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (sm[k-1][i-1]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=1.1*diamat, h=2*(dick+intr), $fn=fnn); }
|
||||||
|
}}
|
||||||
|
} //difference 1 end
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
//rotate([0,180,0]) //auskommentieren für seitenrichtige Anzeige
|
||||||
|
translate([0,0,-2]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
205
openscad/P0188-07-a_FrontElement_2x2_Anzeigefenster.scad
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm window frame
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm and M2-screws
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
$fn=32;
|
||||||
|
//Moduldefinition mit Parametern für Frontplattensystem im 19mm-Raster
|
||||||
|
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 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]);
|
||||||
|
translate([12.5,3+1.5,-1.8])cylinder(h=2,r=2.5,center=false);
|
||||||
|
translate([25+12.5,3+1.5,-1.8])cylinder(h=2,r=2.5,center=false);
|
||||||
|
translate([12.5,50-4.5,-1.8])cylinder(h=2,r=2.5,center=false);
|
||||||
|
translate([25+12.5,50-4.5,-1.8])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)
|
||||||
|
//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([25-17,25-16,-5])cube([34,32,10]);
|
||||||
|
|
||||||
|
// Kernlochbohrungen
|
||||||
|
translate([12.5,3+1.5,-3])cylinder(h=4,r=0.9,center=false);
|
||||||
|
translate([25+12.5,3+1.5,-3])cylinder(h=4,r=0.9,center=false);
|
||||||
|
translate([12.5,50-4.5,-3])cylinder(h=4,r=0.9,center=false);
|
||||||
|
translate([25+12.5,50-4.5,-3])cylinder(h=4,r=0.9,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 1 end
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
translate([0,0,0]) FrontElem();
|
||||||
|
|
96
openscad/P0188-08-a_Diarahmen_2x2.scad
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 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();
|
||||||
|
|
192
openscad/P0188-09-a_FrontElement_2x2_Anzeigefenster_groß.scad
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm large Window M2 acrylic plate
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm and M2-screws
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
$fn=32;
|
||||||
|
//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([1.1,1.1,-1])cube([47.8,47.8,2]);
|
||||||
|
//Verstärkungen für Schrauben y-Achse links
|
||||||
|
for (y=[0:segment:ywert*segment])
|
||||||
|
translate([0,y,-2]) cylinder(d=6.1,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.1,h=4,$fn=16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
projection() Acrylplatte();
|
@ -0,0 +1,210 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm grid 300x200 M2
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 2024-06-09 xsider modified 7mm distance
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm and M2-screws
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=300-30.2, //Breite der Frontplatte, innenmaß für P0170 200x100mm
|
||||||
|
h=200-30.2, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=5,y=3,segment=50,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=7,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=1.8, // Kernloch 1.6 + 0.1 für Drucktoleranz
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
wall=2, //Wandstärke Verbindungsstreben
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
vv25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Strebendefinition horizontale Streben
|
||||||
|
vh25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//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)
|
||||||
|
//Body
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cube([b-chmfr,h-chmfr,dick]);
|
||||||
|
//Umrandung
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, -h/2, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
translate([+b/2-chmfr, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
|
||||||
|
} //union 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
//Anfasung
|
||||||
|
if (chmtyp==0)
|
||||||
|
{
|
||||||
|
translate([-b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([-b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
}
|
||||||
|
//Bohrungen
|
||||||
|
for ( i= [-x/2:x/2] ) {
|
||||||
|
// x=10,y=6,segment=25,
|
||||||
|
translate([i*segment,y/2*segment+7,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
translate([i*segment,-y/2*segment-7,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
for ( i= [-y/2:y/2] ) {
|
||||||
|
translate([x/2*segment+7,i*segment,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
translate([-x/2*segment-7,i*segment,-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Rasterausschnitt
|
||||||
|
translate([-(x*segment)/2+x_off, -(y*segment)/2+y_off, -0.1]) cube([x*segment,y*segment,2*dick]);
|
||||||
|
} //difference 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1)
|
||||||
|
//Markierung Ursprung
|
||||||
|
translate([-(x*segment)/2+x_off,-(y*segment)/2+y_off,0]) rotate([0,0,45]) cylinder(d=1.3*diamat,h=dick, $fn=fnn);
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cylinder(d=diamat, h=dick+intr, $fn=fnn);}}
|
||||||
|
//Stützgitter horizontal
|
||||||
|
for (i = [0:x-1]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment-wall/2+y_off,-intr]) cube([segment,wall,dick+intr]);}}
|
||||||
|
//Stützgitter vertikal
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y-1]) {
|
||||||
|
translate([-(x*segment)/2+i*segment-wall/2+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cube([wall,segment,dick+intr]);}}
|
||||||
|
} //union 1 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon wieder abgezogen (difference 1)
|
||||||
|
//Schraubenlöcher
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick+intr, $fn=fnn);}}
|
||||||
|
|
||||||
|
//Streben-Ausschnitte
|
||||||
|
//vertikale Streben
|
||||||
|
vv=[vv01,vv02,vv03,vv04,vv05,vv06,vv07,vv08,vv09,vv10,vv11,vv12,vv13,vv14,vv15,vv16,vv17,vv18,vv19,vv20,vv21,vv22,vv23,vv24,vv25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (vv[k][i-1]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment-wall+x_off,-(y*segment)/2+diamat/2+k*segment+y_off,-dick-intr]) cube([2*wall,segment-diamat,2*(dick+intr)]); }
|
||||||
|
}}
|
||||||
|
//horizontale Streben
|
||||||
|
vh=[vh01,vh02,vh03,vh04,vh05,vh06,vh07,vh08,vh09,vh10,vh11,vh12,vh13,vh14,vh15,vh16,vh17,vh18,vh19,vh20,vh21,vh22,vh23,vh24,vh25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (vh[k-1][i]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+diamat/2+x_off,-(y*segment)/2+k*segment-wall+y_off,-dick-intr]) cube([segment-diamat,2*wall,2*(dick+intr)]); }
|
||||||
|
}}
|
||||||
|
//Schraubenblöcke
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (sm[k-1][i-1]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=1.1*diamat, h=2*(dick+intr), $fn=fnn); }
|
||||||
|
}}
|
||||||
|
} //difference 1 end
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
//rotate([0,180,0]) //auskommentieren für seitenrichtige Anzeige
|
||||||
|
translate([0,0,-2]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
193
openscad/P0188-12-a_2x2_Anzeigefenster_3mm_M3.scad
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 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();
|
@ -0,0 +1,203 @@
|
|||||||
|
//OpenSCAD-Skript
|
||||||
|
// 2024-06-09 xsider Anpassung 7mm Abstand
|
||||||
|
// 2024-06-03 xsider Anpassungen an Raster 25
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=300-30.2, //Breite der Frontplatte, innenmaß für P0170 200x100mm
|
||||||
|
h=200-30.2, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=5,y=3,segment=50,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=7,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=2.7, // Kernloch M3 für Drucktoleranz
|
||||||
|
diabM2=1.7, // Kernloch 1.6 + 0.1 für Drucktoleranz
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
wall=2, //Wandstärke Verbindungsstreben
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
vv25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Strebendefinition horizontale Streben
|
||||||
|
vh25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//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)
|
||||||
|
//Body
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cube([b-chmfr,h-chmfr,dick]);
|
||||||
|
//Umrandung
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, -h/2, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
translate([+b/2-chmfr, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
|
||||||
|
} //union 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
//Anfasung
|
||||||
|
if (chmtyp==0)
|
||||||
|
{
|
||||||
|
translate([-b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([-b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
}
|
||||||
|
//Bohrungen
|
||||||
|
for ( i= [-x/2:x/2] ) {
|
||||||
|
// x=10,y=6,segment=25,
|
||||||
|
translate([i*segment,y/2*segment+7,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
translate([i*segment,-y/2*segment-7,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
for ( i= [-y/2:y/2] ) {
|
||||||
|
translate([x/2*segment+7,i*segment,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
translate([-x/2*segment-7,i*segment,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Rasterausschnitt
|
||||||
|
translate([-(x*segment)/2+x_off, -(y*segment)/2+y_off, -0.1]) cube([x*segment,y*segment,2*dick]);
|
||||||
|
} //difference 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1)
|
||||||
|
//Markierung Ursprung
|
||||||
|
translate([-(x*segment)/2+x_off,-(y*segment)/2+y_off,0]) rotate([0,0,45]) cylinder(d=1.3*diamat,h=dick, $fn=fnn);
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cylinder(d=diamat, h=dick+intr, $fn=fnn);}}
|
||||||
|
//Stützgitter horizontal
|
||||||
|
for (i = [0:x-1]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment-wall/2+y_off,-intr]) cube([segment,wall,dick+intr]);}}
|
||||||
|
//Stützgitter vertikal
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y-1]) {
|
||||||
|
translate([-(x*segment)/2+i*segment-wall/2+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cube([wall,segment,dick+intr]);}}
|
||||||
|
} //union 1 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon wieder abgezogen (difference 1)
|
||||||
|
//Schraubenlöcher
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick+intr, $fn=fnn);}}
|
||||||
|
|
||||||
|
//Streben-Ausschnitte
|
||||||
|
//vertikale Streben
|
||||||
|
vv=[vv01,vv02,vv03,vv04,vv05,vv06,vv07,vv08,vv09,vv10,vv11,vv12,vv13,vv14,vv15,vv16,vv17,vv18,vv19,vv20,vv21,vv22,vv23,vv24,vv25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (vv[k][i-1]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment-wall+x_off,-(y*segment)/2+diamat/2+k*segment+y_off,-dick-intr]) cube([2*wall,segment-diamat,2*(dick+intr)]); }
|
||||||
|
}}
|
||||||
|
//horizontale Streben
|
||||||
|
vh=[vh01,vh02,vh03,vh04,vh05,vh06,vh07,vh08,vh09,vh10,vh11,vh12,vh13,vh14,vh15,vh16,vh17,vh18,vh19,vh20,vh21,vh22,vh23,vh24,vh25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (vh[k-1][i]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+diamat/2+x_off,-(y*segment)/2+k*segment-wall+y_off,-dick-intr]) cube([segment-diamat,2*wall,2*(dick+intr)]); }
|
||||||
|
}}
|
||||||
|
//Schraubenblöcke
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
for (i=[0:x-1]) {
|
||||||
|
for (k=[0:y-1]) {
|
||||||
|
if (sm[k-1][i-1]==0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=1.1*diamat, h=2*(dick+intr), $fn=fnn); }
|
||||||
|
}}
|
||||||
|
} //difference 1 end
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
//rotate([0,180,0]) //auskommentieren für seitenrichtige Anzeige
|
||||||
|
translate([0,0,-2]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
122
openscad/P0188-15-a_Rückwand_für_300x200_gewinde_M2.scad
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
//OpenSCAD-Skript
|
||||||
|
// 2024-06-09 xsider Anpassung 7mm Abstand
|
||||||
|
// 2024-06-03 xsider Anpassungen an Raster 25
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=250, //Breite der Frontplatte, innenmaß für P0170 200x100mm
|
||||||
|
h=150, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
beschriftung = "P0188-15-a",
|
||||||
|
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=10,y=6,segment=25,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=0,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=2.2, // Kernloch Durchgangsloch für M2
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//Beginn Modul
|
||||||
|
{
|
||||||
|
difference(){ //difference 1
|
||||||
|
union(){ //union 2
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird zusammengefügt (union 2)
|
||||||
|
translate([-b/2-1, -h/2-1, 0]) cube([b+2,h+2,dick]);
|
||||||
|
//Schraubenblöcke
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,0]) cylinder(d=diamat, h=dick, $fn=fnn);}}
|
||||||
|
|
||||||
|
} //union 2 end
|
||||||
|
//Schraubenlöcher abziehen
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
if (sm[k-1][i-1]!=0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);}}
|
||||||
|
}
|
||||||
|
// Vertiefungen für die Leuchtbänder
|
||||||
|
bandbreite=11;
|
||||||
|
bandtiefe=2;
|
||||||
|
bandlange=500;
|
||||||
|
for (i= [-3:3] ) {
|
||||||
|
translate([0,i*25+12.5,0])
|
||||||
|
translate([-bandlange/2,-bandbreite/2,dick-bandtiefe/2])cube([bandlange,bandbreite,bandtiefe]);
|
||||||
|
}
|
||||||
|
// Lochbild für DCDC-Wandler M3-Gewinde DP6037
|
||||||
|
translate([-90,38,0])
|
||||||
|
{
|
||||||
|
translate([52/2,29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-52/2,29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([52/2,-29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-52/2,-29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
// Lochbild für DP100100 Optional
|
||||||
|
translate([00,0,0])
|
||||||
|
{
|
||||||
|
translate([92/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-92/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([92/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-92/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lochbild für DP10062
|
||||||
|
translate([85,0,0])
|
||||||
|
{
|
||||||
|
translate([54/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-54/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([54/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-54/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Beschriftung
|
||||||
|
translate([55,-57,0.5])rotate([180,0,0])
|
||||||
|
linear_extrude(height=1)
|
||||||
|
text( text=beschriftung,size=10,font="osifont",valign=center,halign=center,$fn=50);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
//rotate([0,180,0]) //auskommentieren für seitenrichtige Anzeige
|
||||||
|
translate([0,0,0]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
122
openscad/P0188-16-a_Rückwand_für_300x200_gewinde_M3.scad
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
//OpenSCAD-Skript
|
||||||
|
// 2024-06-09 xsider Anpassung 7mm Abstand
|
||||||
|
// 2024-06-03 xsider Anpassungen an Raster 25
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=250, //Breite der Frontplatte, innenmaß für P0170 200x100mm
|
||||||
|
h=150, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
beschriftung = "P0188-16-a",
|
||||||
|
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=5,y=3,segment=50,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=0,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=3.2, // Kernloch Durchgangsloch für M2
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//Beginn Modul
|
||||||
|
{
|
||||||
|
difference(){ //difference 1
|
||||||
|
union(){ //union 2
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird zusammengefügt (union 2)
|
||||||
|
translate([-b/2-1, -h/2-1, 0]) cube([b+2,h+2,dick]);
|
||||||
|
//Schraubenblöcke
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,0]) cylinder(d=diamat, h=dick, $fn=fnn);}}
|
||||||
|
|
||||||
|
} //union 2 end
|
||||||
|
//Schraubenlöcher abziehen
|
||||||
|
for (i = [0:x]) {
|
||||||
|
for (k = [0:y]) {
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
if (sm[k-1][i-1]!=0) {
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick, $fn=fnn);}}
|
||||||
|
}
|
||||||
|
// Vertiefungen für die Leuchtbänder
|
||||||
|
bandbreite=11;
|
||||||
|
bandtiefe=2;
|
||||||
|
bandlange=500;
|
||||||
|
for (i= [-3:3] ) {
|
||||||
|
translate([0,i*25+12.5,0])
|
||||||
|
translate([-bandlange/2,-bandbreite/2,dick-bandtiefe/2])cube([bandlange,bandbreite,bandtiefe]);
|
||||||
|
}
|
||||||
|
// Lochbild für DCDC-Wandler M3-Gewinde DP6037
|
||||||
|
translate([-90,38,0])
|
||||||
|
{
|
||||||
|
translate([52/2,29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-52/2,29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([52/2,-29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-52/2,-29/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
// Lochbild für DP100100 Optional
|
||||||
|
translate([00,0,0])
|
||||||
|
{
|
||||||
|
translate([92/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-92/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([92/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-92/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lochbild für DP10062
|
||||||
|
translate([85,0,0])
|
||||||
|
{
|
||||||
|
translate([54/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-54/2,92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([54/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
translate([-54/2,-92/2,intr-0.1])cylinder(d=2.5, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Beschriftung
|
||||||
|
translate([55,-57,0.5])rotate([180,0,0])
|
||||||
|
linear_extrude(height=1)
|
||||||
|
text( text=beschriftung,size=10,font="osifont",valign=center,halign=center,$fn=50);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
//rotate([0,180,0]) //auskommentieren für seitenrichtige Anzeige
|
||||||
|
translate([0,0,0]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
160
openscad/P0188-17-a_FrontElement_1x1_Anzeige.scad
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 25x25mm LED window
|
||||||
|
//
|
||||||
|
// 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 im 19mm-Raster
|
||||||
|
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
|
||||||
|
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=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Verstärkungen für Schrauben y-Achse links
|
||||||
|
for (y=[0:segment:ywert*segment])
|
||||||
|
{
|
||||||
|
translate([0,y,0]) cylinder(d=dvst3,h=hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
}
|
||||||
|
} //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=64);
|
||||||
|
translate([x,0,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
translate([x,ywert*segment,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
translate([0,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
translate([xwert*segment,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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 für 3mm Acylglasscheibe, 1mm eintauchend
|
||||||
|
translate([1,1,-0.999])
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
cube([23,23,3]);
|
||||||
|
translate([-1,-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
translate([-1,25-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
translate([25-1,-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
translate([25-1,25-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
}
|
||||||
|
} //difference 1 end
|
||||||
|
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
translate([0,0,0]) FrontElem();
|
||||||
|
|
||||||
|
|
170
openscad/P0188-18-a_Anzeigefenster_1x1_Acryl_3mm.scad
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 25x25mm LED window acrylic inlay for -17
|
||||||
|
//
|
||||||
|
// 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 im 19mm-Raster
|
||||||
|
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
|
||||||
|
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=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Verstärkungen für Schrauben y-Achse links
|
||||||
|
for (y=[0:segment:ywert*segment])
|
||||||
|
{
|
||||||
|
translate([0,y,0]) cylinder(d=dvst3,h=hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
}
|
||||||
|
} //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=64);
|
||||||
|
translate([x,0,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
translate([x,ywert*segment,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
translate([0,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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=64);
|
||||||
|
translate([xwert*segment,y,hght-skh3]) cylinder(d=skd3,h=2*hght,$fn=64);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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 für 3mm Acylglasscheibe, 1mm eintauchend
|
||||||
|
translate([1,1,-0.999])
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
cube([23,23,3]);
|
||||||
|
translate([-1,-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
translate([-1,25-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
translate([25-1,-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
translate([25-1,25-1,-1])cylinder(d=5.5,h=5,$fn=128);
|
||||||
|
}
|
||||||
|
|
||||||
|
} //difference 1 end
|
||||||
|
|
||||||
|
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
//translate([0,0,0]) FrontElem();
|
||||||
|
|
||||||
|
// Frontglas
|
||||||
|
// translate([1.1,1.1,-1])
|
||||||
|
|
||||||
|
projection()
|
||||||
|
difference(){
|
||||||
|
cube([23-0.2,23-0.2,3]);
|
||||||
|
translate([-1,-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
translate([-1,25-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
translate([25-1,-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
translate([25-1,25-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
}
|
||||||
|
|
67
openscad/P0188-19-a_Anzeigefenster_1x1_Reflektor.scad
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 25x25mm reflector for LEd fits to -17
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm and M2-screws
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
beschriftung = "P0188-19-a";
|
||||||
|
|
||||||
|
module Reflektor(){
|
||||||
|
difference(){
|
||||||
|
union() {
|
||||||
|
cube([23-0.2,23-0.2,9]);
|
||||||
|
// Anschraubplatte für die Rückwand
|
||||||
|
translate([-1.1,25-1.1,1])
|
||||||
|
rotate([180,0,0])
|
||||||
|
BackElem();
|
||||||
|
}
|
||||||
|
translate([-1,-1,1])cylinder(d=5.7,h=9,$fn=128);
|
||||||
|
translate([-1,25-1,1])cylinder(d=5.7,h=9,$fn=128);
|
||||||
|
translate([25-1,-1,1])cylinder(d=5.7,h=9,$fn=128);
|
||||||
|
translate([25-1,25-1,1])cylinder(d=5.7,h=9,$fn=128);
|
||||||
|
// LED-Loch für 5mm herausschneiden
|
||||||
|
translate([12.5-1.1,12.5-1.1,-5])cylinder(h=20,d=5.1,$fn=128);
|
||||||
|
// Pyramide herausschneiden
|
||||||
|
translate([12.5-1.1,12.5-1.1,11])
|
||||||
|
rotate([180,0,0])
|
||||||
|
polyhedron(
|
||||||
|
points=[ [12.5,12.5,0],[12.5,-12.5,0],[-12.5,-12.5,0],[-12.5,12.5,0], // the four points at base
|
||||||
|
[0,0,12.5] ], // the apex point
|
||||||
|
faces=[ [0,1,4],[1,2,4],[2,3,4],[3,0,4], // each triangle side
|
||||||
|
[1,0,3],[2,1,3] ] // two triangles for square base
|
||||||
|
);
|
||||||
|
|
||||||
|
// Beschriftung
|
||||||
|
translate([3,7,-1.5])rotate([180,0,0])
|
||||||
|
linear_extrude(height=1)
|
||||||
|
{
|
||||||
|
text( text="P0188",size=5,font="osifont",valign=center,halign=center,$fn=50);
|
||||||
|
translate([0,-14,0])
|
||||||
|
text( text="-19-a",size=5,font="osifont",valign=center,halign=center,$fn=50);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module frontglas() {
|
||||||
|
difference(){
|
||||||
|
cube([23-0.2,23-0.2,3]);
|
||||||
|
translate([-1,-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
translate([-1,25-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
translate([25-1,-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
translate([25-1,25-1,-1])cylinder(d=5.7,h=5,$fn=128);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
translate([1.1,1.1,-10])
|
||||||
|
Reflektor();
|
||||||
|
|
||||||
|
// Frontglas
|
||||||
|
//%translate([1.1,1.1,-1])frontglas();
|
||||||
|
|
162
openscad/P0188-24-a_FrontElement_2x1_2mm.scad
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 25x50mm Frontelement with 2mm sockets
|
||||||
|
//
|
||||||
|
// 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 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
|
||||||
|
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
|
||||||
|
|
||||||
|
//Beschriftungsfeld eingesenkt
|
||||||
|
Btext=6.2, //Breite Beschriftungsband
|
||||||
|
Ltext=30.2, //Länge Beschriftungsband
|
||||||
|
Dtext=0.2, //Tiefe Beschriftungsfeld, oder Null
|
||||||
|
|
||||||
|
TRSdia=5.0, //Bohrung für Telefonbuchse 2mm Hirschmann
|
||||||
|
//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]);
|
||||||
|
} //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 2mm-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);
|
||||||
|
|
||||||
|
// Beschritungsfeld
|
||||||
|
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();
|
||||||
|
|
169
openscad/P0188-25-a_FrontElement_2x2_Steckdose_System_45.scad
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm Schuko Socket
|
||||||
|
//
|
||||||
|
// 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 im 19mm-Raster
|
||||||
|
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
|
||||||
|
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]);
|
||||||
|
|
||||||
|
// umlaufend 0.2mm Luft
|
||||||
|
translate([1.3,1.3,-13+3])cube([47.4,47.4,13-1]);
|
||||||
|
} //union 2 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
} //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]);
|
||||||
|
|
||||||
|
// cutout for 45mm plug insert
|
||||||
|
translate([2.45,2.45,-8.6+3])cube([45.1,45.1,8.6+1]);
|
||||||
|
|
||||||
|
//
|
||||||
|
translate([4.65,4.65,-15])cube([40.7,40.7,20]);
|
||||||
|
ddome=5.4;
|
||||||
|
h=30;
|
||||||
|
fn=256;
|
||||||
|
|
||||||
|
// Cutout for screw domes in Grind
|
||||||
|
for (x=[0:segment:xwert*segment])
|
||||||
|
{
|
||||||
|
translate([x,0,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben x-Achse oben
|
||||||
|
for (x=[0:segment:xwert*segment])
|
||||||
|
{
|
||||||
|
translate([x,ywert*segment,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben y-Achse links
|
||||||
|
for (y=[0:segment:ywert*segment])
|
||||||
|
{
|
||||||
|
translate([0,y,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben y-Achse rechts
|
||||||
|
for (y=[0:segment:ywert*segment])
|
||||||
|
{
|
||||||
|
translate([xwert*segment,y,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben x-Achse unten
|
||||||
|
for (x=[0:segment:xwert*segment])
|
||||||
|
{
|
||||||
|
translate([x,0,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
} //difference 1 end
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
translate([0,0,0]) FrontElem();
|
||||||
|
|
138
openscad/P0188-26-b_FrontElement_2x2_Steckdose_System_45_M3.scad
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm Schuko Socket M3 screws
|
||||||
|
//
|
||||||
|
// 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 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
|
||||||
|
|
||||||
|
//M3-Schrauben
|
||||||
|
dsh3=3.2, //Schaftdurchmesser M3-Schraube
|
||||||
|
dvst3=6.3, //Verstärkung für M3-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]);
|
||||||
|
|
||||||
|
// umlaufend 0.2mm Luft
|
||||||
|
translate([1.25,1.25,-13+3])cube([47.5,47.5,13-1]);
|
||||||
|
} //union 2 end
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
|
||||||
|
} //difference 2 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1)
|
||||||
|
} //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);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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);
|
||||||
|
}
|
||||||
|
|
||||||
|
//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]);
|
||||||
|
|
||||||
|
// cutout for 45mm plug insert
|
||||||
|
translate([2.45,2.45,-8.6+3])cube([45.1,45.1,8.6+1]);
|
||||||
|
|
||||||
|
//
|
||||||
|
translate([4.65,4.65,-15])cube([40.7,40.7,20]);
|
||||||
|
ddome=5.4;
|
||||||
|
h=30;
|
||||||
|
fn=256;
|
||||||
|
|
||||||
|
// Cutout for screw domes in Grind
|
||||||
|
for (x=[0:segment:xwert*segment])
|
||||||
|
{
|
||||||
|
translate([x,0,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben x-Achse oben
|
||||||
|
for (x=[0:segment:xwert*segment])
|
||||||
|
{
|
||||||
|
translate([x,ywert*segment,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben y-Achse links
|
||||||
|
for (y=[0:segment:ywert*segment])
|
||||||
|
{
|
||||||
|
translate([0,y,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben y-Achse rechts
|
||||||
|
for (y=[0:segment:ywert*segment])
|
||||||
|
{
|
||||||
|
translate([xwert*segment,y,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen für Schrauben x-Achse unten
|
||||||
|
for (x=[0:segment:xwert*segment])
|
||||||
|
{
|
||||||
|
translate([x,0,-h]) cylinder(d=ddome,h=h,$fn=fn);
|
||||||
|
}
|
||||||
|
} //difference 1 end
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
translate([0,0,0]) FrontElem();
|
||||||
|
|
145
openscad/P0188-27-a_FrontElement_2x2_blind_M3.scad
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm blind M3
|
||||||
|
//
|
||||||
|
// 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 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
|
||||||
|
//M3-Schrauben
|
||||||
|
skd3=3.2, //Schraubenkopfdurchmesser M3-Schraube
|
||||||
|
skh3=2, //Schraubenkopfhöhe M3-Schraube
|
||||||
|
dsh3=3.2, //Schaftdurchmesser M3-Schraube
|
||||||
|
dvst3=7, //Verstärkung für M3-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();
|
||||||
|
|
@ -0,0 +1,257 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm Schuko Socket 3.5
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
// 2024-06-09 xsider modified 7mm distance
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=300-30.2, //Breite der Frontplatte, innenmaß für P0170 200x100mm
|
||||||
|
h=100-30.2, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=5,y=1,segment=50,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=7,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=2.7, // Kernloch M3 für Drucktoleranz
|
||||||
|
diabM2=1.7, // Kernloch 1.6 + 0.1 für Drucktoleranz
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
wall=2, //Wandstärke Verbindungsstreben
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
vv25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Strebendefinition horizontale Streben
|
||||||
|
vh25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//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)
|
||||||
|
//Body
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cube([b-chmfr,h-chmfr,dick]);
|
||||||
|
//Umrandung
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, -h/2, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
translate([+b/2-chmfr, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
} //union 2 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
//Anfasung
|
||||||
|
if (chmtyp==0)
|
||||||
|
{
|
||||||
|
translate([-b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([-b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen
|
||||||
|
for ( i= [-x/2:x/2] ) {
|
||||||
|
translate([i*segment,y/2*segment+7,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
translate([i*segment,-y/2*segment-7,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
for ( i= [-y/2:y/2] ) {
|
||||||
|
translate([x/2*segment+7,i*segment,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
translate([-x/2*segment-7,i*segment,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Rasterausschnitt
|
||||||
|
translate([-(x*segment)/2+x_off, -(y*segment)/2+y_off, -0.1]) cube([x*segment,y*segment,2*dick]);
|
||||||
|
} //difference 2 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1)
|
||||||
|
|
||||||
|
//Markierung Ursprung
|
||||||
|
translate([-(x*segment)/2+x_off,-(y*segment)/2+y_off,0]) rotate([0,0,45]) cylinder(d=1.3*diamat,h=dick, $fn=fnn);
|
||||||
|
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cylinder(d=diamat, h=dick+intr, $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Stützgitter horizontal
|
||||||
|
for (i = [0:x-1])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment-wall/2+y_off,-intr]) cube([segment,wall,dick+intr]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Stützgitter vertikal
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y-1])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment-wall/2+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cube([wall,segment,dick+intr]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} //union 1 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon wieder abgezogen (difference 1)
|
||||||
|
//Schraubenlöcher
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick+intr, $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Streben-Ausschnitte
|
||||||
|
//vertikale Streben
|
||||||
|
vv=[vv01,vv02,vv03,vv04,vv05,vv06,vv07,vv08,vv09,vv10,vv11,vv12,vv13,vv14,vv15,vv16,vv17,vv18,vv19,vv20,vv21,vv22,vv23,vv24,vv25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (vv[k][i-1]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment-wall+x_off,-(y*segment)/2+diamat/2+k*segment+y_off,-dick-intr]) cube([2*wall,segment-diamat,2*(dick+intr)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//horizontale Streben
|
||||||
|
vh=[vh01,vh02,vh03,vh04,vh05,vh06,vh07,vh08,vh09,vh10,vh11,vh12,vh13,vh14,vh15,vh16,vh17,vh18,vh19,vh20,vh21,vh22,vh23,vh24,vh25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (vh[k-1][i]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+diamat/2+x_off,-(y*segment)/2+k*segment-wall+y_off,-dick-intr]) cube([segment-diamat,2*wall,2*(dick+intr)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Schraubenblöcke
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (sm[k-1][i-1]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=1.1*diamat, h=2*(dick+intr), $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ausschnittblock für Abschnitt Rand Rechts
|
||||||
|
// 1/10mm Spalt lassen
|
||||||
|
translate([50-0.1,-50,-10])cube([200,100,20]);
|
||||||
|
} //difference 1 end
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
translate([0,0,-2]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
@ -0,0 +1,261 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// OpenSCAD-Script for mosaic 50x50mm Schuko Socket 4+2x0.5
|
||||||
|
//
|
||||||
|
// derived from:
|
||||||
|
// https://github.com/MakeMagazinDE/OpenSCAD_Frontplatten/
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
// 2024-06-09 xsider modified 7mm distance
|
||||||
|
// 2024-06-03 xsider modified for grid 25mm
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
//Moduldefinition mit Parametern
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
module support (
|
||||||
|
//Parameter
|
||||||
|
b=350-30.2, //Breite der Frontplatte, innenmaß für P0170 300x100mm
|
||||||
|
h=100-30.2, //Höhe der Frontplatte
|
||||||
|
dick=3, //Auflagedicke des Rahmens
|
||||||
|
chmfr=3, //Maß der Kante (muss identisch sein mit Rahmen chmfr)
|
||||||
|
chmtyp=1, //Typ der Kante 0:Fase, 1:Rundung (muss identisch sein mit Rahmen chmtyp)
|
||||||
|
fnn=32, //Definition Anzahl Facetten der Rundung (muss identisch sein mit Rahmen fnn)
|
||||||
|
//Bohrungen außen (muss identisch sein mit Bohrungen Rahmen)
|
||||||
|
|
||||||
|
|
||||||
|
//Raster (muss identisch sein mit Rahmen x,y,segment)
|
||||||
|
x=6,y=1,segment=50,
|
||||||
|
//Rasteroffsets (muss identisch sein mit Rahmen x_off,y_off)
|
||||||
|
x_off=0,y_off=0,
|
||||||
|
//Eintauchtiefe der Stützstruktur ins Gehäuse
|
||||||
|
intr=7,
|
||||||
|
//Rasterbohrungen und Stützgitter
|
||||||
|
diab=2.7, // Kernloch M3 für Drucktoleranz
|
||||||
|
diabM2=1.7, // Kernloch 1.6 + 0.1 für Drucktoleranz
|
||||||
|
diamat=5, //Materialdurchmesser für Schraubenbefestigung
|
||||||
|
wall=2, //Wandstärke Verbindungsstreben
|
||||||
|
//Strebendefinition vertikale Streben
|
||||||
|
vv25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vv01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Strebendefinition horizontale Streben
|
||||||
|
vh25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
vh01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
//Definition Schraubenblöcke
|
||||||
|
sm25 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm24 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm23 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm22 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm21 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm20 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm19 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm18 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm17 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm16 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm15 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm14 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm13 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm12 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm11 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm09 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm08 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm07 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm06 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm05 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm04 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm03 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm02 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
|
||||||
|
sm01 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
||||||
|
)
|
||||||
|
//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)
|
||||||
|
//Body
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cube([b-chmfr,h-chmfr,dick]);
|
||||||
|
//Umrandung
|
||||||
|
translate([-b/2+chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, -h/2+chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([+b/2-chmfr/2, +h/2-chmfr/2, 0]) cylinder(d=chmfr, h=dick, $fn=fnn);
|
||||||
|
translate([-b/2+chmfr/2, -h/2, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2+chmfr/2, +h/2-chmfr, 0]) cube([b-chmfr,chmfr,dick]);
|
||||||
|
translate([-b/2, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
translate([+b/2-chmfr, -h/2+chmfr/2, 0]) cube([chmfr,h-chmfr,dick]);
|
||||||
|
} //union 2 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon abgezogen (difference 2)
|
||||||
|
//Anfasung
|
||||||
|
if (chmtyp==0)
|
||||||
|
{
|
||||||
|
translate([-b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([-b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, -h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
translate([+b/2, +h/2, dick/2-0.1]) rotate([0,0,45]) cube([chmfr,chmfr,2*dick],center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Bohrungen
|
||||||
|
for ( i= [-x/2:x/2] ) {
|
||||||
|
translate([i*segment,y/2*segment+7,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
translate([i*segment,-y/2*segment-7,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
for ( i= [-y/2:y/2] ) {
|
||||||
|
translate([x/2*segment+7,i*segment,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
translate([-x/2*segment-7,i*segment,-0.1]) cylinder(d=diabM2, h=2*dick, $fn=fnn);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Rasterausschnitt
|
||||||
|
translate([-(x*segment)/2+x_off, -(y*segment)/2+y_off, -0.1]) cube([x*segment,y*segment,2*dick]);
|
||||||
|
} //difference 2 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird dazu hinzugefügt (union 1)
|
||||||
|
|
||||||
|
//Markierung Ursprung
|
||||||
|
translate([-(x*segment)/2+x_off,-(y*segment)/2+y_off,0]) rotate([0,0,45]) cylinder(d=1.3*diamat,h=dick, $fn=fnn);
|
||||||
|
|
||||||
|
//Schraubenzylinder
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cylinder(d=diamat, h=dick+intr, $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Stützgitter horizontal
|
||||||
|
for (i = [0:x-1])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment-wall/2+y_off,-intr]) cube([segment,wall,dick+intr]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Stützgitter vertikal
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y-1])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment-wall/2+x_off,-(y*segment)/2+k*segment+y_off,-intr]) cube([wall,segment,dick+intr]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} //union 1 end
|
||||||
|
|
||||||
|
//alles, was vor der nächsten geschweiften Klammer steht, wird davon wieder abgezogen (difference 1)
|
||||||
|
//Schraubenlöcher
|
||||||
|
for (i = [0:x])
|
||||||
|
{
|
||||||
|
for (k = [0:y])
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=diab, h=2*dick+intr, $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Streben-Ausschnitte
|
||||||
|
//vertikale Streben
|
||||||
|
vv=[vv01,vv02,vv03,vv04,vv05,vv06,vv07,vv08,vv09,vv10,vv11,vv12,vv13,vv14,vv15,vv16,vv17,vv18,vv19,vv20,vv21,vv22,vv23,vv24,vv25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (vv[k][i-1]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment-wall+x_off,-(y*segment)/2+diamat/2+k*segment+y_off,-dick-intr]) cube([2*wall,segment-diamat,2*(dick+intr)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//horizontale Streben
|
||||||
|
vh=[vh01,vh02,vh03,vh04,vh05,vh06,vh07,vh08,vh09,vh10,vh11,vh12,vh13,vh14,vh15,vh16,vh17,vh18,vh19,vh20,vh21,vh22,vh23,vh24,vh25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (vh[k-1][i]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+diamat/2+x_off,-(y*segment)/2+k*segment-wall+y_off,-dick-intr]) cube([segment-diamat,2*wall,2*(dick+intr)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Schraubenblöcke
|
||||||
|
sm=[sm01,sm02,sm03,sm04,sm05,sm06,sm07,sm08,sm09,sm10,sm11,sm12,sm13,sm14,sm15,sm16,sm17,sm18,sm19,sm20,sm21,sm22,sm23,sm24,sm25];
|
||||||
|
for (i=[0:x-1])
|
||||||
|
{
|
||||||
|
for (k=[0:y-1])
|
||||||
|
{
|
||||||
|
if (sm[k-1][i-1]==0)
|
||||||
|
{
|
||||||
|
translate([-(x*segment)/2+i*segment+x_off,-(y*segment)/2+k*segment+y_off,-intr-0.1]) cylinder(d=1.1*diamat, h=2*(dick+intr), $fn=fnn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Ausschnittblock für Abschnitt Rand Rechts
|
||||||
|
// 1/10mm Spalt lassen
|
||||||
|
translate([125-0.1,-50,-10])cube([200,100,20]);
|
||||||
|
translate([-125+0.1-200,-50,-10])cube([200,100,20]);
|
||||||
|
|
||||||
|
} //difference 1 end
|
||||||
|
} //module end
|
||||||
|
|
||||||
|
//Hier werden Instanzen des Moduls aufgerufen
|
||||||
|
//rotate([0,180,0]) //auskommentieren für seitenrichtige Anzeige
|
||||||
|
translate([0,0,-2]) support(); //in z-Richtung um -dick verschieben
|
||||||
|
|
47
render/00-catalog.html
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<html>
|
||||||
|
<head><title>Project overview</title></head><body>
|
||||||
|
<style>
|
||||||
|
table, th, td {
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 10px;
|
||||||
|
};
|
||||||
|
</style>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>stl_step/P0188-01-b_Raster_für_200x100_gewinde_geschnitten.stl<br><img src="stl_step_P0188_01_b_Raster_für_200x100_gewinde_geschnitten.stl_1.png"> </img><img src="stl_step_P0188_01_b_Raster_für_200x100_gewinde_geschnitten.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-02-a_FrontElement_2x1_4mm_Buchsen.stl<br><img src="stl_step_P0188_02_a_FrontElement_2x1_4mm_Buchsen.stl_1.png"> </img><img src="stl_step_P0188_02_a_FrontElement_2x1_4mm_Buchsen.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-03-a_FrontElement_1x1_blank.stl<br><img src="stl_step_P0188_03_a_FrontElement_1x1_blank.stl_1.png"> </img><img src="stl_step_P0188_03_a_FrontElement_1x1_blank.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-04-a_FrontElement_2x1_blank.stl<br><img src="stl_step_P0188_04_a_FrontElement_2x1_blank.stl_1.png"> </img><img src="stl_step_P0188_04_a_FrontElement_2x1_blank.stl_2.png"></img>
|
||||||
|
</tr><tr>
|
||||||
|
<td>stl_step/P0188-05-a_FrontElement_2x2_blank.stl<br><img src="stl_step_P0188_05_a_FrontElement_2x2_blank.stl_1.png"> </img><img src="stl_step_P0188_05_a_FrontElement_2x2_blank.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-06-a_Raster_für_300x200_gewinde_geschnitten.stl<br><img src="stl_step_P0188_06_a_Raster_für_300x200_gewinde_geschnitten.stl_1.png"> </img><img src="stl_step_P0188_06_a_Raster_für_300x200_gewinde_geschnitten.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-07-a_FrontElement_2x2_Anzeigefenster.stl<br><img src="stl_step_P0188_07_a_FrontElement_2x2_Anzeigefenster.stl_1.png"> </img><img src="stl_step_P0188_07_a_FrontElement_2x2_Anzeigefenster.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-08-a_Diarahmen_2x2.stl<br><img src="stl_step_P0188_08_a_Diarahmen_2x2.stl_1.png"> </img><img src="stl_step_P0188_08_a_Diarahmen_2x2.stl_2.png"></img>
|
||||||
|
</tr><tr>
|
||||||
|
<td>stl_step/P0188-09-a_FrontElement_2x2_Anzeigefenster_groß.stl<br><img src="stl_step_P0188_09_a_FrontElement_2x2_Anzeigefenster_groß.stl_1.png"> </img><img src="stl_step_P0188_09_a_FrontElement_2x2_Anzeigefenster_groß.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-10-a_Acryleinsatz_Anzeigefenster_groß.stl<br><img src="stl_step_P0188_10_a_Acryleinsatz_Anzeigefenster_groß.stl_1.png"> </img><img src="stl_step_P0188_10_a_Acryleinsatz_Anzeigefenster_groß.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-11-b_Raster_für_300x200_Anzeigefenster_groß_gewinde_geschnitten.stl<br><img src="stl_step_P0188_11_b_Raster_für_300x200_Anzeigefenster_groß_gewinde_geschnitten.stl_1.png"> </img><img src="stl_step_P0188_11_b_Raster_für_300x200_Anzeigefenster_groß_gewinde_geschnitten.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-13-a_Raster_für_300x200_Anzeigefenster_3mm_m3.stl<br><img src="stl_step_P0188_13_a_Raster_für_300x200_Anzeigefenster_3mm_m3.stl_1.png"> </img><img src="stl_step_P0188_13_a_Raster_für_300x200_Anzeigefenster_3mm_m3.stl_2.png"></img>
|
||||||
|
</tr><tr>
|
||||||
|
<td>stl_step/P0188-15-a_Rückwand_für_300x200_gewinde_M2.stl<br><img src="stl_step_P0188_15_a_Rückwand_für_300x200_gewinde_M2.stl_1.png"> </img><img src="stl_step_P0188_15_a_Rückwand_für_300x200_gewinde_M2.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-16-a_Rückwand_für_300x200_gewinde_M3.stl<br><img src="stl_step_P0188_16_a_Rückwand_für_300x200_gewinde_M3.stl_1.png"> </img><img src="stl_step_P0188_16_a_Rückwand_für_300x200_gewinde_M3.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-17-a_FrontElement_1x1_Anzeige.stl<br><img src="stl_step_P0188_17_a_FrontElement_1x1_Anzeige.stl_1.png"> </img><img src="stl_step_P0188_17_a_FrontElement_1x1_Anzeige.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-18-a_Anzeigefenster_1x1_Acryl_3mm.stl<br><img src="stl_step_P0188_18_a_Anzeigefenster_1x1_Acryl_3mm.stl_1.png"> </img><img src="stl_step_P0188_18_a_Anzeigefenster_1x1_Acryl_3mm.stl_2.png"></img>
|
||||||
|
</tr><tr>
|
||||||
|
<td>stl_step/P0188-19-a_Anzeigefenster_1x1_Reflektor.stl<br><img src="stl_step_P0188_19_a_Anzeigefenster_1x1_Reflektor.stl_1.png"> </img><img src="stl_step_P0188_19_a_Anzeigefenster_1x1_Reflektor.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-20-a_Wandhalter.step<br><img src="stl_step_P0188_20_a_Wandhalter.step_1.png"> </img><img src="stl_step_P0188_20_a_Wandhalter.step_2.png"></img>
|
||||||
|
<td>stl_step/P0188-20-b_Wandhalter.step<br><img src="stl_step_P0188_20_b_Wandhalter.step_1.png"> </img><img src="stl_step_P0188_20_b_Wandhalter.step_2.png"></img>
|
||||||
|
<td>stl_step/P0188-21-a_Haltescheibe.step<br><img src="stl_step_P0188_21_a_Haltescheibe.step_1.png"> </img><img src="stl_step_P0188_21_a_Haltescheibe.step_2.png"></img>
|
||||||
|
</tr><tr>
|
||||||
|
<td>stl_step/P0188-22-a_Kabelhalter_M2.step<br><img src="stl_step_P0188_22_a_Kabelhalter_M2.step_1.png"> </img><img src="stl_step_P0188_22_a_Kabelhalter_M2.step_2.png"></img>
|
||||||
|
<td>stl_step/P0188-23-a_Kabelhalter_M3.step<br><img src="stl_step_P0188_23_a_Kabelhalter_M3.step_1.png"> </img><img src="stl_step_P0188_23_a_Kabelhalter_M3.step_2.png"></img>
|
||||||
|
<td>stl_step/P0188-24-a_FrontElement_2x1_2mm_Buchse.stl<br><img src="stl_step_P0188_24_a_FrontElement_2x1_2mm_Buchse.stl_1.png"> </img><img src="stl_step_P0188_24_a_FrontElement_2x1_2mm_Buchse.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-25-a_FrontElement_2x2_Steckdose_System_45.stl<br><img src="stl_step_P0188_25_a_FrontElement_2x2_Steckdose_System_45.stl_1.png"> </img><img src="stl_step_P0188_25_a_FrontElement_2x2_Steckdose_System_45.stl_2.png"></img>
|
||||||
|
</tr><tr>
|
||||||
|
<td>stl_step/P0188-26-b_FrontElement_2x2_Steckdose_System_45_M3.stl<br><img src="stl_step_P0188_26_b_FrontElement_2x2_Steckdose_System_45_M3.stl_1.png"> </img><img src="stl_step_P0188_26_b_FrontElement_2x2_Steckdose_System_45_M3.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-27-a_FrontElement_2x2_blind_M3.stl<br><img src="stl_step_P0188_27_a_FrontElement_2x2_blind_M3.stl_1.png"> </img><img src="stl_step_P0188_27_a_FrontElement_2x2_blind_M3.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-28-a_Raster_für_Steckdosen_System_45_M3_3.5_Felder.stl<br><img src="stl_step_P0188_28_a_Raster_für_Steckdosen_System_45_M3_3.5_Felder.stl_1.png"> </img><img src="stl_step_P0188_28_a_Raster_für_Steckdosen_System_45_M3_3.5_Felder.stl_2.png"></img>
|
||||||
|
<td>stl_step/P0188-29-a_Raster_für_Steckdosen_System_45_M3_4_2x0.5_Felder.stl<br><img src="stl_step_P0188_29_a_Raster_für_Steckdosen_System_45_M3_4_2x0.5_Felder.stl_1.png"> </img><img src="stl_step_P0188_29_a_Raster_für_Steckdosen_System_45_M3_4_2x0.5_Felder.stl_2.png"></img>
|
||||||
|
</tr><tr>
|
||||||
|
</tr>
|
||||||
|
</table></body></html>
|
31
render/README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Übersicht 3D-Dateien
|
||||||
|
|Datei|Ansicht 1|Ansicht 2|
|
||||||
|
|-----|:-------:|--------:
|
||||||
|
|stl_step/P0188-01-b_Raster_für_200x100_gewinde_geschnitten.stl|||
|
||||||
|
|stl_step/P0188-02-a_FrontElement_2x1_4mm_Buchsen.stl|||
|
||||||
|
|stl_step/P0188-03-a_FrontElement_1x1_blank.stl|||
|
||||||
|
|stl_step/P0188-04-a_FrontElement_2x1_blank.stl|||
|
||||||
|
|stl_step/P0188-05-a_FrontElement_2x2_blank.stl|||
|
||||||
|
|stl_step/P0188-06-a_Raster_für_300x200_gewinde_geschnitten.stl|||
|
||||||
|
|stl_step/P0188-07-a_FrontElement_2x2_Anzeigefenster.stl|||
|
||||||
|
|stl_step/P0188-08-a_Diarahmen_2x2.stl|||
|
||||||
|
|stl_step/P0188-09-a_FrontElement_2x2_Anzeigefenster_groß.stl|||
|
||||||
|
|stl_step/P0188-10-a_Acryleinsatz_Anzeigefenster_groß.stl|||
|
||||||
|
|stl_step/P0188-11-b_Raster_für_300x200_Anzeigefenster_groß_gewinde_geschnitten.stl|||
|
||||||
|
|stl_step/P0188-13-a_Raster_für_300x200_Anzeigefenster_3mm_m3.stl|||
|
||||||
|
|stl_step/P0188-15-a_Rückwand_für_300x200_gewinde_M2.stl|||
|
||||||
|
|stl_step/P0188-16-a_Rückwand_für_300x200_gewinde_M3.stl|||
|
||||||
|
|stl_step/P0188-17-a_FrontElement_1x1_Anzeige.stl|||
|
||||||
|
|stl_step/P0188-18-a_Anzeigefenster_1x1_Acryl_3mm.stl|||
|
||||||
|
|stl_step/P0188-19-a_Anzeigefenster_1x1_Reflektor.stl|||
|
||||||
|
|stl_step/P0188-20-a_Wandhalter.step|||
|
||||||
|
|stl_step/P0188-20-b_Wandhalter.step|||
|
||||||
|
|stl_step/P0188-21-a_Haltescheibe.step|||
|
||||||
|
|stl_step/P0188-22-a_Kabelhalter_M2.step|||
|
||||||
|
|stl_step/P0188-23-a_Kabelhalter_M3.step|||
|
||||||
|
|stl_step/P0188-24-a_FrontElement_2x1_2mm_Buchse.stl|||
|
||||||
|
|stl_step/P0188-25-a_FrontElement_2x2_Steckdose_System_45.stl|||
|
||||||
|
|stl_step/P0188-26-b_FrontElement_2x2_Steckdose_System_45_M3.stl|||
|
||||||
|
|stl_step/P0188-27-a_FrontElement_2x2_blind_M3.stl|||
|
||||||
|
|stl_step/P0188-28-a_Raster_für_Steckdosen_System_45_M3_3.5_Felder.stl|||
|
||||||
|
|stl_step/P0188-29-a_Raster_für_Steckdosen_System_45_M3_4_2x0.5_Felder.stl|||
|
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 3.1 KiB |
BIN
render/stl_step_P0188_03_a_FrontElement_1x1_blank.stl_1.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
render/stl_step_P0188_03_a_FrontElement_1x1_blank.stl_2.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
render/stl_step_P0188_04_a_FrontElement_2x1_blank.stl_1.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
render/stl_step_P0188_04_a_FrontElement_2x1_blank.stl_2.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
render/stl_step_P0188_05_a_FrontElement_2x2_blank.stl_1.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
render/stl_step_P0188_05_a_FrontElement_2x2_blank.stl_2.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 3.9 KiB |
BIN
render/stl_step_P0188_08_a_Diarahmen_2x2.stl_1.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
render/stl_step_P0188_08_a_Diarahmen_2x2.stl_2.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 3.3 KiB |
BIN
render/stl_step_P0188_17_a_FrontElement_1x1_Anzeige.stl_1.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
render/stl_step_P0188_17_a_FrontElement_1x1_Anzeige.stl_2.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 5.8 KiB |
BIN
render/stl_step_P0188_20_a_Wandhalter.step_1.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
render/stl_step_P0188_20_a_Wandhalter.step_2.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
render/stl_step_P0188_20_b_Wandhalter.step_1.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
render/stl_step_P0188_20_b_Wandhalter.step_2.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
render/stl_step_P0188_21_a_Haltescheibe.step_1.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
render/stl_step_P0188_21_a_Haltescheibe.step_2.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
render/stl_step_P0188_22_a_Kabelhalter_M2.step_1.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
render/stl_step_P0188_22_a_Kabelhalter_M2.step_2.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
render/stl_step_P0188_23_a_Kabelhalter_M3.step_1.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
render/stl_step_P0188_23_a_Kabelhalter_M3.step_2.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
render/stl_step_P0188_24_a_FrontElement_2x1_2mm_Buchse.stl_1.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
render/stl_step_P0188_24_a_FrontElement_2x1_2mm_Buchse.stl_2.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.2 KiB |
BIN
render/stl_step_P0188_27_a_FrontElement_2x2_blind_M3.stl_1.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
render/stl_step_P0188_27_a_FrontElement_2x2_blind_M3.stl_2.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.4 KiB |
@ -0,0 +1,214 @@
|
|||||||
|
/************************************************************************************
|
||||||
|
*
|
||||||
|
* P0180-30 World Domination Panel
|
||||||
|
*
|
||||||
|
*************************************************************************************
|
||||||
|
* for ARDUNINO MEGA2560
|
||||||
|
*
|
||||||
|
* Dependencies:
|
||||||
|
* Adafruit Neopixel 1.12.3
|
||||||
|
* https://github.com/adafruit/Adafruit_NeoPixel
|
||||||
|
*
|
||||||
|
*************************************************************************************
|
||||||
|
*
|
||||||
|
* 2024-09-07 xsider final P0180-30-a
|
||||||
|
*
|
||||||
|
*************************************************************************************/
|
||||||
|
|
||||||
|
#include <Adafruit_NeoPixel.h>
|
||||||
|
#include <avr/power.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define PINPIR 2
|
||||||
|
#define PINLEDBLUE 3
|
||||||
|
#define PINLEDGN 4
|
||||||
|
#define PINWS2812 6
|
||||||
|
#define PINLDR A2
|
||||||
|
#define PINPIR2 7
|
||||||
|
#define PINLEDBLUE2 8
|
||||||
|
#define PINPIR3 9
|
||||||
|
#define PINLEDBLUE3 10
|
||||||
|
#define PINPWRON 11
|
||||||
|
|
||||||
|
#define FIELDS (15*5)
|
||||||
|
|
||||||
|
#define NUMPIXELS FIELDS*6 /* 6 LEDs per field */
|
||||||
|
|
||||||
|
#define VERSION "P0188-30-a\n"
|
||||||
|
|
||||||
|
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PINWS2812, NEO_GRB + NEO_KHZ800);
|
||||||
|
|
||||||
|
int delayval = 20;
|
||||||
|
#define MAXLEN 254
|
||||||
|
char inputString[MAXLEN+1]; // a String to hold incoming data
|
||||||
|
int si=0;
|
||||||
|
const int datalength=7;
|
||||||
|
int a[datalength];
|
||||||
|
byte ColorStorage[FIELDS][6];
|
||||||
|
const char separator = ';';
|
||||||
|
bool blink = false;
|
||||||
|
unsigned long previousMillis = 0; // will store last time LED was updated
|
||||||
|
unsigned long lastpir = 0; // will store time last time PIR was active
|
||||||
|
const unsigned long interval = 500; // interval at which to blink (milliseconds)
|
||||||
|
const unsigned long PIRTIME = 600000L; // 10mins
|
||||||
|
unsigned long activeled;
|
||||||
|
const unsigned long ACTINTERVAL = 100;
|
||||||
|
byte charcount = 0;
|
||||||
|
int br = 0;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
pinMode(PINPIR,INPUT);
|
||||||
|
pinMode(PINLEDBLUE, OUTPUT);
|
||||||
|
pinMode(PINLEDGN, OUTPUT);
|
||||||
|
|
||||||
|
pixels.begin();
|
||||||
|
// initialize serial:
|
||||||
|
Serial.begin(115200);
|
||||||
|
Serial.write(VERSION);
|
||||||
|
// reserve 64 bytes for the inputString:
|
||||||
|
inputString[0]='\0';
|
||||||
|
for (int i=0;i<FIELDS;i++) {
|
||||||
|
for (int k=0;k<6;k++) {
|
||||||
|
ColorStorage[i][k]=0x1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
byte helligkeit;
|
||||||
|
unsigned long currentMillis;
|
||||||
|
|
||||||
|
if ( digitalRead(PINPIR) )
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDBLUE,HIGH);
|
||||||
|
lastpir = millis();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDBLUE,LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( digitalRead(PINPIR2) )
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDBLUE2,HIGH);
|
||||||
|
lastpir = millis();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDBLUE2,LOW);
|
||||||
|
}
|
||||||
|
if ( digitalRead(PINPIR3) )
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDBLUE3,HIGH);
|
||||||
|
lastpir = millis();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDBLUE3,LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* the serial routine is lossy because ws2812 serial out is blocking */
|
||||||
|
/* host repeats requests until it is received correct */
|
||||||
|
|
||||||
|
if (Serial.available()) {
|
||||||
|
// get the new byte:
|
||||||
|
char inChar = (char)Serial.read();
|
||||||
|
/* string is finished, we can process it */
|
||||||
|
if (inChar == '\n' )
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDGN,HIGH);
|
||||||
|
activeled=millis();
|
||||||
|
inputString[charcount]='\n';
|
||||||
|
Serial.print((char*)inputString ); /* messsage processed */
|
||||||
|
charcount = 0;
|
||||||
|
char* ptr = strtok(inputString, ";");
|
||||||
|
byte ip =0;
|
||||||
|
while (ptr && ip<datalength)
|
||||||
|
{
|
||||||
|
a[ip]=atoi(ptr);
|
||||||
|
ptr= strtok(NULL, ";");
|
||||||
|
ip++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* if packet is not long enough, there are missing data, so no processing is done */
|
||||||
|
if (ip==7)
|
||||||
|
{
|
||||||
|
if ( a[0] < FIELDS )
|
||||||
|
{
|
||||||
|
for (int k=0;k<6;k++)
|
||||||
|
{
|
||||||
|
ColorStorage[ a[0] ][k] = a[k+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// add it to the inputString:
|
||||||
|
if ( charcount < MAXLEN )
|
||||||
|
{
|
||||||
|
inputString[charcount] = inChar;
|
||||||
|
charcount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
currentMillis = millis();
|
||||||
|
//@todo: handling millis() overflow
|
||||||
|
|
||||||
|
/* this increases LED on tune for communication LED */
|
||||||
|
if ( currentMillis - activeled > ACTINTERVAL )
|
||||||
|
{
|
||||||
|
digitalWrite(PINLEDGN,LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* run this every second */
|
||||||
|
if (currentMillis - previousMillis >= interval)
|
||||||
|
{
|
||||||
|
previousMillis = currentMillis;
|
||||||
|
br = ( br + analogRead(PINPIR) ) /2 ; /* simple average */
|
||||||
|
helligkeit = map( (br>200 ? 200 : br ) , 0, 200, 100, 5);
|
||||||
|
if ( currentMillis - lastpir > PIRTIME )
|
||||||
|
{
|
||||||
|
/* we have no motion for long time */
|
||||||
|
/* display minimal time */
|
||||||
|
/* switch off power supplies */
|
||||||
|
pixels.setBrightness(2);
|
||||||
|
digitalWrite(PINPWRON,LOW);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* power supply on */
|
||||||
|
digitalWrite(PINPWRON,HIGH);
|
||||||
|
|
||||||
|
if ( blink)
|
||||||
|
{
|
||||||
|
for ( int l=0; l<FIELDS; l++ )
|
||||||
|
{
|
||||||
|
for (int k=0;k<3;k++)
|
||||||
|
{
|
||||||
|
pixels.setPixelColor( (l)*3+k+((l ) / 5)*15, pixels.Color(ColorStorage[l][0],ColorStorage[l][1],ColorStorage[l][2] ) );
|
||||||
|
pixels.setPixelColor( (l)*3+k+(( l ) / 5)*15 + 27- (l % 5 )*6, pixels.Color(ColorStorage[l][0],ColorStorage[l][1],ColorStorage[l][2] ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for ( int l=0;l<FIELDS;l++ )
|
||||||
|
{
|
||||||
|
for (int k=0;k<3;k++)
|
||||||
|
{
|
||||||
|
pixels.setPixelColor( (l)*3+k+((l ) / 5)*15, pixels.Color(ColorStorage[l][3],ColorStorage[l][4],ColorStorage[l][5]) );
|
||||||
|
pixels.setPixelColor( (l)*3+k+(( l ) / 5)*15 + 27- (l % 5 )*6, pixels.Color(ColorStorage[l][3],ColorStorage[l][4],ColorStorage[l][5] )) ;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pixels.setBrightness(helligkeit);
|
||||||
|
}
|
||||||
|
|
||||||
|
pixels.show();
|
||||||
|
blink = !blink;
|
||||||
|
}
|
||||||
|
}
|
424
software/P0188-31_Statusserver/statuswebserver.py
Normal file
@ -0,0 +1,424 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# P0188
|
||||||
|
#
|
||||||
|
# World domination panel
|
||||||
|
#
|
||||||
|
# This software checks status of systems (Ping/Website/MQTT)
|
||||||
|
# and writes status out to serial interface for
|
||||||
|
# RGB-LED-stripe
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# 2024-09-08 xsider version for public
|
||||||
|
# 2024-08-28 xsider code cleanup
|
||||||
|
# 2024-08-21 xsider created
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
from http.server import HTTPServer, BaseHTTPRequestHandler #Python’s built-in library
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
from threading import Thread
|
||||||
|
import serial
|
||||||
|
import queue
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
from enum import Enum,auto
|
||||||
|
from ping3 import ping
|
||||||
|
|
||||||
|
hostName = "0.0.0.0"
|
||||||
|
serverPort = 8082 #You can choose any available port; by default, it is 8000
|
||||||
|
|
||||||
|
DISPTTY="/dev/ttyACM0"
|
||||||
|
DISPBAUD=115200
|
||||||
|
|
||||||
|
MQTTHOST="sigint5.internal"
|
||||||
|
MQTTPORT=1883
|
||||||
|
|
||||||
|
brightness = 0
|
||||||
|
|
||||||
|
# this is a replacement for enum
|
||||||
|
BLACK = "BLACK"
|
||||||
|
RED = "RED"
|
||||||
|
GREEN = "GREEN"
|
||||||
|
BLUE = "BLUE"
|
||||||
|
YELLOW = "YELLOW"
|
||||||
|
WHITE = "WHITE"
|
||||||
|
|
||||||
|
NOBLINK = False
|
||||||
|
BLINK = True
|
||||||
|
|
||||||
|
colordef = { BLACK : { "html" : "000000", "rgb" : b";0;0;0" },
|
||||||
|
RED : { "html" : "FF0000", "rgb" : b";255;0;0" },
|
||||||
|
GREEN : { "html" : "00FF00", "rgb" : b";0;255;0" },
|
||||||
|
BLUE : { "html" : "7070FF", "rgb": b";0;0;255" },
|
||||||
|
YELLOW : { "html" : "FFFF00", "rgb" : b";255;255;0" },
|
||||||
|
WHITE : { "html" : "FFFFFF", "rgb" : b";255;255;255" }
|
||||||
|
}
|
||||||
|
|
||||||
|
class AlarmTyp(Enum):
|
||||||
|
RUHE = auto()
|
||||||
|
TEST = auto()
|
||||||
|
|
||||||
|
q = queue.Queue()
|
||||||
|
|
||||||
|
hostlist = [
|
||||||
|
[0,"192.168.0.1","Router<br>AP EG",WHITE,NOBLINK,RED,NOBLINK],
|
||||||
|
[1,"192.168.0.2","Blackfin<br>Server",WHITE,NOBLINK,RED,BLINK],
|
||||||
|
[2,"192.168.0.3","Coreswitch",WHITE,NOBLINK,RED,BLINK],
|
||||||
|
[3,"192.168.0.4","Odin<br>Fileserver",WHITE,NOBLINK,RED,NOBLINK],
|
||||||
|
[4,"192.168.0.5","Thor<br>Mailserver", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[5,"192.168.0.6","Tyr<br>Webserver", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[6,"192.168.0.7","Frigg<br>Loginserver", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[7,"192.168.0.8","Fulla<br>Lizenzserver", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[8,"192.168.0.9","Observer 1", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[9,"192.168.0.10","Sigint 5", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[10,"192.168.0.11","AP4<br>1.OG Nord", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[11,"192.168.0.12","AP7<br>1.OG SÜd", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[12,"192.168.0.13","AP5<br>2.OG", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[13,"192.168.0.14","Bridge<br>3.OG", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[14,"192.168.0.15","AP3<br>Labor", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
|
||||||
|
[15,"192.168.0.16","Blitzortung", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[16,"192.168.0.17","urad<br>Monitor", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[17,"192.168.0.18","Feinstaub<br>Sensor", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[18,"192.168.0.19","Kiwi<br>SDR",WHITE , NOBLINK, BLACK, NOBLINK],
|
||||||
|
[19,"192.168.0.20","LoRaWAN<br>Gateway", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[20,"192.168.0.21","APC1", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[21,"192.168.0.22","APC2", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[22,"192.168.0.23","APC3", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[23,"192.168.0.24","Laborraum 4", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[24,"192.168.0.25","Kamera 2", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[25,"192.168.0.26","Kamera 4", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
|
||||||
|
[32,"192.168.0.33","Hamclock", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[33,"192.168.0.34","Manik<br>Backup", WHITE, NOBLINK, RED, NOBLINK],
|
||||||
|
[34,"192.168.0.35","Automatix<br>CNC-Fräse", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[35,"192.168.0.36","Indra<br>Solarmess", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[36,"192.168.0.37","Shiva<br>Bat.umschaltung", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
|
||||||
|
[38,"192.168.0.39","Redpitaya", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[39,"192.168.0.40","Rigol<br>Oszi", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[40,"192.168.0.41","Rigol<br>Spektrum", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[41,"192.168.0.42","Rigol<br>DMM", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[42,"192.168.0.43","Rigol<br>Arb.gen", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[43,"192.168.0.44","Victron<br>Gateway", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[44,"192.168.0.45","Roboterarm", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
|
||||||
|
[45,"192.168.0.46","Unmatched<br>RISC V", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[46,"192.168.0.47","Drucker<br>A4 Labor", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[47,"192.168.0.48","Drucker<br>A3 Labor", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[48,"192.168.0.49","DSKY", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[49,"192.168.0.50","Oc 5", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
|
||||||
|
[60,"192.168.0.61","Arbeitsplatz<br>EG", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[61,"192.168.0.62","Drucker<br>EG", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[62,"192.168.0.63","Inferno<br>1.OG", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[63,"192.168.0.64","Drucker<br>1.OG", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[64,"192.168.0.65","Eb<br>Wetterstation", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[65,"192.168.0.66","Sigint 2<br>NOAA Sat.", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[66,"192.168.0.67","Weishaupt<br>Heizung", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[67,"192.168.0.68","Wago 1<br>SPS", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[68,"192.168.0.69","VUZero", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
[69,"192.168.0.70","Vishnu<br>Thermodrucker", WHITE, NOBLINK, BLACK, NOBLINK],
|
||||||
|
]
|
||||||
|
|
||||||
|
colorlist= ["666666"]*15*5
|
||||||
|
textlist=[""]*15*5
|
||||||
|
blinklist=[0]*15*5
|
||||||
|
funkok=False
|
||||||
|
funktest=False
|
||||||
|
|
||||||
|
def set_color( field, color, blink ):
|
||||||
|
sendstr = b"%d" % field
|
||||||
|
colorlist[field] = colordef[color]["html"]
|
||||||
|
blinklist[field] = blink
|
||||||
|
sendstr += colordef[color]["rgb"]
|
||||||
|
if ( blink ):
|
||||||
|
sendstr += colordef[BLACK]["rgb"]
|
||||||
|
else:
|
||||||
|
sendstr += colordef[color]["rgb"]
|
||||||
|
sendstr += b"\n"
|
||||||
|
q.put(sendstr)
|
||||||
|
|
||||||
|
|
||||||
|
TOPIC_POC=[("funk/+/ok/#",1), # Netzkennung
|
||||||
|
("funk/+/test/#",1), # Testkennung
|
||||||
|
]
|
||||||
|
|
||||||
|
def on_connect(client,userdata,flags,reason_code,properties):
|
||||||
|
print(f"Connected with result code {reason_code}")
|
||||||
|
for e in TOPIC_POC:
|
||||||
|
mqttclient.subscribe(e)
|
||||||
|
print("Subscribed", e)
|
||||||
|
|
||||||
|
def on_disconnet(client,userdata,rc):
|
||||||
|
print("Disconnect with result code"+str(rc))
|
||||||
|
time.sleep(1)
|
||||||
|
mqttclient.reconnect()
|
||||||
|
|
||||||
|
def on_message(client,userdata,msg):
|
||||||
|
|
||||||
|
global funkok,funktest
|
||||||
|
topic = msg.topic
|
||||||
|
|
||||||
|
Void,quelle,kennung,sub = topic.split("/")
|
||||||
|
|
||||||
|
if ( kennung == "ok" ):
|
||||||
|
funkok=True
|
||||||
|
if ( kennung == "test" ):
|
||||||
|
funktest=True
|
||||||
|
|
||||||
|
# old mosquitto_lib
|
||||||
|
#mqttclient=mqtt.Client(client_id="Anzeige",clean_session=False)
|
||||||
|
|
||||||
|
# new mosquitto_lib
|
||||||
|
mqttclient = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
|
||||||
|
|
||||||
|
mqttclient.on_connect = on_connect
|
||||||
|
mqttclient.on_message = on_message
|
||||||
|
|
||||||
|
def funk_observe():
|
||||||
|
global funkok,funktest
|
||||||
|
timeoutfunk=time.time()
|
||||||
|
timeoutfunktest=time.time()
|
||||||
|
funkstate=AlarmTyp.RUHE
|
||||||
|
|
||||||
|
textlist[70] = "Funk OK"
|
||||||
|
while ( True ):
|
||||||
|
try:
|
||||||
|
if funkok:
|
||||||
|
timeoutfunk = time.time()
|
||||||
|
funkok=False;
|
||||||
|
if funkstate != AlarmTyp.TEST : # a test alarm is running, so keep green light instead of white
|
||||||
|
set_color( 70, WHITE, NOBLINK )
|
||||||
|
|
||||||
|
if funktest:
|
||||||
|
timeoutfunktest = time.time()
|
||||||
|
funkstate = AlarmTyp.TEST
|
||||||
|
funktest=False
|
||||||
|
set_color(70, GREEN, NOBLINK )
|
||||||
|
|
||||||
|
if funkstate == AlarmTyp.TEST and time.time() > (timeoutfunktest + 15*60):
|
||||||
|
funkstate = AlarmTyp.RUHE
|
||||||
|
# whitecolor comes from next LoRaWAN signal
|
||||||
|
|
||||||
|
if time.time() > ( timeoutfunk + 200 ): # no LoRaWAN for 3 minutes, color red
|
||||||
|
timeoutfunk = time.time()
|
||||||
|
set_color(70, RED, NOBLINK )
|
||||||
|
|
||||||
|
except Exception as error:
|
||||||
|
print ("Error: ", error)
|
||||||
|
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
def HostUp(hostname):
|
||||||
|
# '''Function returns True if host IP returns a ping, else False'''
|
||||||
|
if ping(hostname,timeout=1):
|
||||||
|
HOST_UP = True
|
||||||
|
else:
|
||||||
|
HOST_UP = False
|
||||||
|
return HOST_UP
|
||||||
|
|
||||||
|
def ping_hosts():
|
||||||
|
for i in hostlist:
|
||||||
|
textlist[ i[0] ] = i[2]
|
||||||
|
|
||||||
|
while True:
|
||||||
|
for i in hostlist:
|
||||||
|
if HostUp( i[1] ):
|
||||||
|
set_color( i[0], i[3], i[4] )
|
||||||
|
# send a rgb string to display
|
||||||
|
time.sleep(1) # this is mandatory for slow down ping for prevent ping slowdown for unprivileged users
|
||||||
|
else:
|
||||||
|
set_color( i[0], i[5], i[6] )
|
||||||
|
|
||||||
|
from urllib.request import urlopen
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
|
||||||
|
def decode_prusa_status( fieldnumber, statustext ):
|
||||||
|
if statustext == 'IDLE' or statustext == 'FINISHED' or statustext == 'READY':
|
||||||
|
set_color( fieldnumber, WHITE, NOBLINK )
|
||||||
|
|
||||||
|
if statustext == 'PRINTING':
|
||||||
|
set_color( fieldnumber, GREEN, NOBLINK )
|
||||||
|
|
||||||
|
if statustext == 'BUSY' or statustext == 'PAUSED' or statustext == 'STOPPED' or statustext == 'ATTENTION':
|
||||||
|
set_color( fieldnumber, YELLOW, NOBLINK )
|
||||||
|
|
||||||
|
if statustext == 'ERROR':
|
||||||
|
set_color( fieldnumber, RED, NOBLINK )
|
||||||
|
|
||||||
|
def decode_octopi_status( fieldnumber, statustext ):
|
||||||
|
if statustext == "Printing":
|
||||||
|
set_color( fieldnumber, GREEN, NOBLINK )
|
||||||
|
elif statustext == "Error" or statustext == "Offline after error":
|
||||||
|
set_color( fieldnumber, RED, NOBLINK )
|
||||||
|
elif statustext == "Operational":
|
||||||
|
set_color( fieldnumber, WHITE, NOBLINK )
|
||||||
|
else:
|
||||||
|
set_color( fieldnumber, YELLOW, NOBLINK )
|
||||||
|
|
||||||
|
|
||||||
|
def check_websites():
|
||||||
|
textlist[74] = "Aktivität < 50 cpm"
|
||||||
|
textlist[26] = "Ultimaker"
|
||||||
|
textlist[27] = "Prusa<br>MK3 MMU2"
|
||||||
|
textlist[28] = "Prusa<br>MK3+"
|
||||||
|
textlist[29] = "Prusa<br>Mini+"
|
||||||
|
textlist[30] = "Prusa<br>XL"
|
||||||
|
textlist[31] = "Prusa<br>SL1"
|
||||||
|
headersmk3={'X-Api-Key': 'keymk3'}
|
||||||
|
headersmmu={'X-Api-Key': 'keymmu'}
|
||||||
|
headersmin={'X-Api-Key': 'keymini'}
|
||||||
|
headersxl={'X-Api-Key': 'keyxl'}
|
||||||
|
headersulti={'X-Api-Key': 'keyulti'}
|
||||||
|
authsl = requests.auth.HTTPDigestAuth('maker','123456')
|
||||||
|
while (True):
|
||||||
|
time.sleep(60)
|
||||||
|
try:
|
||||||
|
r = requests.get("http://geiger.local/j")
|
||||||
|
a = r.json()
|
||||||
|
value = a["data"]["cpm"]
|
||||||
|
if value < 50:
|
||||||
|
set_color( 74, WHITE, NOBLINK )
|
||||||
|
else:
|
||||||
|
set_color( 74, RED, BLINK )
|
||||||
|
except:
|
||||||
|
set_color( 74, BLACK, NOBLINK )
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = requests.get('http://octopi.local/api/job', headers=headersulti )
|
||||||
|
a = r.json()
|
||||||
|
decode_octopi_status(26, a['state'] )
|
||||||
|
except:
|
||||||
|
set_color( 26, BLACK, NOBLINK )
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = requests.get('http://prusamk3mmu.local/api/v1/status', headers=headersmmu)
|
||||||
|
a = r.json()
|
||||||
|
decode_prusa_status(27, a['printer']['state'])
|
||||||
|
except:
|
||||||
|
set_color( 27, BLACK, NOBLINK )
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = requests.get('http://prusamk3.local/api/v1/status', headers=headersmk3)
|
||||||
|
a = r.json()
|
||||||
|
decode_prusa_status(28, a['printer']['state'])
|
||||||
|
except:
|
||||||
|
set_color( 28, BLACK, NOBLINK )
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = requests.get('http://prusamini.local/api/v1/status', headers=headersmin)
|
||||||
|
a = r.json()
|
||||||
|
decode_prusa_status(29, a['printer']['state'])
|
||||||
|
except:
|
||||||
|
set_color( 29, BLACK, NOBLINK )
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = requests.get('http://prusaxl.local/api/v1/status', headers=headersxl)
|
||||||
|
a = r.json()
|
||||||
|
decode_prusa_status(30, a['printer']['state'])
|
||||||
|
except:
|
||||||
|
set_color( 30, BLACK, NOBLINK )
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = requests.get('http://prusasl1.local/api/printer', auth=authsl)
|
||||||
|
a = r.json()
|
||||||
|
decode_prusa_status(31, a['state']['text'].upper())
|
||||||
|
except:
|
||||||
|
set_color( 31, BLACK, NOBLINK )
|
||||||
|
|
||||||
|
|
||||||
|
def serialcommunication():
|
||||||
|
ser = serial.Serial( DISPTTY,DISPBAUD, timeout=1)
|
||||||
|
time.sleep(1) # wait for ARDUINO for wake up
|
||||||
|
ser.reset_input_buffer()
|
||||||
|
ser.write(b"\n")
|
||||||
|
a = ser.readline() # read buffers
|
||||||
|
if ( a != b''):
|
||||||
|
# System not ready yet
|
||||||
|
time.sleep(1)
|
||||||
|
else:
|
||||||
|
print("System Ready")
|
||||||
|
while True:
|
||||||
|
item = q.get(block=True)
|
||||||
|
a = b'-'
|
||||||
|
while ( a != item ):
|
||||||
|
ser.reset_input_buffer()
|
||||||
|
ser.write(item)
|
||||||
|
a = ser.readline()
|
||||||
|
if ( a != item ):
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
|
class MyServer(BaseHTTPRequestHandler):
|
||||||
|
# make log quiet
|
||||||
|
def log_message(self, format, *args):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def do_GET(self): #the do_GET method is inherited from BaseHTTPRequestHandler
|
||||||
|
self.send_response(200)
|
||||||
|
self.send_header("Content-type", "text/html")
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write("<!DOCTYPE html>\n".encode() )
|
||||||
|
self.wfile.write("<html>\n".encode() )
|
||||||
|
self.wfile.write("<head>\n".encode() )
|
||||||
|
self.wfile.write("<meta charset=\"UTF-8\">\n".encode() )
|
||||||
|
self.wfile.write("<title>World Domination Status</title><meta http-equiv=\"refresh\" content=\"15\">".encode() )
|
||||||
|
self.wfile.write("</head>".encode() )
|
||||||
|
self.wfile.write("<body>".encode() )
|
||||||
|
self.wfile.write("\n<style>table,th,td {border: 1px solid black;border-collapse:collapse;text-align:center}\n".encode())
|
||||||
|
self.wfile.write(".blink_me { animation: blinker 1s linear infinite; }\n".encode () )
|
||||||
|
self.wfile.write("@keyframes blinker {50% { opacity: 0; } }\n".encode() )
|
||||||
|
self.wfile.write("</style>\n".encode() )
|
||||||
|
self.wfile.write("<h1>World Domination Panel</h1>".encode())
|
||||||
|
# define len of total entries, create table 5x3
|
||||||
|
totallen = len(colorlist)
|
||||||
|
|
||||||
|
for i in range( int(totallen/15) ):
|
||||||
|
self.wfile.write( "<table style=\"width:800px;font-family:osifont;font-size:20px\">\n".encode() )
|
||||||
|
for j in range(3):
|
||||||
|
self.wfile.write( "<tr style=\"height:80px\">".encode() )
|
||||||
|
for k in range(5):
|
||||||
|
self.wfile.write( ("<td style=\"width:20%; background-color:#" + colorlist[i*15+j*5+k] + \
|
||||||
|
( ";color:lightgray" if colorlist[i*15+j*5+k] == "000000" else " " ) + \
|
||||||
|
"\">" + \
|
||||||
|
( "<div class=\"blink_me\"> " if blinklist[i*15+j*5+k] else " " ) + \
|
||||||
|
textlist[i*15+j*5+k] + \
|
||||||
|
( "</div> " if blinklist[i*15+j*5+k] else " " ) + \
|
||||||
|
"</td>")\
|
||||||
|
.encode() )
|
||||||
|
|
||||||
|
|
||||||
|
self.wfile.write( "</tr>\n".encode() )
|
||||||
|
|
||||||
|
self.wfile.write( "</table><p>\n".encode() )
|
||||||
|
|
||||||
|
self.wfile.write( "</body></html>".encode() )
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
thread = Thread( target = ping_hosts, daemon=True )
|
||||||
|
thread2 = Thread( target = serialcommunication,daemon=True )
|
||||||
|
thread3 = Thread( target = funk_observe,daemon=True )
|
||||||
|
thread4 = Thread( target = check_websites,daemon=True )
|
||||||
|
thread.start()
|
||||||
|
thread2.start()
|
||||||
|
thread3.start()
|
||||||
|
thread4.start()
|
||||||
|
|
||||||
|
webServer = HTTPServer((hostName, serverPort), MyServer)
|
||||||
|
print("Server started http://%s:%s" % (hostName, serverPort)) #Server starts
|
||||||
|
mqttclient.connect(MQTTHOST, port=MQTTPORT,keepalive=60)
|
||||||
|
print("MQTT")
|
||||||
|
mqttclient.loop_start()
|
||||||
|
try:
|
||||||
|
webServer.serve_forever()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
mqttclient.loop_stop()
|
||||||
|
webServer.server_close() #Executes when you hit a keyboard interrupt, closing the server
|
||||||
|
|
||||||
|
print("Server stopped.")
|