7 horn_vert_h = 3 + foam_w;
10 slot_off = 3.5; // from the hinge line
23 translate([slot_l/2 + slot_off, 0, 0])
24 scale([1, baseplate_w/baseplate_l, 1])
25 cylinder(r = baseplate_l/2, h = baseplate_h);
26 translate([slot_off - infty, -infty/2, -infty/2]) cube(infty);
29 support_l = 1*baseplate_w;
31 support_h = foam_w; // including the baseplate
36 translate([0, -support_l/2, baseplate_h-eps])
37 cube([support_w, support_l, eps]);
38 translate([0, -support_w/2, support_h - eps])
39 cube([support_w, horn_w, eps]);
44 translate([slot_off, 0, 0])
47 translate([slot_off + slot_l - support_w, 0, 0])
51 translate([slot_off + slot_l/2 - support_w, 0, 0])
54 // bottom part of the horn
56 translate([slot_off, -horn_w/2, 0])
57 cube([slot_l/2 + baseplate_l/2, horn_w, baseplate_h]);
58 translate([slot_off, -horn_w/2, horn_vert_h])
59 cube([slot_l, horn_w, eps]);
64 translate([slot_off, -horn_w/2, horn_vert_h])
65 cube([slot_l, horn_w, eps]);
66 translate([0, -horn_w/2, horn_h])
68 cylinder(r = hole_d2/2, h = horn_w, $fn = 6);
70 translate([0, -horn_w/2, horn_h])
72 translate([0, 0, -eps])
73 cylinder(r = hole_d/2, h = horn_w + 2*eps, $fn = 6);
87 translate([slot_off, 0, 0])
88 cube([base_l, wall, wall]);
90 for (y = [1:n_holes]) {
91 translate([0, hole_h -(y-1)*hole_step, 0])
92 cylinder(r = hole_d/2 + hole_side,
97 for (y = [1:n_holes]) {
98 translate([0, hole_h -(y-1)*hole_step, -eps])
99 cylinder(r = hole_d/2, h = wall + 2*eps, $fn = 6);
105 translate([slot_off, 0, 0])
106 cube([base_l, wall, side_w]);
110 translate([slot_off + (base_l - slot_l)/2, -slot_depth/2, 0])
111 cube([slot_l, slot_depth/2, wall]);
112 translate([slot_off + (base_l - slot_l)/2 + wall, -slot_depth, 0])
113 cube([slot_l - 2*wall, slot_depth/2+eps, wall]);
117 for (x = [-1, 1]) scale([x, 1, 1])
118 translate([hole_side + hole_d/2 + 2*wall, 0, 0]) horn();