OpenSCAD-Vorlage fuer Rueckwand (SANNAHED 25/35/50 cm umschaltbar)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
18e137c2d2
commit
8ee13b92b4
1 file changed
+82
@@ -0,0 +1,82 @@
|
||||
// Rückwand der Wortuhr (Trägerplatte für die LEDs) für IKEA SANNAHED
|
||||
// Vorlage: cad/ALT/Rueckwand-mit-Gravuren.dxf (abgeschrägte Ecke oben links,
|
||||
// LED-Markierungen als Kreise, Durchführungen für die Kabel, Richtungspfeil).
|
||||
// Das LED-Raster ist identisch mit wortfolie.scad, damit LEDs und Buchstaben passen.
|
||||
//
|
||||
// Export als 2D: F6 rendern, dann Datei -> Export -> als DXF / SVG.
|
||||
// Für den Laser: erst teil = "schneiden", dann teil = "gravur" exportieren.
|
||||
|
||||
// ---------- Einstellungen ----------
|
||||
// Rahmengröße (Bildfläche des SANNAHED): 25, 35 oder 50 (cm)
|
||||
rahmen_cm = 25; // [25, 35, 50]
|
||||
|
||||
// Welcher Teil soll ausgegeben werden?
|
||||
teil = "beide"; // ["beide" (Vorschau), "schneiden", "gravur"]
|
||||
|
||||
spiel_mm = 1; // Luft pro Seite zwischen Platte und Rahmen-Innenmaß
|
||||
rand_mm = 15; // wie in wortfolie.scad (muss gleich bleiben!)
|
||||
fase_anteil = 0.087; // abgeschrägte Ecke oben links, relativ zur Plattenkante
|
||||
led_marke_d = 5; // Ø der LED-Markierungen (Gravur)
|
||||
schlitz_b = 10; // Kabeldurchführung zwischen den Zeilen (Breite)
|
||||
schlitz_h = 3.5; // und Höhe
|
||||
pfeil_l = 12; // Länge des Richtungspfeils (Gravur)
|
||||
dicke_mm = 0; // 0 = flache 2D-Ausgabe (für Laser/DXF), >0 = 3D-Vorschau
|
||||
|
||||
// ---------- Raster ----------
|
||||
spalten = 11;
|
||||
zeilen = 10;
|
||||
|
||||
platte = rahmen_cm * 10 - 2 * spiel_mm;
|
||||
feld = platte - 2 * rand_mm;
|
||||
raster_a = feld / spalten;
|
||||
fase = platte * fase_anteil;
|
||||
|
||||
// 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;
|
||||
|
||||
// ---------- Teile ----------
|
||||
module umriss() {
|
||||
h = platte / 2;
|
||||
polygon([[-h + fase, h], [h, h], [h, -h], [-h, -h], [-h, h - fase]]);
|
||||
}
|
||||
|
||||
// Kabeldurchführungen: die LED-Reihen laufen im Zickzack,
|
||||
// Zeile 0 von links nach rechts, Zeile 1 zurück usw.
|
||||
module schlitze() {
|
||||
for (z = [0 : zeilen - 2])
|
||||
translate([zx(z % 2 == 0 ? spalten - 1 : 0), (zy(z) + zy(z + 1)) / 2])
|
||||
square([schlitz_b, schlitz_h], center = true);
|
||||
}
|
||||
|
||||
module led_marken() {
|
||||
for (z = [0 : zeilen - 1], s = [0 : spalten - 1])
|
||||
translate([zx(s), zy(z)]) circle(d = led_marke_d, $fn = 32);
|
||||
}
|
||||
|
||||
// Pfeil in Laufrichtung der ersten Zeile (nach rechts), über Zeile 0
|
||||
module pfeil() {
|
||||
translate([zx(0), zy(0) + raster_a * 0.75]) {
|
||||
translate([0, -pfeil_l * 0.07]) square([pfeil_l * 0.6, pfeil_l * 0.14]);
|
||||
translate([pfeil_l * 0.6, 0])
|
||||
polygon([[0, -pfeil_l * 0.18], [pfeil_l * 0.4, 0], [0, pfeil_l * 0.18]]);
|
||||
}
|
||||
}
|
||||
|
||||
module schnitt() { difference() { umriss(); schlitze(); } }
|
||||
module gravur() { led_marken(); pfeil(); }
|
||||
|
||||
// "beide" ist nur eine Vorschau: die Gravur erscheint als Aussparung in der Platte.
|
||||
// Zum Lasern teil = "schneiden" und teil = "gravur" getrennt exportieren.
|
||||
module ausgabe_2d() {
|
||||
if (teil == "schneiden") schnitt();
|
||||
else if (teil == "gravur") gravur();
|
||||
else difference() { schnitt(); gravur(); }
|
||||
}
|
||||
|
||||
if (dicke_mm > 0) {
|
||||
linear_extrude(dicke_mm) schnitt();
|
||||
if (teil != "schneiden") translate([0, 0, dicke_mm]) linear_extrude(0.2) gravur();
|
||||
} else ausgabe_2d();
|
||||
|
||||
echo(str("Platte ", platte, " x ", platte, " mm, Zellenabstand ", raster_a, " mm"));
|
||||
Reference in new issue
Block a user