// units should be in mm // Design for Quadra 700 cylindrical foot. footwidth = 15; baseheight = 5; footlength = 47 + 3; // +3 based on test1. Needed 1mm extra space between half-cyl and middle bump, and 2mm between middle bump and back bump. roundradius = 7.5; roundheight = baseheight + 15 + 3; //first stripe in the case is 1.5cm from the bottom of the case backbumpheight = 2; topbumpheight = 2; topbumpoffset = 1; middlesubtractwidth = 2; middlebumpoffset = 29 - middlesubtractwidth + 1; // +1 based on test1 middlebumpheight = 5; // tall round part linear_extrude(height=roundheight) { difference() { circle(r=roundradius, $fn=50); translate([0, -10, 0]) { square([20,20]); } } } // top bump translate([0, -(footwidth/2) + topbumpoffset, baseheight + 15 - topbumpoffset + 0.5]) { cube([topbumpheight, (footwidth - (topbumpoffset*2)), topbumpheight - 0.5]); } // bottom flat part translate([0, -(footwidth/2), 0]) { footbaselength = (footlength - roundradius); difference() { cube([footbaselength - 0.5, footwidth, baseheight]); //subtract out the middle hole // overshoot on the subtraction on the edges // to make sure they're clean. translate([middlebumpoffset, -0.1, baseheight - middlesubtractwidth]) { cube([middlesubtractwidth, footwidth +1, middlesubtractwidth+1]); } } translate([middlebumpoffset + middlesubtractwidth, 0, baseheight]) { cube([middlesubtractwidth, footwidth, middlebumpheight]); } // back bump translate([(footbaselength - backbumpheight), 0, baseheight]) { cube([backbumpheight - 0.5, footwidth, backbumpheight]); } }