aboutsummaryrefslogtreecommitdiff
path: root/candles/taper.scad
diff options
context:
space:
mode:
Diffstat (limited to 'candles/taper.scad')
-rw-r--r--candles/taper.scad28
1 files changed, 28 insertions, 0 deletions
diff --git a/candles/taper.scad b/candles/taper.scad
new file mode 100644
index 0000000..5d8fff5
--- /dev/null
+++ b/candles/taper.scad
@@ -0,0 +1,28 @@
+
+use <../lib/bezier.scad>;
+
+$fn = 100;
+base_radius = 3/8;
+top_radius = base_radius * 0.75;
+top_height = top_radius * 2;
+total_height = 7.5;
+stem_height = total_height - top_height;
+
+cylinder(stem_height, base_radius, top_radius);
+
+control_points = [
+ [top_radius, 0],
+ [0.125, top_height/4],
+ [0.125, top_height/2],
+ [0.125, top_height],
+ [0, top_height]
+];
+// adjust curve_facets for low & odd $fn values
+curve_facets = $fn/2;
+head_curve = bezier_curve(control_points, $fn=curve_facets);
+top_curve = concat(head_curve, [[0, 0]]);
+
+translate([0, 0, stem_height])
+ rotate_extrude()
+ polygon(top_curve);
+