switchHeight = 20;
switchWidth = 12;
switchLength = 20;

switchHoleFromFront = 9; // we assume "front" is the left here, adjust for right
switchHoleFromSide = 5.5;
switchHoleSpacing = 9;

baseWidth = 20;
baseLength = 25;
baseThickness = 2;

slotWidth = 2;
slotLength = 15;
slotCenterFromBack = 11;
slotFromSide = 5.5;
slotSpacing = 9;

filletSize = 5;

$fn=10;

// switch mount
difference(){
  cube([switchWidth,switchLength,switchHeight]);
  translate([switchHoleFromFront, switchHoleFromSide, 10/2+switchHeight/2+0.1]) {
    #cylinder(h=10, r=1, center=true);
  }
  translate([switchHoleFromFront, switchHoleFromSide+switchHoleSpacing, 10/2+switchHeight/2+0.1]) {
    #cylinder(h=10, r=1, center=true);
  }
}
// base
translate([0,-baseLength,0]){
  difference(){
    cube([baseWidth,baseLength,baseThickness]);
    translate([slotFromSide,slotCenterFromBack,baseThickness/2]){
      cube([slotWidth,slotLength,baseThickness+0.2], center=true);
    }
    translate([slotFromSide+slotSpacing,slotCenterFromBack,baseThickness/2]){
      cube([slotWidth,slotLength,baseThickness+0.2], center=true);
    }
  }
}
// fillet
translate([0,-filletSize,baseThickness]) {
  prism(baseWidth,filletSize,filletSize);
}

module prism(l, w, h){
  polyhedron(//pt 0        1        2        3        4        5
          points=[[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
          faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
          );
}

