]> www.fi.muni.cz Git - things.git/commitdiff
Diffuser for ZSJ-T219 flashlight
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 10 May 2015 11:56:50 +0000 (13:56 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 10 May 2015 11:56:50 +0000 (13:56 +0200)
diffuser-zsj-t29.scad [new file with mode: 0644]

diff --git a/diffuser-zsj-t29.scad b/diffuser-zsj-t29.scad
new file mode 100644 (file)
index 0000000..c7c46db
--- /dev/null
@@ -0,0 +1,41 @@
+// Diffuser for ZHISHUNJIA ZSJ-T29 LED flashlight (dx.com SKU #317226).
+infty = 100;
+eps = 0.01;
+
+diaphragm = 0.5; // diaphragm thickness
+wall = 1.5;
+
+ring_h = 12; // the height of the body
+ring_d = 34.3 + 0.5; // the lens ring diameter + tolerance
+
+clip_h = 7.3 + 0.5; // height of the clip above the diaphragm
+clip_dist = 1.5;
+clip_size = 1.2;
+
+
+module diffuser() {
+       difference() {
+               cylinder(r = ring_d/2 + wall, h = ring_h);
+               translate([0, 0, diaphragm])
+                       cylinder(r = ring_d/2, h = ring_h);
+               for (angle = [0:120:360]) rotate([0,0,60+angle]) {
+                       translate([0, 0, 20+clip_h])
+                       rotate([0, 90, 0])
+                               cylinder(r=20, h=infty);
+               }
+       }
+       for (angle = [0:120:360]) rotate([0,0,angle]) {
+               intersection() {
+                       hull() {
+                               translate([ring_d/2-clip_dist, -infty/2, clip_h])
+                                       cube([infty, infty, clip_size]);
+                               translate([ring_d/2+wall/2, -eps/2, ring_h+wall])
+                                       cube([eps, eps, eps]);
+                       }
+                       cylinder(r = ring_d/2 + wall/2, h = ring_h);
+               }
+       }
+}
+
+diffuser();
+