--- /dev/null
+// hook for the aluminium kitchen bar from IKEA
+
+infty=100;
+eps=0.01;
+
+bar_w = 3.5 + 0.5;
+bar_h = 29.3 + 0.5;
+
+wall = 3.1;
+upper_overhang = 10.0 - wall;
+lower_overhang = 1.5;
+
+body_h = 12;
+
+// coordinates: front end of the bar is the xz plane, centered by the x axis,
+// +x is the upper part, -x is lower, +y is front
+
+module clip() {
+ // front part
+ translate([-bar_h/2-wall, 0, 0])
+ cube([bar_h + 2*wall, wall, body_h]);
+ // upper and lower horizontal bars
+ for (x = [-1, 1]) scale([x, 1, 1])
+ translate([bar_h/2, -bar_w -wall, 0])
+ cube([wall, bar_w + 2*wall, body_h]);
+ // upper overhang
+ translate([bar_h/2-upper_overhang, -bar_w-wall, 0])
+ cube([upper_overhang + wall, wall, body_h]);
+ // lower overhang
+ translate([-bar_h/2-wall, -bar_w-wall, 0])
+ difference() {
+ cube([lower_overhang + wall, wall, body_h]);
+ translate([lower_overhang + wall, 2*wall/3, 0])
+ rotate([0, 0, -36])
+ translate([0, -infty/2, -infty/2])
+ cube(infty);
+ }
+}
+
+// holder for the magnetic knife bar based on the above clip
+
+front_w = 6;
+screw_hole = 3;
+bolt_hole = 7;
+
+difference() {
+ union() {
+ clip();
+ translate([-bar_h/2-wall, 0, 0])
+ cube([bar_h + 2*wall, front_w, body_h]);
+ }
+
+ // screw hole
+ translate([0, -infty/2, body_h/2])
+ rotate([-90, 0, 0])
+ cylinder(r = screw_hole/2, h=infty, $fn = 6);
+ // bolt hole
+ translate([0, front_w/2, body_h/2])
+ rotate([-90, 0, 0])
+ cylinder(r = bolt_hole/2, h=infty, $fn = 6);
+}