Adding several photos master
authorBrian Flowers <git-admn@bsflowers.net>
Fri, 7 May 2021 00:34:16 +0000 (20:34 -0400)
committerBrian Flowers <git-admn@bsflowers.net>
Fri, 7 May 2021 00:34:16 +0000 (20:34 -0400)
Misc/AlertLamp.png [new file with mode: 0644]
Organization/DeskOrganizers/SoylentBins.png [new file with mode: 0644]
Organization/DeskOrganizers/SoylentBins.scad [new file with mode: 0644]
Tools/18650Pair.png [new file with mode: 0644]
Tools/BoltSnap.png [new file with mode: 0644]

diff --git a/Misc/AlertLamp.png b/Misc/AlertLamp.png
new file mode 100644 (file)
index 0000000..c08eaa0
Binary files /dev/null and b/Misc/AlertLamp.png differ
diff --git a/Organization/DeskOrganizers/SoylentBins.png b/Organization/DeskOrganizers/SoylentBins.png
new file mode 100644 (file)
index 0000000..884c7ea
Binary files /dev/null and b/Organization/DeskOrganizers/SoylentBins.png differ
diff --git a/Organization/DeskOrganizers/SoylentBins.scad b/Organization/DeskOrganizers/SoylentBins.scad
new file mode 100644 (file)
index 0000000..fe310c6
--- /dev/null
@@ -0,0 +1,272 @@
+/*## COPYRIGHT NOTICE
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program 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 General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <https://www.gnu.org/licenses/>.
+#
+#
+#    COPYRIGHT 2020 : Slightly Cyberpunk
+#                     www.slightlycyberpunk.com
+#
+#
+
+### DESCRIPTION
+#
+#    I've been buying Soylent (www.soylent.com) occasionally for a few years,
+#     so I've collected a few of the boxes they ship it in. They're very uniform
+#     in size, great for organization projects where you need twenty identical
+#     boxes :)
+#    This design uses these Soylent boxes (likely adaptable to other size boxes)
+#     to create a set of hanging angled storage bins. Typical US large isopropyl
+#     alcohol bottles (32oz; 78mm square) will fit perfectly to subdivide into
+#     eight smaller bins.
+#    The 3D printed components consist of six angled top hooks, and six bottom
+#     braces. Also included in this design are three 2"x4" wood blocks and a 
+#     1"x12"x3' board for support (and because these hooks barely fit on my
+#     print bed, so I needed the 2x4 to shim them out). Assemble with your
+#     favorite wood screws or some bolts.
+#    Hook models are in mm, but the wood and boxes are in...deci-inches?
+#     If you just print topHook() and bottomBrace() you'll be fine
+#     Notice they are scaled into...deci-inches?...wherever they are used
+#     I'm sorry :(
+*/
+
+// === Main model ===
+// Stack of 3 Soylent boxes at 30 degree angles
+soystack30();
+
+// Uncomment to preview other angles
+/*
+translate([150,0,0]) {
+  soystack45();
+}
+translate([300,0,0]) {
+  soystack60();
+}
+translate([450,0,0]) {
+  soystack75();
+}*/
+
+// Rear support
+//   1"x12"x3'
+translate([-6,70,0]) {
+  cube([120,10,320]);
+}
+//   2x4s
+translate([-6,56,285]) {
+  cube([120,14,34]);
+}
+translate([-6,56,185]) {
+  cube([120,14,34]);
+}
+translate([-6,56,85]) {
+  cube([120,14,34]);
+}
+
+// 30 degree Top hooks
+for(i = [0:1:2]) {
+  for(j = [0:1:1]) {
+    translate([15+65*j,22,100+100*i]) {
+      scale([1/2.54,1/2.54,1/2.54]) {
+        tophook();
+      }
+    }
+  }
+}
+
+// 30 degree Bottom braces
+for(i = [0:1:2]) {
+  for(j = [0:1:1]) {
+    translate([(15+65*j),61,35+100*i]) {
+      scale([1/2.54,1/2.54,1/2.54]) {
+        bottombrace();
+      }
+    }
+  }
+}
+
+
+// === Sub Models ===
+// Stacks of Soylent boxes at various angles
+// Made during the initial design phase to check the options
+// I didn't make hooks for the other angles, only 30 degrees
+// But if you wanted to modify the hooks, you can model off these
+module soystack30() {
+  translate([0,0,0]) {
+    rotate([30,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,100]) {
+    rotate([30,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,200]) {
+    rotate([30,0,0]) {
+      soybox(); 
+    }
+  }
+}
+
+module soystack45() {
+  translate([0,0,0]) {
+    rotate([45,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,100]) {
+    rotate([45,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,200]) {
+    rotate([45,0,0]) {
+      soybox(); 
+    }
+  }
+}
+
+module soystack60() {
+  translate([0,0,0]) {
+    rotate([60,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,90]) {
+    rotate([60,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,180]) {
+    rotate([60,0,0]) {
+      soybox(); 
+    }
+  }
+}
+
+module soystack75() {
+  translate([0,0,0]) {
+    rotate([75,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,80]) {
+    rotate([75,0,0]) {
+      soybox(); 
+    }
+  }
+
+  translate([0,0,160]) {
+    rotate([75,0,0]) {
+      soybox(); 
+    }
+  }
+}
+
+// === MODULES ===
+// An individual Soylent box
+module soybox() {
+  difference() {
+    cube([108,78,68]);
+    translate([4,4,4]) {
+      cube([100,70,68]);
+    }
+  }
+}
+
+// Top hook
+module tophook() {
+    cube([10,80,10]);
+
+    intersection() {
+      translate([0,82,-10]) {
+        rotate([45,0,0]) {
+          cube([10,20,20]);
+        }
+      }
+      translate([0,60,-10]) {
+        cube([10,20,30]);
+      }
+    }
+
+    translate([0,20,-39]) {
+      rotate([30,0,0]) {
+        cube([10,10,50]);
+      }
+    }
+
+    translate([0,.3,5.5]) {
+      rotate([0,90,0]) {
+        scale([1,1.2,1]) {
+          cylinder(r=4.5,h=10);
+        }
+      }
+    }
+
+    difference() {
+      union() {
+        translate([0,80,-15]) {
+          cube([10,5,40]);
+        }
+        translate([5,85,-15]) {
+          rotate([90,0,0]) {
+            cylinder(r=5,h=5);
+          }
+        }
+        translate([5,85,25]) {
+          rotate([90,0,0]) {
+            cylinder(r=5,h=5);
+          }
+        }
+      }
+      translate([5,85,-13]) {
+        rotate([90,0,0]) {
+          cylinder(r2=4,r1=2.5,h=5);
+        }
+      }
+      translate([5,85,22]) {
+        rotate([90,0,0]) {
+          cylinder(r2=4,r1=2.5,h=5);
+        }
+      }
+    }
+}
+
+// Bottom brace
+module bottombrace() {
+    difference() {
+      translate([0,2,0]) {
+        cube([20,20,15]);
+      }
+      rotate([30,0,0]) {
+        cube([20,20,15]);
+      }
+      translate([10,23,10]) {
+        rotate([90,0,0]) {
+          cylinder(r2=3.5,r1=2.5,h=5);
+        }
+      }
+      translate([10,18,10]) {
+        rotate([90,0,0]) {
+          cylinder(r=4.5,h=10);
+        }
+      }
+    }
+  }
\ No newline at end of file
diff --git a/Tools/18650Pair.png b/Tools/18650Pair.png
new file mode 100644 (file)
index 0000000..aca328a
Binary files /dev/null and b/Tools/18650Pair.png differ
diff --git a/Tools/BoltSnap.png b/Tools/BoltSnap.png
new file mode 100644 (file)
index 0000000..1886aff
Binary files /dev/null and b/Tools/BoltSnap.png differ