From: daniel watson Date: Thu, 5 Apr 2018 05:14:48 +0000 (-0700) Subject: add 3030 dampener feet X-Git-Url: http://challenge-bot.com/repos/?p=ozzloy%40gmail.com%2F3d-printables;a=commitdiff_plain;h=14f68eaf9a641fa4cf34c1feb9d98429bdafee8d add 3030 dampener feet --- diff --git a/3030-dampener-feet.scad b/3030-dampener-feet.scad new file mode 100644 index 0000000..28918ba --- /dev/null +++ b/3030-dampener-feet.scad @@ -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 . +*/