--- /dev/null
+// Holder for two Fraen FHS-HEB1-LB01-x lenses for Luxeon LEDs.
+
+eps = 0.01;
+infty = 100;
+
+wall = 1.5;
+
+screw_zoff = 5.5;
+screw_d = 4;
+screw_head = 10;
+lens_dist = 45;
+
+base_w = 45;
+base_l = 30;
+base_l2 = 3;
+screw_wall = 3;
+
+translate([-base_w/2, -base_l2, 0])
+ cube([base_w, base_l/2+base_l2, wall]);
+translate([0, base_l/2, 0])
+ scale([-base_w/base_l, 1, 1])
+ cylinder(r = base_l/2, h = wall, $fn = 128);
+hull() { // sides
+ translate([-screw_head/2-wall, 0, 0])
+ cube([screw_head+2*wall, screw_wall, wall+2]);
+ for (x = [-1, 1]) scale([x, 1,1])
+ translate([base_w*0.4, 0, 0])
+ cube([wall, screw_wall, wall]);
+}
+
+difference() {
+ hull() {
+ translate([-screw_head/2-wall, 0, 0])
+ cube([screw_head+2*wall, screw_wall, wall+screw_head/2+screw_zoff]);
+ translate([-screw_head/2-wall, base_l-2*wall, 0])
+ cube([screw_head+2*wall, wall, wall]);
+ }
+ translate([-screw_head/2, screw_wall, wall])
+ cube([screw_head, infty, screw_head/2+screw_zoff+eps]);
+ translate([0, -eps, wall+screw_zoff])
+ rotate([-90, 0, 0])
+ cylinder(r = screw_d/2, h = screw_wall+2*eps, $fn = 6);
+}