add 3030 dampener feet
authordaniel watson <ozzloy@gmail.com>
Thu, 5 Apr 2018 05:14:48 +0000 (22:14 -0700)
committerdaniel watson <ozzloy@gmail.com>
Thu, 5 Apr 2018 05:14:48 +0000 (22:14 -0700)
3030-dampener-feet.scad [new file with mode: 0644]

diff --git a/3030-dampener-feet.scad b/3030-dampener-feet.scad
new file mode 100644 (file)
index 0000000..28918ba
--- /dev/null
@@ -0,0 +1,96 @@
+/* GNU AGPLv3 (or later at your option)
+   see bottom for more license info.
+   please do not remove this notice. */
+
+/* measurements from misumi's 3030 aluminum extrusion data sheet
+   https://us.misumi-ec.com/pdf/fa/2012/p2_0545.pdf */
+
+//$fn = 30; // use this while editing
+$fn = 100; // use this for generating STL
+
+foot_height = 18;
+foot_length = 20;
+wall_width = 2;
+
+// 3030 dimensions
+x = 30; // adding a little because printers aren't perfect
+y = 30; // adding a little because printers aren't perfect
+opening_width = 8;
+
+outer_block = (30 - 16.5) / 2;
+wall = 2;
+
+module ring(outer_radius, wall_width) {
+  difference() {
+    circle(outer_radius);
+    circle(outer_radius - wall_width); } }
+
+module fillet(r) {
+   offset(-r) {
+     offset(r) {
+       children(); } } }
+
+module round_corners(r) {
+  fillet(r) { fillet(-r) { children(); } } }
+
+module half_foot_2d() {
+  // outer ring
+  difference() {
+    ring(foot_height + wall_width, wall_width);
+    square(foot_height + wall_width);
+    rotate(-45) {
+      square(foot_height + wall_width); } }
+  // upper connector, vertical 3030 holder
+  translate([-wall_width, -wall_width]) {
+    square([wall_width, foot_height + wall_width]); }
+  // upper connecter, horizontal 3030 holder
+  translate([-wall_width, -wall_width]) {
+    square([wall_width + x / 2, wall_width]); }
+  // bottom connector
+  translate([cos(45) * foot_height,
+             -(sin(45) * foot_height + wall_width)]) {
+    square([x / 2 - cos(45) * foot_height, wall_width]); }
+  // bottom nub, goes into bottom 3030 opening
+  translate([(x - opening_width) / 2 + 0.2, 0]) {
+    square([opening_width / 2 - 0.2, wall_width * 2]); }
+  // side nub, goes into side 3030 openings
+  a = opening_width;
+  b = foot_height + wall_width - (y - opening_width) / 2;
+  side_nub_length = (a < b) ? a : b;
+  fudge = 0.3;
+  translate([0, (y - opening_width) / 2 + fudge]) {
+    square([wall_width, side_nub_length - fudge]); } }
+
+module foot_2d() {
+  round_corners(wall_width / 2.1) {
+    translate([-x / 2, 0, 0]) {
+      half_foot_2d(); }
+    translate([x / 2, 0, 0]) {
+      mirror() {
+        half_foot_2d(); } } } }
+
+module foot() {
+  rotate(a = 0, v = [1, 0, 0]) {
+    linear_extrude(height = foot_length) {
+      foot_2d(); } } }
+
+// half_foot_2d();
+// foot_2d();
+foot();
+
+/*
+  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 <http://www.gnu.org/licenses/>.
+*/