1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-17 20:11:50 +02:00

generalize shape

This commit is contained in:
Justin Lin
2021-07-15 10:53:07 +08:00
parent e6639cd01c
commit 0551981b07

View File

@@ -1,26 +1,23 @@
use <ring_extrude.scad>; use <ring_extrude.scad>;
$fn = 96; $fn = 96;
arc_a = 120;
arc_r = 15;
inner_r = 12; inner_r = 12;
number_of_turns = 1; 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;
arc_step = 360 / $fn; shape = [
for(init_a = [0, 180]) { for(a = [0:360 / $fn:arc_a])
sh = [ [arc_r * cos(a) , arc_r * sin(a)]
for(a = [0:arc_step:arc_a])
[arc_r * cos(a + init_a) , arc_r * sin(a + init_a)]
]; ];
ring_extrude(
sh, cutted_donut(shape, inner_r, number_of_turns) ;
radius = arc_r + inner_r,
twist = 180 + 360 * number_of_turns, module cutted_donut(shape, inner_r, number_of_turns) {
angle = 360 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);
} }
} }