thickness = 12; legWidth = 20; legWallThickness = 2; rearLegLength = 30; frontLegLength = 90; frontLegCenterRotationDegrees = 55; legLift = 2; nutInsetHeight = 4; nutInsetDiameter = 15; threadDiameter = 7; module leg(width, length, thickness) { difference() { translate([-width/2, 0, 0]) cube([width, length, thickness]); translate([-width/2+legWallThickness, 0, legWallThickness]) cube([width - 2*legWallThickness, length, thickness - legWallThickness]); } translate([0, length, 0]) cylinder(r = width/2, h = thickness + legLift); cylinder(r = width/2, h = thickness); } difference() { union() { // rear leg rotate([0, 0, 180]) leg(legWidth, rearLegLength, thickness); // right leg rotate([0, 0, -frontLegCenterRotationDegrees]) leg(legWidth, frontLegLength, thickness); // leftleg rotate([0, 0, +frontLegCenterRotationDegrees]) leg(legWidth, frontLegLength, thickness); } // thread hole cylinder(r = threadDiameter/2, h = thickness); // nut inset translate([0, 0, thickness - nutInsetHeight]) cylinder(r = nutInsetDiameter/2, h = nutInsetHeight); }