update puzzle to latest version to match solution instructions
[ozzloy@gmail.com/3d-printables] / foot-riser-data.scad
index dbc60b26ce5e8e6d481452ad8b6de5ba77cdf75e..c765fecd1da4a506783a5bcebec379acb97bdfe3 100644 (file)
@@ -3,20 +3,53 @@
 
 /* riser foot for raising bathroom shelves */
 
+$fn = 200;
+
 fudge = 1;
-riser_height = 200;
-foot_radius = 42 / 2 + fudge;
+// 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, wall_thickness) {
-  outer_radius = inner_radius + wall_thickness;
+module ring_2d(inner_radius, outer_radius) {
   difference() {
     circle(outer_radius);
     circle(inner_radius); } }
 
-module foot_riser() {
-     linear_extrude(height = 200) {
-          ring_2d(foot_radius, wall_thickness); } }
+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.