59 lines
2.8 KiB
OpenSCAD
59 lines
2.8 KiB
OpenSCAD
// Gemeinsame Einstellungen und Maße für wortfolie.scad, rueckwand.scad und
|
|
// trennwaende.scad. Wird per include eingebunden, hier die Rahmengröße wählen.
|
|
|
|
// ---------- Rahmen ----------
|
|
// Rahmengröße (Bildfläche des IKEA SANNAHED): 25, 35 oder 50 (cm)
|
|
rahmen_cm = 25; // [25, 35, 50]
|
|
|
|
spiel_mm = 1; // Luft pro Seite zwischen Platte/Folie und Rahmen-Innenmaß
|
|
rand_mm = 15; // freier Rand von der Kante bis zum Buchstabenfeld
|
|
// (Rahmenfalz verdeckt ca. 1 cm der Bildfläche)
|
|
minutenpunkte = false; // 4 Punkte/LEDs in den Ecken für die Minuten
|
|
|
|
// ---------- Material und Aufbau ----------
|
|
mdf_mm = 2.5; // Materialstärke der Rückwand und der Trennwände
|
|
tiefe_mm = 20; // Höhe der Trennwände (Abstand Rückwand bis Folie)
|
|
toleranz = 0.2; // Luft in Stecklöchern
|
|
schlitz_b = 10; // Breite der Füße/Schlitze der Trennwände
|
|
|
|
// ---------- Raster ----------
|
|
spalten = 11;
|
|
zeilen = 10;
|
|
|
|
// Wörter mit LED-Streifen: [Zeile, erste Spalte, Anzahl Buchstaben, Name]
|
|
// Zeile 0 = oben, Spalte 0 = links. Das "S" von EINS ist ein eigener Streifen,
|
|
// damit es bei "ein Uhr" (EIN) aus und bei "viertel vor eins" (EINS) an sein kann.
|
|
woerter = [
|
|
[0, 0, 2, "ES"], [0, 3, 3, "IST"], [0, 7, 4, "FÜNF"],
|
|
[1, 0, 7, "ZWANZIG"], [1, 7, 4, "ZEHN"],
|
|
[2, 0, 7, "VIERTEL"], [2, 8, 3, "VOR"],
|
|
[3, 0, 4, "HALB"], [3, 4, 3, "NTP"], [3, 7, 4, "NACH"],
|
|
[4, 0, 4, "NEUN"], [4, 4, 3, "API"], [4, 7, 4, "FÜNF"],
|
|
[5, 0, 4, "ZWEI"], [5, 4, 3, "RTC"], [5, 7, 3, "EIN"], [5, 10, 1, "S"],
|
|
[6, 0, 4, "DREI"], [6, 4, 3, "ESP"], [6, 7, 4, "VIER"],
|
|
[7, 0, 4, "ACHT"], [7, 6, 5, "SECHS"],
|
|
[8, 0, 6, "SIEBEN"], [8, 6, 5, "ZWÖLF"],
|
|
[9, 0, 3, "UHR"], [9, 4, 3, "ELF"], [9, 7, 4, "ZEHN"]
|
|
];
|
|
|
|
// Trennwand n (1 = oben) steht zwischen Zeile n-1 und n. Ihre drei Füße stecken in
|
|
// diesen Spalten der Rückwand. Jede Kombination gibt es nur einmal, auch gespiegelt:
|
|
// so passt jede Wand nur an genau eine Stelle.
|
|
fuss_spalten = [
|
|
[2, 3, 5], [4, 6, 8], [3, 4, 5], [4, 5, 8], [2, 4, 7],
|
|
[3, 6, 7], [6, 7, 8], [2, 4, 5], [2, 3, 7]
|
|
];
|
|
|
|
// ---------- Berechnung ----------
|
|
platte = rahmen_cm * 10 - 2 * spiel_mm; // Kantenlänge von Platte/Folie
|
|
feld = platte - 2 * rand_mm; // Kantenlänge des Buchstabenfelds
|
|
raster_a = feld / spalten; // Zellenabstand (quadratische Zellen)
|
|
mass = raster_a / 19.8; // Skalierung der Beschriftung
|
|
|
|
// Zellenmitte (Spalte s, Zeile z), Ursprung = Plattenmitte, y nach oben
|
|
function zx(s) = (s - (spalten - 1) / 2) * raster_a;
|
|
function zy(z) = ((zeilen - 1) / 2 - z) * raster_a;
|
|
|
|
// y-Mitte der Trennwand n (n = 1 .. zeilen-1), zwischen Zeile n-1 und n
|
|
function wand_y(n) = (zy(n - 1) + zy(n)) / 2;
|