update puzzle to latest version to match solution instructions
[ozzloy@gmail.com/3d-printables] / foot-riser-data.scad
index 905dd3ac4136bcfa1337f8040ff8bf32f7ebd552..c765fecd1da4a506783a5bcebec379acb97bdfe3 100644 (file)
@@ -3,7 +3,7 @@
 
 /* riser foot for raising bathroom shelves */
 
-$fn = 100;
+$fn = 200;
 
 fudge = 1;
 // how much higher the shelf needs to be
@@ -21,12 +21,35 @@ module ring_2d(inner_radius, outer_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); } }
+    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.