// 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 = 9; screw_hole = 5; bolt_hole = 9; bolt_depth = 4; knifebar_w = 45; // for an alternative design 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, bolt_depth, body_h/2]) rotate([90, 0, 0]) cylinder(r = bolt_hole/2, h=infty, $fn = 6); }