$fn=36; ep = 0.01; height = 4.5; iDepth = 3.5; oDepth = 9; iWidth = 13; oWidth = 20; clipWidth=5; overhang=5; pinClear = 2.2; // pin clearance slideClear = 1.8; union() { // base bracket difference() { translate([-oWidth/2, 0, 0]) cube([oWidth, oDepth, height + ep]); translate([-iWidth/2, -ep, -ep]) cube([iWidth, iDepth + ep, height + 3*ep]); } // clip difference() { translate([-clipWidth/2, -overhang, height]) cube([clipWidth, oDepth + overhang, 4]); color("red") union() { translate([-oWidth/2, -2.5, height + 1.25]) rotate([0, 90, 0]) cylinder(d=3, h=oWidth); translate([-clipWidth/2 - ep, -overhang - ep, height - ep]) cube([clipWidth + 2*ep, overhang + ep, 1.5 + ep]); } } }