Add the experimental "fresnel" pattern generator for laser cutting. The hypothesis is that by melting the surface of an acrylic sheet, light from the LED source will be better projected forward onto the surface of the diffuser sheet.

This commit is contained in:
mmcw-dev 2018-01-16 00:57:20 -05:00
parent 234b2b89dc
commit 1a42f260fe
3 changed files with 43 additions and 22 deletions

View File

@ -256,27 +256,44 @@ module flashlight_mount_cap (DEBUG = false) {
} }
module impromptu_mount () { module impromptu_mount () {
$fn = 100; $fn = 100;
ROD_D = 12.6; ROD_D = 12.6;
translate([0, -35, 0]) rotate([90, 0, 0]) { translate([0, -35, 0]) rotate([90, 0, 0]) {
difference () { difference () {
union() { union() {
cylinder(r = ROD_D / 2, h = 43, center = true); cylinder(r = ROD_D / 2, h = 43, center = true);
translate([0, 0, -5]) cylinder(r = (ROD_D / 2) + 2, h = 30, center = true); translate([0, 0, -5]) cylinder(r = (ROD_D / 2) + 2, h = 30, center = true);
}
//notch for cap
translate([-10, 0, 24.5]) cube([15, 15, 15], center = true);
translate([0, 0, -22.25]) cube([45, 45, 15], center = true);
} }
translate([0, 0, -17]) cube([8, 8, 5], center = true); //notch for cap
translate([-10, 0, 24.5]) cube([15, 15, 15], center = true);
translate([0, 0, -22.25]) cube([45, 45, 15], center = true);
} }
translate([0, -46.4, 0]) { translate([0, 0, -17]) cube([8, 8, 5], center = true);
difference() { }
rotate ([90, 90, 0]) cylinder(r = (ROD_D / 2) + 2, h = 3, center = true); translate([0, -46.4, 0]) {
translate([50 + (ROD_D / 2), 0, 0]) cube([100, 100, 100], center = true); difference() {
translate([-50 - (ROD_D / 2), 0, 0]) cube([100, 100, 100], center = true); rotate ([90, 90, 0]) cylinder(r = (ROD_D / 2) + 2, h = 3, center = true);
} translate([50 + (ROD_D / 2), 0, 0]) cube([100, 100, 100], center = true);
translate([-50 - (ROD_D / 2), 0, 0]) cube([100, 100, 100], center = true);
} }
}
}
module fresnel_laser(outer = 13, h = 3, spacing = 0.2) {
$fn = 120;
count = ceil(outer / spacing);
for(i = [0 : count]) {
if (i % 2 != 0) {
difference() {
cylinder(r = outer - (spacing * i), h = h);
cylinder(r = outer - (spacing * (i + 1)), h = h + 1);
}
}
}
}
module fresnel_laser_outer (outer = 13, h = 3) {
$fn = 120;
cylinder(r = outer, h = h);
} }

View File

@ -6,11 +6,14 @@ include <./motor.scad>;
//translate([0, 2.5, 0]) rotate([90, 0, 0]) color("red") adafruit_pixie(); //translate([0, 2.5, 0]) rotate([90, 0, 0]) color("red") adafruit_pixie();
//translate([0, 6, 0]) color("blue") pixie_mount(); //translate([0, 6, 0]) color("blue") pixie_mount();
//translate([0, 0, -50]) color("red") fan(); //translate([0, 0, -50]) color("red") fan();
color("green") diffuser_mount(); //color("green") diffuser_mount();
//translate([0, 0, -51.2]) light_body(); //translate([0, 0, -51.2]) light_body();
//translate([0, 0, 20]) light_vent_top(); //translate([0, 0, 20]) light_vent_top();
//translate ([0, -20, 0]) rotate([90, 90, 0]) color("red") diffuser_insert(); //translate ([0, -20, 0]) rotate([90, 90, 0]) color("red") diffuser_insert();
//translate ([0, -20, 0]) rotate([90, 90, 0]) color("red") diffuser_spacer(); //translate ([0, -20, 0]) rotate([90, 90, 0]) color("red") diffuser_spacer();
//rotate([0, 0, 90]) flashlight_mount(); //rotate([0, 0, 90]) flashlight_mount();
//translate([0, -8.5, 0]) rotate([0, 0, 90]) impromptu_mount(); //translate([0, -8.5, 0]) rotate([0, 0, 90]) impromptu_mount();
//translate([30, -8.5, 0]) rotate([0, 0, 90]) flashlight_mount_cap(); //translate([30, -8.5, 0]) rotate([0, 0, 90]) flashlight_mount_cap();
projection() fresnel_laser(spacing = 1);
projection() fresnel_laser_outer();

View File

@ -520,4 +520,5 @@ module bolex_stand () {
} }
//translate([0, 0, 40]) cube([35, 150, 30], center = true); //translate([0, 0, 40]) cube([35, 150, 30], center = true);
} }
} }