// 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); } }