buttonHolderCarterRadius=8.5; buttonHolderwallsThickness=1.5; buttonHolderPlateX=20; buttonHolderPlateY=30; buttonHolderFacePlateZ=2*buttonHolderCarterRadius+2; buttonHolderDistFromEdge=5; buttonHolderScrewHolesRadius=3/2; buttonHolderPBarX=6; difference() { cube([buttonHolderPlateX,buttonHolderPlateY,buttonHolderwallsThickness]); translate([buttonHolderPlateX/2,buttonHolderDistFromEdge,-buttonHolderwallsThickness/2]) { cylinder(r=buttonHolderScrewHolesRadius, h=2*buttonHolderwallsThickness,$fn=64); } translate([buttonHolderPlateX/2,buttonHolderPlateY-buttonHolderDistFromEdge,-buttonHolderwallsThickness/2]) { cylinder(r=buttonHolderScrewHolesRadius, h=2*buttonHolderwallsThickness,$fn=64); } } translate([-buttonHolderPBarX,0,0]) { cube([buttonHolderPBarX,buttonHolderwallsThickness,buttonHolderFacePlateZ+buttonHolderwallsThickness]); } translate([-buttonHolderPBarX,buttonHolderPlateY-buttonHolderwallsThickness,0]) { cube([buttonHolderPBarX,buttonHolderwallsThickness,buttonHolderFacePlateZ+buttonHolderwallsThickness]); } //reinforcement bar1 (left, vertical) translate([buttonHolderwallsThickness,0,buttonHolderwallsThickness]) { cube([buttonHolderwallsThickness,buttonHolderwallsThickness,buttonHolderFacePlateZ]); } //reinforcement bar2 (right, vertical) translate([buttonHolderwallsThickness,buttonHolderPlateY-buttonHolderwallsThickness,buttonHolderwallsThickness]) { cube([buttonHolderwallsThickness,buttonHolderwallsThickness,buttonHolderFacePlateZ]); } difference() { translate([0,0,buttonHolderwallsThickness]) { cube([buttonHolderwallsThickness,buttonHolderPlateY,buttonHolderFacePlateZ]); } translate([-buttonHolderwallsThickness/2,buttonHolderPlateY/2,buttonHolderwallsThickness+buttonHolderFacePlateZ/2]) { rotate([0,90,0]) { cylinder(r=buttonHolderCarterRadius, h=2*buttonHolderwallsThickness,$fn=64); } } }