From 0551981b07e269592ff0da59f4ce5c8782b7f255 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Thu, 15 Jul 2021 10:53:07 +0800 Subject: [PATCH] generalize shape --- examples/cutted_donut.scad | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/examples/cutted_donut.scad b/examples/cutted_donut.scad index 582400f0..2e3a62ff 100644 --- a/examples/cutted_donut.scad +++ b/examples/cutted_donut.scad @@ -1,26 +1,23 @@ use ; $fn = 96; -arc_a = 120; -arc_r = 15; inner_r = 12; number_of_turns = 1; -cutted_donut(arc_a, arc_r, inner_r, number_of_turns) ; -module cutted_donut(arc_a, arc_r, inner_r, number_of_turns) { +arc_a = 120; +arc_r = 15; +shape = [ + for(a = [0:360 / $fn:arc_a]) + [arc_r * cos(a) , arc_r * sin(a)] +]; - arc_step = 360 / $fn; - for(init_a = [0, 180]) { - sh = [ - for(a = [0:arc_step:arc_a]) - [arc_r * cos(a + init_a) , arc_r * sin(a + init_a)] - ]; - ring_extrude( - sh, - radius = arc_r + inner_r, - twist = 180 + 360 * number_of_turns, - angle = 360 - ); +cutted_donut(shape, inner_r, number_of_turns) ; + +module cutted_donut(shape, inner_r, number_of_turns) { + r = arc_r + inner_r; + t = 180 + 360 * number_of_turns; + for(s = [shape, shape * -1]) { + ring_extrude(s, radius = r, twist = t, angle = 360); } }