From 6b51a8f2be1a9b42b904d63f90f6762bedfc3d62 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Tue, 16 Oct 2018 17:01:41 +0200 Subject: [PATCH] 18650 LED torch - first version --- led-torch.scad | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 led-torch.scad diff --git a/led-torch.scad b/led-torch.scad new file mode 100644 index 0000000..7f2f749 --- /dev/null +++ b/led-torch.scad @@ -0,0 +1,59 @@ +infty = 200; +eps = 0.01; + +wall = 1; + +led_d = 10 + 0.5; +int_d = 19/cos(30); +barrier_h = 8; +body_l = 70 + barrier_h; + +difference() { + cylinder(r = int_d/2 + wall/cos(30), $fn = 6, h = body_l); + translate([0, 0, wall]) + cylinder(r = int_d/2, $fn = 6, h = body_l); + // hole for LED + translate([0, 0, -eps]) + cylinder(r = led_d/2, h = infty); +} + +// battery front end stop +translate([0, 0, barrier_h-wall]) +intersection() { + cylinder(r = int_d/2 + wall/(2*cos(30)), $fn = 6, h = wall); + for (angle = [0:360/3:360]) rotate ([0, 0, angle]) + translate([led_d/2+wall, -infty/2, -eps]) + cube(infty); +} + +// rear end clip +clip_l = 2; +clip_w = 0.8; +clip_dist = 3; + +for (angle = [0:60:360]) rotate([0, 0, angle]) +translate([-clip_l/2, int_d*cos(30)/2+wall, body_l - clip_dist]) { + scale([1, 1, 3]) + rotate([0, 90, 0]) + cylinder(r = clip_w, h = clip_l, $fn = 4); +} + +// lid + +lid_d = int_d + 2*wall/cos(30) + 2*clip_w/cos(30); +lid_h = clip_dist + 3*wall+3*clip_w; + +translate([0, int_d + 5, 0]) +difference() { + cylinder(r = lid_d/2 + wall/cos(30), $fn = 6, h = lid_h); + difference() { + translate([0, 0, wall]) + cylinder(r = lid_d/2, $fn = 6, h = lid_h); + for (angle = [0:180:360]) rotate([0, 0, angle]) + translate([-clip_l/2, lid_d*cos(30)/2, clip_dist + 2*wall]) { + scale([1, 1, 3]) + rotate([0, 90, 0]) + cylinder(r = clip_w, h = clip_l, $fn = 4); + } + } +} -- 2.43.0