aboutsummaryrefslogtreecommitdiff
path: root/candlestick_molds/taper.scad
diff options
context:
space:
mode:
authorChristian Hodgden <chrhodgden@gmail.com>2024-10-01 01:10:47 +0000
committerChristian Hodgden <chrhodgden@gmail.com>2024-10-01 01:10:47 +0000
commitdb9a82bdfa4bfddd5dff479b44c9cc8e4b0368b8 (patch)
tree9f781bfa01f5713abaa7fa93019ec4f728385314 /candlestick_molds/taper.scad
parent386e9f3e83ce94088f4f4a10bb388108ec88ae38 (diff)
Added candlestick_molds/taper.
Diffstat (limited to 'candlestick_molds/taper.scad')
-rw-r--r--candlestick_molds/taper.scad39
1 files changed, 39 insertions, 0 deletions
diff --git a/candlestick_molds/taper.scad b/candlestick_molds/taper.scad
new file mode 100644
index 0000000..3d4a73e
--- /dev/null
+++ b/candlestick_molds/taper.scad
@@ -0,0 +1,39 @@
+
+use <../lib/bezier.scad>;
+
+$fn = 100;
+base_radius = 7/8;
+top_radius = base_radius * 0.75;
+top_height = top_radius * 2;
+total_height = 10;
+stem_height = total_height - top_height;
+
+module stick() {
+ cylinder(stem_height, base_radius, top_radius);
+
+ control_points = [
+ [top_radius, 0],
+ [0.25, 0.5],
+ [0.4, 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);
+};
+
+difference() {
+ translate([-1.5, -1.5, 0.01])
+ cube([6, 6, total_height]);
+
+ translate([0, 0, 0]) stick();
+ translate([3, 0, 0]) stick();
+ translate([0, 3, 0]) stick();
+ translate([3, 3, 0]) stick();
+};
+