module helper_disk(diameter=15,height=1) {
cylinder(d=diameter,h=height);
}
module helper_disks_for_rectangle(size, diameter=15, center=true) {
x_size = size[0]; y_size = size[1]; outset = diameter*0.1; // amount to move disk off-center // FIXME: use mirror_xy() to replace most of this logic disc_offsets = [[-outset, -outset, 0], [-outset, y_size + outset, 0], [x_size + outset, y_size + outset, 0], [x_size + outset, -outset, 0]]; centering_offset = center ? [-x_size/2, -y_size/2, 0] : [0, 0, 0]; translate(centering_offset) for(offset = disc_offsets) { translate(offset) helper_disk(); }
}
// FIXME: create demo for this module