]> www.fi.muni.cz Git - things.git/blob - diffuser-zsj-t29.scad
diffuser: bigger tolerance
[things.git] / diffuser-zsj-t29.scad
1 // Diffuser for ZHISHUNJIA ZSJ-T29 LED flashlight (dx.com SKU #317226).
2 infty = 100;
3 eps = 0.01;
4
5 diaphragm = 0.5; // diaphragm thickness
6 wall = 1.5;
7
8 ring_h = 12; // the height of the body
9 ring_d = 34.3 + 1.0; // the lens ring diameter + tolerance
10
11 clip_h = 7.3 + 1.0; // height of the clip above the diaphragm
12 clip_dist = 1.5;
13 clip_size = 1.2;
14
15
16 module diffuser() {
17         difference() {
18                 cylinder(r = ring_d/2 + wall, h = ring_h);
19                 translate([0, 0, diaphragm])
20                         cylinder(r = ring_d/2, h = ring_h);
21                 for (angle = [0:120:360]) rotate([0,0,60+angle]) {
22                         translate([0, 0, 20+clip_h])
23                         rotate([0, 90, 0])
24                                 cylinder(r=20, h=infty);
25                 }
26         }
27         for (angle = [0:120:360]) rotate([0,0,angle]) {
28                 intersection() {
29                         hull() {
30                                 translate([ring_d/2-clip_dist, -infty/2, clip_h])
31                                         cube([infty, infty, clip_size]);
32                                 translate([ring_d/2+wall/2, -eps/2, ring_h+wall])
33                                         cube([eps, eps, eps]);
34                         }
35                         cylinder(r = ring_d/2 + wall/2, h = ring_h);
36                 }
37         }
38 }
39
40 diffuser();
41