module plate(){ difference(){ cube([140,115,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 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([30,15,0]) hardKernel(); //translate([18,15,0])driveBay(); //translate([8.5,15,0])driveBay(); plateX(); translate([15,15,0]) hardKernelX();