Models / Sunflower lamp panel

Sunflower lamp panel

A lamp panel with holes on a sunflower spiral. Every hole sits at the golden angle from the one before, which packs them evenly.

The cut file as the downloads lay it out: 156 × 156 mm, 1 part on 1 sheet. Rendered by KerfScript 0.2.0 from the source below.

Source 32 lines

// A lamp panel with holes on a sunflower spiral. Every hole sits at the
// golden angle from the one before, which packs them evenly.
 
/* [Panel] */
// Panel width
width = 150; // [80:5:300]
// Panel height
height = 150; // [80:5:300]
// Number of holes
count = 260; // [50:10:800]
// Smallest hole
min_hole = 1.6; // [1:0.1:5]
// Largest hole
max_hole = 6.5; // [3:0.5:12]
// Margin without holes
margin = 9; // [4:1:30]
 
/* [Hidden] */
$fn = 24;
golden = 180 * (3 - sqrt(5));
reach = min(width, height) / 2 - margin - max_hole / 2;
spacing = reach / sqrt(count);
 
difference() {
  rect([width, height], r = 4, center = true);
  for (i = [1:count]) {
    rr = spacing * sqrt(i);
    d = lerp(min_hole, max_hole, i / count);
    rotate(i * golden) translate([rr, 0]) circle(d = d);
  }
}
score() rect([width - 2 * margin + 4, height - 2 * margin + 4], r = 3, center = true);