-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlid.scad
More file actions
58 lines (52 loc) · 2.14 KB
/
Copy pathlid.scad
File metadata and controls
58 lines (52 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// =====================================================================
// lid.scad - Deckplatte (Steck-System v2)
// Flache, GESCHLOSSENE 3-mm-Platte über die volle Grundfläche 200×150
// (wie der Boden). Obere Außenkante R5 gerundet, Unterseite plan (liegt
// auf den Wänden auf). 8 SACKLÖCHER Ø5,1 (Tiefe peg_hole_dep) von unten
// für die Wand-Oberzapfen. Dünnes Voronoi-Relief oben (nur Deko).
// Lokales z = 0..lid_t (Unterseite unten); im Assembly auf z=box_h gesetzt.
// Render einzeln: openscad -o lid.stl lid.scad
// =====================================================================
include <params.scad>
include <voronoi_data.scad>
use <voronoi.scad>
module rrect(w, d, r)
translate([r, r]) offset(r = r, $fn = 48) square([w - 2*r, d - 2*r]);
// Plattenrohling mit gerundeter UNTERkante (= floor_outer-Stil), z=0..th.
module plate_round_bottom(th) {
r = fillet_r;
intersection() {
translate([0, 0, r])
minkowski() {
linear_extrude(th) translate([r, r]) square([box_w - 2*r, box_d - 2*r]);
sphere(r = r, $fn = 24);
}
translate([-1, -1, 0]) cube([box_w + 2, box_d + 2, th]);
}
}
// Deckplatte: plate-Rohling in z gespiegelt -> Rundung oben, Unterseite plan.
module lid_plate()
translate([0, 0, lid_t]) mirror([0, 0, 1]) plate_round_bottom(lid_t);
// Dünnes Voronoi-Relief auf der Oberseite (ragt relief_h nach +Z).
// Margin > fillet_r, damit das Relief nur auf der flachen Mitte sitzt
// (nicht über der gerundeten Kante schwebt).
module lid_relief() {
m = fillet_r + 1; ov = 0.6;
translate([0, 0, lid_t - ov])
linear_extrude(relief_h + ov)
intersection() {
translate([m, m]) square([box_w - 2*m, box_d - 2*m]);
voro_web_2d(voro_lid, voro_strut);
}
}
module lid() {
eps = 0.05;
difference() {
union() { lid_plate(); lid_relief(); }
// 8 Sacklöcher von unten (z=0) für die Wand-Oberzapfen
for (p = wall_peg_pts())
translate([p[0], p[1], -eps])
cylinder(d = peg_hole_d, h = peg_hole_dep + eps, $fn = 32);
}
}
lid();