From: daniel watson Date: Mon, 9 Jan 2017 22:07:36 +0000 (-0800) Subject: make cap with finger divot X-Git-Url: http://challenge-bot.com/repos/?p=ozzloy%40gmail.com%2F3d-printables;a=commitdiff_plain;h=7f1519fbd19ff5dab927efb7138d3b19dd74642d make cap with finger divot --- diff --git a/spin-data.scad b/spin-data.scad index e9a80b7..0758c78 100644 --- a/spin-data.scad +++ b/spin-data.scad @@ -10,17 +10,57 @@ bearing = "608zz"; weight_lip_thickness = 1; wall_thickness = 2; penny_thickness = 1.52; -spinner_height = penny_thickness * 5 + 2; -_608zz_radius = 22; -_608zz_thickness = 7; penny_radius = 19.05 / 2; + +_608zz_radius = 22 / 2; +_608zz_inner_radius = 8.1 / 2; +_608zz_cover_radius = 19.4 / 2; +_608zz_cap_footprint_radius = 12 / 2; +_608zz_thickness = 7; + weight_radius = (weight == "penny") ? penny_radius : _608zz_radius; weight_thickness = (weight == "penny") ? penny_thickness * 5 : _608zz_thickness; + bearing_radius = (bearing == "608zz") ? _608zz_radius : 1/0; +bearing_inner_radius = (bearing == "608zz") ? _608zz_inner_radius : 1/0; +bearing_cover_radius = (bearing == "608zz") + ? _608zz_cover_radius + wall_thickness + : 1/0; +bearing_cap_footprint_radius = + (bearing == "608zz") ? _608zz_cap_footprint_radius : 1/0; bearing_thickness = (bearing == "608zz") ? _608zz_thickness : 1/0; + +spinner_height = penny_thickness * 5 + 2; arms = 3; +module cap(bearing_inner_radius, + bearing_cap_footprint_radius, + bearing_cover_radius, + bearing_thickness) { + footprint_height = 1.6; + footprint_radius_safety = 0.25; + cap_height = 3; + bearing_cover_radius_safety = 0.75; + bearing_thickness_safety = 0.2; + + difference() { + union() { + cylinder(r1 = bearing_cover_radius - tan(30) * cap_height, + r2 = bearing_cover_radius, + h = cap_height); + linear_extrude(height = cap_height + footprint_height) { + circle(bearing_cap_footprint_radius - footprint_radius_safety); } + linear_extrude(height = cap_height + + footprint_height + + bearing_thickness / 2 + - bearing_thickness_safety) { + circle(bearing_inner_radius); } } + translate([0, 0, -0.01]) { + cylinder(r1 = bearing_inner_radius + tan(30) * (cap_height - 1), + r2 = bearing_inner_radius, + h = cap_height - 1); } } } + module ring(outer_radius, inner_radius) { difference() { circle(outer_radius); @@ -101,11 +141,11 @@ module spin(weight_radius, arms, wall_thickness, bearing_radius, - bearing_thickness, - spinner_height) { + bearing_thickness) { /* TODO: make window size parameter */ /* TODO: rethink how lips are done */ /* TODO: right now, weight is assumed to be thicker than bearing*/ + spinner_height = weight_thickness + 2 * weight_lip_thickness; bearing_lip_thickness = (spinner_height - bearing_thickness) / 2; linear_extrude(height = weight_lip_thickness) { spin_2d(weight_radius - 1, diff --git a/spin.scad b/spin.scad index 995bf34..c1bc839 100644 --- a/spin.scad +++ b/spin.scad @@ -10,8 +10,12 @@ spin(weight_radius, arms, wall_thickness, bearing_radius, - bearing_thickness, - spinner_height); + bearing_thickness); + +!cap(bearing_inner_radius, + bearing_cap_footprint_radius, + bearing_cover_radius, + bearing_thickness); /* This file is part of 3d-printables.