56 lines
1.6 KiB
OpenSCAD
56 lines
1.6 KiB
OpenSCAD
// Parameter
|
||
deckel_laenge = 100;
|
||
deckel_breite = 68;
|
||
deckel_hoehe = 5;
|
||
|
||
eckradius = 5;
|
||
wandstaerke = 2;
|
||
|
||
loch_rect_x = 50;
|
||
loch_rect_y = 25;
|
||
loch_rund_d = 20;
|
||
abstand_rund_von_rect = 20; // Abstand mittig unter dem Rechteck
|
||
|
||
schraubloch_d = 3.5; // Durchmesser für Schrauben (z. B. M3)
|
||
schraub_abstand_von_rand = 3; // Abstand vom Rand zur Lochmitte
|
||
|
||
$fn = 60; // Feinheit für Rundungen
|
||
|
||
// Hauptkörper mit abgerundeten Ecken
|
||
difference() {
|
||
// Abgerundeter Deckel
|
||
rounded_box(deckel_laenge, deckel_breite, deckel_hoehe, eckradius);
|
||
|
||
// Rechteckiges Loch oben (zentriert)
|
||
translate([
|
||
(deckel_laenge - loch_rect_x)/2,
|
||
(deckel_breite - loch_rect_y)/2 + 10,
|
||
-1
|
||
])
|
||
cube([loch_rect_x, loch_rect_y, deckel_hoehe + 2]);
|
||
|
||
// Rundes Loch unter dem Rechteck (zentriert darunter)
|
||
translate([
|
||
deckel_laenge / 2,
|
||
(deckel_breite / 2) - abstand_rund_von_rect,
|
||
-1
|
||
])
|
||
cylinder(h = deckel_hoehe + 2, d = loch_rund_d);
|
||
|
||
// Schraublöcher korrekt an den vier Ecken platzieren
|
||
offset = eckradius - 0.01; // Minkowski erweitert die Ecken nach außen
|
||
|
||
for (x = [schraub_abstand_von_rand, deckel_laenge - offset - schraub_abstand_von_rand])
|
||
for (y = [ schraub_abstand_von_rand, deckel_breite - offset - schraub_abstand_von_rand])
|
||
translate([x, y, -1])
|
||
cylinder(h = deckel_hoehe + 2, d = schraubloch_d);
|
||
}
|
||
|
||
// Funktion: Rechteck mit abgerundeten Ecken
|
||
module rounded_box(l, b, h, r) {
|
||
minkowski() {
|
||
cube([l - 2*r, b - 2*r, h]);
|
||
cylinder(r=r, h=0.01);
|
||
}
|
||
}
|