Commit | Line | Data |
---|---|---|
09d3555a CE |
1 | // 2021 |
2 | ||
3 | // Single person mead horn, for winter solstice 2021 since sharing | |
4 | // mead from the real horn is probably still unsafe. | |
5 | ||
6 | // https://openhome.cc/eGossip/OpenSCAD/lib3x-golden_spiral_extrude.html | |
7 | use <dotscad/shape_circle.scad>; | |
8 | use <dotscad/golden_spiral_extrude.scad>; | |
9 | use <dotscad/helix_extrude.scad>; | |
10 | ||
11 | bottom_radius = 4; | |
12 | top_radius = 30; | |
13 | horn_length = 135; | |
14 | ||
15 | module helix_horn () { | |
16 | helix_levels = 1/6; | |
17 | ||
18 | arc_measure = (360 * helix_levels) * (3.13 / 180) ; | |
19 | arc_length = horn_length; | |
20 | ||
21 | helix_radius = (arc_length / arc_measure); | |
22 | echo (helix_radius); | |
23 | ||
24 | ||
25 | translate ([helix_radius, 0, 0]) scale ([1, 1/2, 1]) intersection () { | |
26 | sphere (r = bottom_radius); | |
27 | rotate ([90, 0, 0]) cylinder (h = bottom_radius, r = bottom_radius, center=false); | |
28 | } | |
29 | ||
30 | shape_pts = shape_circle (radius = bottom_radius); | |
31 | ||
32 | helix_extrude(shape_pts, | |
33 | radius = helix_radius, | |
34 | scale = top_radius/bottom_radius, | |
35 | levels = helix_levels, | |
36 | level_dist = top_radius * 5, | |
37 | vt_dir = "SPI_UP" | |
38 | ); | |
39 | } | |
40 | ||
41 | helix_horn ($fs = 0.3, $fa = 1); | |
42 | ||
43 | ||
44 | ||
45 | //linear_extrude (height = 120, scale = top_radius/bottom_radius, twist = 500) { | |
46 | // circle (r = bottom_radius, $fn=5); | |
47 | //} | |
48 | ||
49 | ||
50 | /* | |
51 | $fn = 64; | |
52 | //shape_pts = concat( | |
53 | // shape_circle(radius = 3), | |
54 | // shape_circle(radius = 2.5) | |
55 | //); | |
56 | shape_pts = shape_circle(radius = 2); | |
57 | ||
58 | golden_spiral_extrude( | |
59 | shape_pts, | |
60 | from = 7, | |
61 | to = 10, | |
62 | point_distance = 1, | |
63 | scale = 10, | |
64 | triangles = "SOLID" | |
65 | ); | |
66 | */ |