/* GNU AGPLv3 (or later at your option) see bottom for more license info */ /* riser foot for raising bathroom shelves */ $fn = 200; fudge = 1; // how much higher the shelf needs to be extra_height = 150; // radius of foot of shelf actually measured with calipers foot_radius_measured = 42 / 2; foot_radius = foot_radius_measured + fudge; wall_thickness = 3; module ring_2d(inner_radius, outer_radius) { difference() { circle(outer_radius); circle(inner_radius); } } module foot_riser(foot_radius, extra_height) { foot_surround_height = 25; outer_radius = foot_radius + wall_thickness; flange_radius = outer_radius + foot_radius * 2; flange_height = foot_radius / 2; // raise the foot linear_extrude(height = extra_height) { circle(foot_radius); } // surround the foot so it stays on riser linear_extrude(height = extra_height + foot_surround_height) { ring_2d(foot_radius, outer_radius); } // put a flange at the bottom of the foot for stability linear_extrude(height = flange_height) { ring_2d(outer_radius, flange_radius); } } module foot_riser_against_wall(foot_radius, extra_height) { foot_surround_height = 25; outer_radius = foot_radius + wall_thickness; flange_radius = outer_radius + foot_radius * 2; flange_height = foot_radius / 2; // raise the foot linear_extrude(height = extra_height) { circle(foot_radius); } // surround the foot so it stays on riser linear_extrude(height = extra_height + foot_surround_height) { ring_2d(foot_radius, outer_radius); } // put a flange at the bottom of the foot for stability linear_extrude(height = flange_height) { difference() { ring_2d(outer_radius, flange_radius); translate([outer_radius + flange_radius + 1, 0]) { square(flange_radius * 2, center=true); } } } } /* This file is part of 3d-printables. 3d-printables is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 3d-printables is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with challenge-bot. If not, see . */