shelving-foot: customizer default view direction
[clinton/3d-models.git] / etc / shelving-foot.scad
1 // super simple feet for metal shelving
2 // Created 2017 Clinton Ebadi <clinton@unknownlamer.org>
3
4 // Released under the https://wiki.creativecommons.org/wiki/CC0
5 // To the extent possible under law, Clinton Ebadi has waived all
6 // copyright and related or neighboring rights to super simple feet
7 // for metal shelving.
8
9
10 // preview[view:east, tilt:top diagonal]
11
12 // Length of slot for shelving leg
13 slot_length = 32;
14 // Thickness of slot for shelving leg
15 slot_thickness = 1.8;
16
17 // Thickness of wall around slot
18 wall_thickness = 3;
19
20 // Depth of the base foot
21 base_depth = 4;
22 // Depth of the slot and walls around the length
23 slot_depth = 20;
24 // Offset for leg slot into the base
25 slot_offset = -1;
26
27 $fs = 0.1;
28
29 foot ();
30
31 module base () {
32 side = slot_length + slot_thickness/2;
33 offset (r = wall_thickness) polygon ([ [0, 0], [ side , 0], [0, side] ]);
34 }
35
36 module walls () {
37 intersection () {
38 offset (r = wall_thickness) {
39 square ([slot_thickness, slot_length + slot_thickness/2]);
40 square ([slot_length + slot_thickness/2, slot_thickness]);
41 }
42 base ();
43 }
44 }
45
46 module slot () {
47 square ([slot_thickness, slot_length]);
48 square ([slot_length, slot_thickness]);
49
50 // tiny chamfer around bend
51 x = 2;
52 polygon ([ [0, 0], [ slot_thickness*2+x/2, 0], [0, slot_thickness*2+x/2] ]);
53 }
54
55
56 module foot () {
57 difference () {
58 union () {
59 linear_extrude (base_depth) base ();
60 translate ([0, 0, base_depth+slot_offset]) linear_extrude (slot_depth+slot_offset) walls ();
61 }
62 translate ([0, 0, base_depth+slot_offset]) linear_extrude (slot_depth+slot_offset+0.1) slot ();
63 }
64 }