--- /dev/null
+eps = 0.01;
+infty = 200;
+
+wall = 1.5;
+
+tube_d = 8.0 + 0.5;
+
+slot_w = 3;
+slot_angle = 180;
+
+wing_xoff = tube_d/2 + 7; // bottom of the slot
+wing_slot_h = 2.5;
+wing_slot_w = 4;
+
+wing_wall = 3.0;
+
+clip_w = 2*wing_wall + wing_slot_w;
+
+difference() {
+ hull() {
+ // fuse cylinder
+ cylinder(r = tube_d/2 + wall, h = clip_w);
+ // wing clip
+ translate([wing_xoff, -tube_d/2 -wall, 0])
+ cube([wing_slot_h + wing_wall, tube_d + 2*wall, clip_w]);
+ }
+
+ // fuse tube
+ translate([0, 0, -eps])
+ cylinder(r = tube_d/2, h = clip_w + 2*eps);
+
+ // fuse tube slot
+ rotate([0, 0, slot_angle])
+ translate([0, -slot_w/2, -eps])
+ cube([tube_d, slot_w, clip_w + 2*eps]);
+
+ // wing slot
+ translate([wing_xoff, -tube_d/2-wall-eps, wing_wall])
+ cube([wing_slot_h, tube_d + 2*wall + 2*eps, wing_slot_w]);
+}