From a08216d0b8c1752716c2cacbe38a038f33b49998 Mon Sep 17 00:00:00 2001 From: Martin Budden Date: Sat, 18 Jan 2020 18:39:13 +0000 Subject: [PATCH] Added SK shaft support brackets. --- tests/sk_brackets.scad | 30 ++++++++++ vitamins/sk_bracket.scad | 112 ++++++++++++++++++++++++++++++++++++++ vitamins/sk_brackets.scad | 35 ++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 tests/sk_brackets.scad create mode 100644 vitamins/sk_bracket.scad create mode 100644 vitamins/sk_brackets.scad diff --git a/tests/sk_brackets.scad b/tests/sk_brackets.scad new file mode 100644 index 0000000..06e2bbf --- /dev/null +++ b/tests/sk_brackets.scad @@ -0,0 +1,30 @@ +// +// NopSCADlib Copyright Chris Palmer 2018 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib 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. +// +// NopSCADlib 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 NopSCADlib. +// If not, see . +// +include <../core.scad> +use <../utils/layout.scad> + +include <../vitamins/sk_brackets.scad> + +module sk_brackets() + layout([for(s = sk_brackets) 1.5 * sk_size(s)[1]]) + sk_bracket_assembly(sk_brackets[$i]); + +if($preview) + sk_brackets(); + diff --git a/vitamins/sk_bracket.scad b/vitamins/sk_bracket.scad new file mode 100644 index 0000000..a7421dd --- /dev/null +++ b/vitamins/sk_bracket.scad @@ -0,0 +1,112 @@ +// +// NopSCADlib Copyright Chris Palmer 2018 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib 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. +// +// NopSCADlib 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 NopSCADlib. +// If not, see . + +// +//! SK shaft support brackets +// +include <../core.scad> +include <../utils/fillet.scad> + +include +use + +sk_bracket_color = grey70; + +function sk_diameter(type) = type[1]; //! Rod hole diameter +function sk_hole_offset(type) = type[2]; //! Rod hole offset +function sk_size(type) = [type[4],type[6],type[5]]; //! Size of bracket +function sk_base_height(type) = type[7]; //! Height of base containing the screws +function sk_screw_separation(type) = type[9]; //! Separation of screws in the base + +module sk_bracket(type) { //! SK shaft support bracket + vitamin(str("sk_bracket(", type[0], "): SK", sk_diameter(type), " shaft support bracket")); + + d = type[1]; + h = type[2]; + E = type[3]; + W = type[4]; + L = type[5]; + F = type[6]; + G = type[7]; + P = type[8]; + B = type[9]; + S = type[10]; + bolthole_radius = type[11]; + + color(sk_bracket_color) { + translate([0 , -h, 0]) { + fillet = 0.5; + rotate([-90, 0, 0]) + linear_extrude(G) + difference() { + translate([-(W - 2*fillet) / 2, -L / 2, 0]) + square([W - 2 * fillet, L]); + translate([-B / 2, 0]) + circle(r = bolthole_radius); + translate([B / 2, 0]) + circle(r = bolthole_radius); + } + for(x = [W / 2 - 2 * fillet, -W / 2 + 2 * fillet]) + translate([x, G / 2, 0]) + rounded_rectangle([4 * fillet, G, L], fillet); + } + + translate([0, -h, -L /2]) + linear_extrude(L) { + fillet = 0.75; + difference() { + translate([-P / 2, 0]) + rounded_square([P, F], fillet, center = false); + cut_width = 1; + translate([-cut_width / 2, h + cut_width]) + square([cut_width, F - h]); + translate([0, h]) + circle(d = d); + } + translate([P/2,G]) + fillet(fillet, 0); + translate([-P/2,G]) + rotate(90) + fillet(fillet, 0); + } + } + // Add the retaining bolt. No hole was cut, since it is only for display. + color(grey20) + translate([P / 2 - screw_head_height(M3_cap_screw) / 2, (F - h + d / 2) / 2, 0]) + rotate([0,90,0]) + not_on_bom() no_explode() + screw(M3_cap_screw, P - screw_head_height(M3_cap_screw) / 2 + eps); +} + + +module sk_bracket_assembly(type, screw_length = 16, screw_type = M5_cap_screw) { //! Assembly with fasteners in place + sk_bracket(type); + + washer_type = screw_washer(screw_type); + washer_thickness = washer_thickness(washer_type); + + for (x = [-sk_screw_separation(type), sk_screw_separation(type)]) + translate([x / 2, sk_base_height(type) - sk_hole_offset(type), 0]) + rotate([-90, 0, 0]) { + screw_and_washer(screw_type, screw_length); + translate_z(-screw_length + 2 * washer_thickness) + nut(screw_nut(screw_type)) + washer(washer_type); + } +} + diff --git a/vitamins/sk_brackets.scad b/vitamins/sk_brackets.scad new file mode 100644 index 0000000..e8ece9e --- /dev/null +++ b/vitamins/sk_brackets.scad @@ -0,0 +1,35 @@ +// +// NopSCADlib Copyright Chris Palmer 2018 +// nop.head@gmail.com +// hydraraptor.blogspot.com +// +// This file is part of NopSCADlib. +// +// NopSCADlib 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. +// +// NopSCADlib 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 NopSCADlib. +// If not, see . +// + +// +// SK shaft support brackets +// + +include <../core.scad> +include <../vitamins/screws.scad> + +// d h E W L F G P B S bolthole +SK8 = ["SK8", 8, 20, 21, 42, 14, 32.8, 6, 18, 32, 5.5, M5_clearance_radius]; +SK10 = ["SK10", 10, 20, 21, 42, 14, 32.8, 6, 18, 32, 5.5, M5_clearance_radius]; +SK12 = ["SK12", 12, 23, 21, 42, 14, 37.5, 6, 18, 32, 5.5, M5_clearance_radius]; +SK16 = ["SK16", 16, 27, 24, 48, 16, 44.0, 8, 25, 38, 5.5, M5_clearance_radius]; + +sk_brackets = [SK8, SK10, SK12, SK16]; +use +