
module plate(){
    difference(){
        cube([170,115,2]);
        //cube([130,115,2]);
        //cube([85,85,2]);
            for(x=[1:33],y=[1:22]){
                translate([x*5,y*5,0]){
                    cylinder(5,2,2);
                }
            }
    }
}

module plateX(){
    difference(){
        cube([110,85,2]);
        //cube([130,115,2]);
        //cube([85,85,2]);
            for(x=[1:31],y=[1:22]){
                translate([x*5,y*5,0]){
                    cylinder(5,2,2);
                }
            }
    }
}
module standoff(){
    difference(){
        cylinder(6,5,2);
        cylinder(6,1,1);
    }
}

module standoffLarge(){
    difference(){
        cylinder(14,5,2);
        cylinder(14,1,1);
    } 
}

module rasPI(){
    standoff();
    translate([58,0,0]) standoff();
    translate([58,49,0]) standoff();
    translate([0,49,0]) standoff();
}

module hardKernel(){
    standoffLarge();
    translate([102,0,0]) standoffLarge();
    translate([0,81.4,0]) standoffLarge();
    translate([102,88.4,0]) standoffLarge();
}

module hardKernelX(){
    standoffLarge();
    translate([76,0,0]) standoffLarge();
    translate([0,52,0]) standoffLarge();
    translate([76,52,0]) standoffLarge();
}

module driveBay(){
    difference(){
        cube([2.5,100,12]);
        translate([-1,10,6.5])driveBayHoles();
    }
}
module driveBayHoles(){
    rotate([0,90,0])cylinder(5,3,3);
    translate([0,76.6,0])rotate([0,90,0])cylinder(5,3,3);
}
plate();
//translate([15,15,0]) rasPI();
translate([50,15,0]) hardKernel();
translate([18,15,0])driveBay();
translate([8.5,15,0])driveBay();
translate([28,15,0])driveBay();
translate([38,15,0])driveBay();
//plateX();
//translate([15,15,0]) hardKernelX();

