module chamfer(){
cylinder(h=150, r1=2, r2=2, $fn=4);
}
module tile( pos ){
translate( pos ){
difference() {
cube([150, 70, 10]);
translate([ 0, 0,10]) rotate([ 0,90,0]) chamfer();
translate([ 0,70,10]) rotate([ 0,90,0]) chamfer();
translate([ 0, 0,10]) rotate([-90, 0,0]) chamfer();
translate([150, 0,10]) rotate([-90, 0,0]) chamfer();
}
}
}
module tiles(){
for( col = [0 : 3]){
for( row = [0 : 20]){
y = (70+5) * row;
x = (150+5) * col - 75 * (row % 2);
tile( [x,y,0] );
}
}
}
module aligned_tiles(){
difference() {
tiles();
translate([-200, -5,-5]) cube([200, 2000, 20]);
translate([ 500, -5,-5]) cube([200, 2000, 20]);
}
}
aligned_tiles();
translate([0,0,-20]) cube([500, 1570, 20]);
