$fn=256; extWallWidth=0.667; intWallWidth=0.333; module shell() { cube([40, 30, 1]); // 30x40 floor space // walls cube([extWallWidth, 30, 4]); cube([40, extWallWidth, 4]); translate([40 - extWallWidth, 0, 0]) cube([extWallWidth, 30, 4]); translate([0, 30 - extWallWidth, 0]) cube([40, extWallWidth, 4]); } module chair() { //color("cadetblue") rotate([90, 0, 0]) scale([3, 3, 3]) import("Church Chair/Church Chair.obj"); color("cadetblue") difference() { color("slategrey") translate([-0.3, 0, 1.45]) cube([2.167, 1.667, 2.9], center=true); translate([-0.63, 0, 1.2]) rotate([0, -9, 0]) translate([1.1, 0, 1]) cube([2.2, 1.7, 2], center=true); } } module stage8x8() { difference() { color("grey") cube([8, 8, 0.5]); translate([1.5, 3.25, 0.4]) linear_extrude(0.11) text("8x8", size=2); } } module stage4x4() { difference() { color("grey") cube([4, 4, 0.5]); translate([0.75, 1.5, 0.4]) linear_extrude(0.11) text("4x4", size=1); } } scale([4, 4, 4]) { //translate([0, 30, 0]) shell(); for (i = [0:1]) translate([0, i*5, 0]) stage4x4(); for (i = [0:1]) translate([5, i*9, 0]) stage8x8(); for (i = [0:89]) translate([16 + floor(i / 9)*3, (i % 9)*3]) chair(); } //scale([2, 2, 2]) chair();