| 
		 Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB  | 
| 
		 Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB  | 
| 
		 Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB  | 
| 
		 Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB  | 
@ -0,0 +1,39 @@ | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// File for all dimensions, so they can be changed globally. | 
				
			|||
// | 
				
			|||
// Author:              Maximilian Stiefel | 
				
			|||
// Last modification:   29.07.2017 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
allowance05 = 0.5; | 
				
			|||
 | 
				
			|||
// Glass dimensions | 
				
			|||
glass_slide_height = 1; | 
				
			|||
glass_slide_depth = 26 + allowance05; | 
				
			|||
glass_slide_width = 76; | 
				
			|||
 | 
				
			|||
// Holder dimensions | 
				
			|||
window_size = 20; | 
				
			|||
holder_height = 3 + glass_slide_height + allowance05; | 
				
			|||
holder_depth = glass_slide_depth + allowance05 + 4; | 
				
			|||
holder_width = 80; // Width of the PCB | 
				
			|||
echo(holder_height=holder_height); | 
				
			|||
 | 
				
			|||
// LED illuminator dimensions | 
				
			|||
led_illuminator_dia = 10; | 
				
			|||
led_illuminator_height = 15; | 
				
			|||
led_pos_x = 18; | 
				
			|||
led_pos_y = 13; | 
				
			|||
led_illuminator_thickness = 2;  | 
				
			|||
led_illuminator_slot = 4; | 
				
			|||
led_illuminator_angle = 35; | 
				
			|||
 | 
				
			|||
leg_outer_dia = 5; | 
				
			|||
leg_inner_dia = 2.5; | 
				
			|||
leg_height = led_illuminator_height; | 
				
			|||
leg_pos_y = 13; | 
				
			|||
leg_pos_x = 2.5; | 
				
			|||
leg_distance = 6.5; | 
				
			|||
leg_drill_depth = 7; | 
				
			|||
 | 
				
			|||
myColor1 = "LimeGreen"; | 
				
			|||
@ -0,0 +1,43 @@ | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Glass slide holder to be mounted on the PCB.  | 
				
			|||
// | 
				
			|||
// Author:              Maximilian Stiefel | 
				
			|||
// Last modification:   29.06.2017 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Includes | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
// Dimesnions | 
				
			|||
include <dimensions.scad> | 
				
			|||
use <dimensions.scad> | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Vars | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Action | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
module glass_holder() | 
				
			|||
{ | 
				
			|||
	translate([0, 0, holder_height/2 + leg_height -0.01]) | 
				
			|||
	difference() | 
				
			|||
	{ | 
				
			|||
		// Main body | 
				
			|||
		cube([holder_width, holder_depth, holder_height], center = true); | 
				
			|||
		union() | 
				
			|||
		{ | 
				
			|||
			// Cut glass slide out and make an entrance | 
				
			|||
			translate([-2.5, 0, 2]) | 
				
			|||
			cube([glass_slide_width + allowance05 + 5, glass_slide_depth + allowance05, holder_height], center = true); | 
				
			|||
			// Cut out a cylinder for the LED | 
				
			|||
			translate([glass_slide_width/2 - led_pos_x, 0, 0]) | 
				
			|||
			cylinder(r = led_illuminator_dia/2, h = 20, center = true); | 
				
			|||
			// Cut out a "window" where the receiver photodiode is sitting | 
				
			|||
			translate([glass_slide_width/2 - led_pos_x, glass_slide_depth/2, 2]) | 
				
			|||
			cube([window_size, 10, 10], center = true);	 | 
				
			|||
		} | 
				
			|||
	} | 
				
			|||
} | 
				
			|||
@ -1,35 +1,40 @@ | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// LED illuminator to hide the LED from the receiver diode.  | 
				
			|||
// Illuminator for LED to keep the UV light away from the photodiode.  | 
				
			|||
// | 
				
			|||
// Author:              Maximilian Stiefel | 
				
			|||
// Last modification:   22.06.2017 | 
				
			|||
// Last modification:   29.06.2017 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Includes | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
// Dimesnions | 
				
			|||
include <dimensions.scad> | 
				
			|||
use <dimensions.scad> | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Vars | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
$fa = 0.5; // minimum facet angle is now 0.5 | 
				
			|||
$fs = 0.5; // minimum facet size is now 0.5 mm | 
				
			|||
 | 
				
			|||
holder_height = 14; | 
				
			|||
holder_diameter = 8.5; | 
				
			|||
holder_hole_diameter = 6.5; // LED with 5 mm diameter should fit in | 
				
			|||
holder_slot_width = 1; | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Action | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
module illuminator() | 
				
			|||
{ | 
				
			|||
	translate([glass_slide_width/2 - led_pos_x, 0, led_illuminator_height/2 + 0.01]) | 
				
			|||
	difference() | 
				
			|||
	{ | 
				
			|||
	cylinder(h = holder_height, r = holder_diameter/2, center = true); | 
				
			|||
		cylinder(r = led_illuminator_dia/2 + led_illuminator_thickness, led_illuminator_height, center = true);	 | 
				
			|||
		union() | 
				
			|||
		{ | 
				
			|||
		translate([0, 0, 0]) | 
				
			|||
		cylinder(h = holder_height + 2, r = holder_hole_diameter/2, center = true); | 
				
			|||
		translate([0, holder_diameter/2, 0]) | 
				
			|||
		cube([holder_slot_width, 2*(holder_diameter-holder_hole_diameter), holder_height + 2], center = true); | 
				
			|||
			// Cut out inner cylinder | 
				
			|||
			cylinder(r = led_illuminator_dia/2, led_illuminator_height + 0.01, center = true);	 | 
				
			|||
			// Cut out slot | 
				
			|||
			rotate([0, 0, led_illuminator_angle + 180]) | 
				
			|||
			translate([led_illuminator_dia/2, 0, -led_illuminator_height/2 - 0.01]) | 
				
			|||
			cube([led_illuminator_dia/2, led_illuminator_slot, led_illuminator_height], center = true); | 
				
			|||
		} | 
				
			|||
	} | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
@ -0,0 +1,52 @@ | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Legs for the glass slide holder.  | 
				
			|||
// | 
				
			|||
// Author:              Maximilian Stiefel | 
				
			|||
// Last modification:   29.06.2017 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Includes | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
// Dimesnions | 
				
			|||
include <dimensions.scad> | 
				
			|||
use <dimensions.scad> | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Vars | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Action | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
module legs() | 
				
			|||
{ | 
				
			|||
	difference() | 
				
			|||
	{ | 
				
			|||
	union() | 
				
			|||
	{ | 
				
			|||
		// Legs at the left | 
				
			|||
		for(y = [0, 1]) | 
				
			|||
		translate([glass_slide_width/2 - leg_pos_x, -y*leg_distance,0]) | 
				
			|||
		cylinder(r = leg_outer_dia/2, h = leg_height); | 
				
			|||
		// Legs at the right | 
				
			|||
		for(y = [0, 1]) | 
				
			|||
		translate([-glass_slide_width/2 + leg_pos_x, y*leg_distance, 0]) | 
				
			|||
		cylinder(r = leg_outer_dia/2, h = leg_height); | 
				
			|||
	} | 
				
			|||
	union() | 
				
			|||
	{ | 
				
			|||
		// Legs at the left | 
				
			|||
		for(y = [0, 1]) | 
				
			|||
		translate([glass_slide_width/2 - leg_pos_x, -y*leg_distance, -0.01]) | 
				
			|||
		cylinder(r = leg_inner_dia/2, h = leg_drill_depth); | 
				
			|||
		// Legs at the right | 
				
			|||
		for(y = [0, 1]) | 
				
			|||
		translate([-glass_slide_width/2 + leg_pos_x, y*leg_distance, -0.01]) | 
				
			|||
		cylinder(r = leg_inner_dia/2, h = leg_drill_depth); | 
				
			|||
 | 
				
			|||
	} | 
				
			|||
	} | 
				
			|||
} | 
				
			|||
 | 
				
			|||
@ -1,35 +1,42 @@ | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// LED illuminator to hide the LED from the receiver diode.  | 
				
			|||
// Main file to bring everything together.  | 
				
			|||
// | 
				
			|||
// Author:              Maximilian Stiefel | 
				
			|||
// Last modification:   22.06.2017 | 
				
			|||
// Last modification:   29.06.2017 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Includes | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
 | 
				
			|||
// Dimesnions | 
				
			|||
include <dimensions.scad> | 
				
			|||
use <dimensions.scad> | 
				
			|||
 | 
				
			|||
// Module for the glass holder | 
				
			|||
include <glass_hollder.scad> | 
				
			|||
use <glass_holder.scad> | 
				
			|||
 | 
				
			|||
// Module for the legs  | 
				
			|||
include <legs.scad> | 
				
			|||
use <legs.scad> | 
				
			|||
 | 
				
			|||
// Module for the legs  | 
				
			|||
include <led_illuminator.scad> | 
				
			|||
use <led_illuminator.scad> | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Vars | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
$fa = 0.5; // minimum facet angle is now 0.5 | 
				
			|||
$fs = 0.5; // minimum facet size is now 0.5 mm | 
				
			|||
 | 
				
			|||
allowance = 0.5; | 
				
			|||
 | 
				
			|||
glass_slide_thickness = 1; | 
				
			|||
glass_slide_width = 26 + allowance; | 
				
			|||
 | 
				
			|||
holder_height = 15 + glass_slide_thickness + allowance; | 
				
			|||
holder_width = 26 + allowance + 4; | 
				
			|||
holder_depth = 3.5; | 
				
			|||
 | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
// Action | 
				
			|||
///////////////////////////////////////////////////////////////////////////////// | 
				
			|||
difference() | 
				
			|||
color(myColor1) | 
				
			|||
{ | 
				
			|||
	cube([holder_width, holder_depth, holder_height]); | 
				
			|||
	translate([(holder_width - glass_slide_width)/2, holder_depth - 1.25 - allowance, holder_height - glass_slide_thickness - allowance]) | 
				
			|||
	cube([glass_slide_width, holder_depth, 2]); | 
				
			|||
	glass_holder(); | 
				
			|||
	legs(); | 
				
			|||
	illuminator(); | 
				
			|||
} | 
				
			|||