From 24b854b8a8dcde8945903449dd27990a4fd49005 Mon Sep 17 00:00:00 2001 From: Christian Hodgden Date: Tue, 1 Oct 2024 18:01:10 -0500 Subject: candlestick taper > cut mold block --- candlestick_molds/taper.scad | 94 ++++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 39 deletions(-) (limited to 'candlestick_molds') diff --git a/candlestick_molds/taper.scad b/candlestick_molds/taper.scad index 3d4a73e..cabc2cc 100644 --- a/candlestick_molds/taper.scad +++ b/candlestick_molds/taper.scad @@ -1,39 +1,55 @@ - -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(); -}; - + +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); + + translate([0, 0, total_height-0.01]) + cylinder(2, 0.05); +}; + +difference() { + difference() { + // Base Mold Block + translate([-1.5, -1.5, 0.01]) + cube([6, 6, total_height]); + + // Mold of each stick + translate([0, 0, 0]) stick(); + translate([3, 0, 0]) stick(); + translate([0, 3, 0]) stick(); + translate([3, 3, 0]) stick(); + }; + + // Cut Molds in half + // Print 2 of these to form full mold + translate([-1.51, -1.51, 0]) + cube([6.02, 1.51, total_height + 0.02]); + translate([-1.51, 3, 0]) + cube([6.02, 1.51, total_height + 0.02]); + + +}; + -- cgit v1.2.3