wedge_thickness = 2; slots_x = 4; slots_y = 4; x_outside = 56; y_outside = 68; outside_offset = 2; outside_offset_seat = 1; seat_width = 1; union(){ linear_extrude(2){ difference(){ slot_width = (x_outside - 2 * outside_offset - (slots_x-1)*wedge_thickness) / slots_x; slot_height = (y_outside - 2 * outside_offset - (slots_y-1)*wedge_thickness) / slots_y; square(size=[x_outside, y_outside], center=false); translate([outside_offset, outside_offset, 0]) for (i =[0:slots_y-1]){ for (j = [0:slots_x-1]){ translate([j*(slot_width+wedge_thickness), i*(slot_height+wedge_thickness), 0]) square(size=[slot_width, slot_height], center=false); } } } } linear_extrude(5){ translate([outside_offset_seat, outside_offset_seat]) difference(){ square(size=[x_outside-2*outside_offset_seat, y_outside-2*outside_offset_seat], center=false); translate([outside_offset_seat, outside_offset_seat, 0]) square(size=[x_outside-2*outside_offset_seat-2*seat_width, y_outside-2*outside_offset_seat-2*seat_width], center=false); } } }