thickness = 6; // The thickness of each length of plastic width = 25; // The the total width of the hook height = 150; // The total height of the hook top_hang = 15; top_curl = 30; bottom_hang = 20; bottom_curl = 25; module length(size) { cube([width, thickness, size]); } module hook() { length(height); translate([0, 0, height - (thickness)]) rotate([90, 0, 0]) length(top_hang); translate([0, -top_hang - thickness, height - top_curl - thickness]) length(top_curl + thickness); translate([0, bottom_hang + thickness, 0]) rotate([90, 0, 0]) length(bottom_hang); translate([0, bottom_hang + thickness]) length(bottom_curl + thickness); } // It's best to print the hook lying on its side // comment out these two lines to work with XYZ // relative to how it would actually bee hooked up translate([0, 0, width]) rotate([0, 90, 0]) hook();