]> www.fi.muni.cz Git - things.git/blob - wastebin-bags-holder.scad
switch holder.scad
[things.git] / wastebin-bags-holder.scad
1 eps = 0.01;
2 infty = 300;
3
4 wall = 2;
5 bag_d = 50;
6 angle = 150;
7 body_h = 15;
8 bag_dist = 1.2*bag_d;
9 bags = 3;
10 body_l = (bags-1)*bag_dist + bag_d/2 + 2*wall;
11 screw_hole = 4;
12 base_w = 2*wall;
13
14 module hook() {
15         difference() {
16                 union() {
17                         cylinder(r = bag_d/2 + wall, h = body_h, $fn = 128);
18                         cylinder(r = bag_d/2 + 2*wall, h = wall, $fn = 128);
19                         translate([-bag_d/2-2*wall, 0, 0])
20                                 cube([bag_d/2+wall, bag_d/2+wall, wall]);
21                 }
22                 translate([0, 0, -eps]) {
23
24                         cylinder(r = bag_d/2, h = body_h + 2*eps, $fn = 128);
25                         translate([0, -bag_d, 0])
26                                 cube([bag_d, 2*bag_d, body_h + 2*eps]);
27                         rotate([0, 0, 90+angle])
28                                 cube([bag_d, bag_d, body_h + 2*eps]);
29                         /* translate([-bag_d/2, bag_d/2+wall, 0])
30                                 cube(bag_d); */
31                 }
32         }
33
34         rotate([0, 0, 90+angle])
35         translate([bag_d/2+wall, 0, 0])
36                 cylinder(r = wall, h = body_h, $fn = 32);
37 }
38
39 difference() {
40         union() {
41                 translate([-bag_d/2-2*wall, bag_d/2, 0])
42                         cube([body_l, 2*wall, body_h]);
43
44                 for (i = [0:bags-1])
45                         translate([bag_dist*i, 0, 0])
46                                 hook();
47         }
48
49         for (x = [0, body_l-bag_d - 4*wall])
50                 translate([x, 0, body_h/2])
51                 rotate([-90, 0, 0])
52                         cylinder(r = screw_hole/2, h = bag_d, $fn = 6);
53 }
54
55
56