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);
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,