pacman-ghost: initial upstream version
[clinton/3d-models.git] / etc / cork.scad
CommitLineData
cae0d928
CE
1// cork for my weep of willow potion bottle
2
3// designed to fit a small submersible led tea light into the cap and
4// illuminate the smoke rising from the smoker. LED sits in
5// led_cork(), and led_cap() is placed over it to diffuse. Printed @
6// 100% infill, slow, and with the largest possible layer heights.
7
8$fa = 1;
9$fs = 1;
10
11led_cork ();
12//led_cap ();
13
14/* actual cork dimensions
15bottom_d = 29.5;
16top_d = 35.25;
17height = 37.77;
18*/
19
20module cork (bottom_d, top_d, height) {
21 hull () {
22 cylinder (d=bottom_d, h=0.1);
23 translate ([0, 0, height]) cylinder (d=top_d, h=0.1);
24 }
25}
26
27
28// logically, should be arguments, but are shared between led_cork and
29// led_cap...
30
31bottom_inner_d = 30;
32top_inner_d = 35.25;
33height = 37.77;
34wall = 1.0;
35
36module led_cork () {
37 difference () {
38 cork (bottom_inner_d + wall*2, top_inner_d + wall*2, height);
39 translate ([0, 0, wall*2]) cork (bottom_inner_d, top_inner_d, height);
40 }
41
42}
43
44// dome of the led, to be cut from cap
45module led_dome (height = 8.5, diameter = 8.8) {
46 cylinder (d=diameter, h=height/2);
47 translate ([0, 0, height/2]) sphere (d=diameter);
48
49}
50
51module led_cap (cap_depth = 12, cap_tolerance = 0.5) {
52 difference () {
53 // doesn't have to be exact, just need to fit in
54 cork (bottom_inner_d, top_inner_d - cap_tolerance, cap_depth);
55 translate ([0, 0, -0.01]) led_dome ();
56 }
57}