see bottom for more license info */
/* spin thing that erin likes */
-$fn = 50;
+$fn = 75;
layer_height = 0.35;
weight = "penny";
// weight = "608zz";
+
bearing = "608zz";
+// bearing = "625rs";
+
weight_lip_overhang = 0.3;
bearing_lip_overhang = weight_lip_overhang;
wall = 3;
_608zz_cap_footprint_radius = 12 / 2;
_608zz_thickness = 7;
+_625rs_radius = 16 / 2;
+_625rs_inner_radius = 5 / 2;
+_625rs_thickness = 5;
+_625rs_cover_radius = _625rs_radius;
+_625rs_cap_footprint_radius = _625rs_inner_radius + 1;
+
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
- : 1/0;
+bearing_radius =
+ (bearing == "608zz") ? _608zz_radius
+ : (bearing == "625rs") ? _625rs_radius
+ : 1/0;
+bearing_window_radius = bearing_radius - bearing_lip_overhang - 1;
+bearing_inner_radius =
+ (bearing == "608zz") ? _608zz_inner_radius
+ : (bearing == "625rs") ? _608zz_inner_radius
+ : 1/0;
+bearing_cover_radius =
+ (bearing == "608zz") ? _608zz_cover_radius
+ : (bearing == "625rs") ? _625rs_cover_radius
+ : 1/0;
bearing_cap_footprint_radius =
- (bearing == "608zz") ? _608zz_cap_footprint_radius : 1/0;
-bearing_thickness = (bearing == "608zz") ? _608zz_thickness : 1/0;
+ (bearing == "608zz") ? _608zz_cap_footprint_radius
+ : (bearing == "625rs" ) ? _625rs_cap_footprint_radius
+ : 1/0;
+bearing_thickness =
+ (bearing == "608zz") ? _608zz_thickness
+ : (bearing == "625rs") ? _625rs_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;
+ bearing_thickness,
+ bearing_window_radius) {
+ footprint_height = 4.5;
+ footprint_radius_safety = 0.2;
cap_height = 3;
- bearing_cover_radius_safety = 0.75;
- bearing_thickness_safety = 0.2;
+ bearing_thickness_safety = 0.6;
+ finger_spot_height = cap_height / 10;
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
+ - 1.05) {
+ circle(bearing_window_radius - 1); }
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); } }
+ 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); } } }
+ cylinder(r1 = bearing_inner_radius,
+ r2 = bearing_inner_radius - tan(30) * finger_spot_height,
+ h = finger_spot_height); } } }
module donut(height, footprint_radius) {
bread_radius = height / 2;
/* add one to have some thickness all around weight holes
for first layer */
- new_start = old_end / 8 + 1;
+ new_start = old_end / 16 + 1;
new_end = old_end;
old_range = old_end - old_start;
cylinder(h = actual_height + 0.1,
r = bearing_radius - bearing_lip_overhang,
center = true);
- cylinder(h = bearing_thickness + 0.1,
- r = bearing_radius + 0.1,
+ cylinder(h = bearing_thickness + 0.05,
+ r = bearing_radius + 0.15,
center = true);
for(arm = [0 : arms - 1]) {
rotate(arm * (360 / arms)) {
cylinder(h = actual_height + 0.1,
r = weight_radius - weight_lip_overhang,
center = true);
- cylinder(h = weight_thickness + 0.1,
- r = weight_radius + 0.1,
+ cylinder(h = weight_thickness + 0.05,
+ r = weight_radius + 0.15,
center = true); } } } } }
+module spin_donut(weight_radius,
+ weight_thickness,
+ bearing_radius,
+ bearing_thickness,
+ weight_lip_overhang,
+ bearing_lip_overhang,
+ wall,
+ arms) {
+ thicker_thickness = (bearing_thickness > weight_thickness)
+ ? bearing_thickness : weight_thickness;
+ height = thicker_thickness + wall * 2;
+
+ center_to_arm_center = bearing_radius + wall + weight_radius;
+
+ jelly_filled(height, bearing_radius);
+ for(arm = [0 : arms]) {
+ rotate(arm * (360 / arms)) {
+ translate([center_to_arm_center, 0, 0]) {
+ jelly_filled(height, weight_radius); } } } }
+
/*
This file is part of 3d-printables.