+eps = 0.01;
+infty = 100;
+
+inner_d = 11.7;
+outer_d = 16;
+body_h = 1.5;
+tip_h = 3;
+tip_w1 = 5;
+tip_w2 = 0.5;
+tip_d = outer_d/2-0.5;
+
+difference() {
+ union() {
+ cylinder(r = outer_d/2, h = body_h);
+ hull() {
+ translate([0, -tip_w1/2, 0])
+ cube([tip_d, tip_w1, body_h]);
+ translate([0, -tip_w2/2, tip_h - eps])
+ cube([tip_d, tip_w2, eps]);
+ }
+ };
+ // inner hole
+ translate([0, 0, -eps])
+ cylinder(r = inner_d/2, h = tip_h + 2*eps);
+ // rear side
+ translate([0, 0, -eps])
+ rotate([0, 0, 135])
+ cube(infty);
+}
+