1 // hook for the aluminium kitchen bar from IKEA
8 bar_to_wall = 27; // incl. the bar itself
11 upper_overhang = 10.0 - wall;
16 clip_front = 5; // stronger than wall for this object
18 // coordinates: front end of the bar is the xz plane, centered by the x axis,
19 // +x is the upper part, -x is lower, +y is front
23 translate([-bar_h/2-wall, 0, 0])
24 cube([bar_h + 2*wall, clip_front, body_h]);
25 // upper and lower horizontal bars
26 for (x = [-1, 1]) scale([x, 1, 1])
27 translate([bar_h/2, -bar_w -wall, 0])
28 cube([wall, bar_w + 2*wall, body_h]);
30 translate([bar_h/2-upper_overhang, -bar_w-wall, 0])
31 cube([upper_overhang + wall, wall, body_h]);
33 translate([-bar_h/2-wall, -bar_w-wall, 0])
35 cube([lower_overhang + wall, wall, body_h]);
36 translate([lower_overhang + wall, 2*wall/3, 0])
38 translate([0, -infty/2, -infty/2])
43 // make the top of the clip be at x = 0
44 translate([-bar_h/2-wall, 0, 0])
50 hook_xoff = 10; // from the top
53 translate([-eps, -bar_w-wall, 0])
55 cube([eps, clip_front + bar_w + wall, body_h]);
56 translate([top_len-eps, 0, 0])
57 cube([eps, wall, body_h]);
61 translate([top_len-wall, hook_y, 0])
62 cube([wall, eps, body_h]);
63 translate([top_len-hook_xoff-hook_base_w, -bar_w-wall, 0])
64 cube([hook_base_w, eps, body_h]);
67 translate([top_len-wall, hook_y-wall, 0])
68 cube([wall+hook_end_l, wall, body_h]);