Models / Guilloche coaster
Guilloche coaster
A round coaster with a guilloche pattern: the same wavy ring drawn several times, each copy shifted a little, so the lines weave.
The cut file as the downloads lay it out: 101 × 101 mm, 1 part on 1 sheet. Rendered by KerfScript 0.2.0 from the source below.
Source
// A round coaster with a guilloche pattern: the same wavy ring drawn
// several times, each copy shifted a little, so the lines weave.
/* [Coaster] */
// Diameter
size = 95; // [60:1:140]
// Waves around the outer band
waves = 18; // [6:1:40]
// Copies of each band
copies = 7; // [2:1:14]
// Petals in the centre rosette
petals = 9; // [3:1:24]
/* [Hidden] */
$fn = 120;
R = size / 2;
steps = 720;
function band(r0, amp, k, phase) =
[for (i = [0:steps - 1]) let (a = i * 360 / steps, r = r0 + amp * sin(k * a + phase))
[r * cos(a), r * sin(a)]];
function rosette(r0, k, phase) =
[for (i = [0:steps - 1]) let (a = i * 360 / steps, r = r0 * (0.55 + 0.45 * pow(cos(k * a / 2 + phase), 2)))
[r * cos(a), r * sin(a)]];
circle(r = R);
score() {
for (j = [0:copies - 1]) polyline(band(R * 0.76, R * 0.09, waves, j * 360 / copies), closed = true);
for (j = [0:copies - 1]) polyline(rosette(R * 0.5, petals, j * 180 / (copies * petals)), closed = true);
circle(r = R * 0.9);
circle(r = R * 0.6);
}
engrave() circle(r = R * 0.06);