/ examples / circle_packing / packing_circles.scad
packing_circles.scad
 1  use <util/rand.scad>
 2  use <experimental/circle_packing.scad>
 3  
 4  size = [200, 100];
 5  min_radius = 1;
 6  point_numbers = 100;
 7      
 8  points = [
 9      for(i = [0:point_numbers - 1])
10      [rand(0, size.x), rand(0, size.y)]
11  ]; 
12  
13  circles = circle_packing(points, min_radius);
14  mr = max([for(c = circles) c[1]]);
15  translate([0, 0, mr]) 
16      for(c = circles) {
17          translate(c[0])
18              sphere(c[1], $fn = 48);
19      }
20  
21  for(c = circles) {
22      translate(c[0])
23      linear_extrude(mr) 
24          circle(c[1]/ 3, $fn = 48);
25  }
26  linear_extrude(1) square(size);