make cap fit new spinner shape
authordaniel watson <ozzloy@gmail.com>
Tue, 28 Feb 2017 02:59:44 +0000 (18:59 -0800)
committerdaniel watson <ozzloy@gmail.com>
Tue, 28 Feb 2017 02:59:44 +0000 (18:59 -0800)
spin-data.scad

index 24214f1499e475ce74688b24cc4f44d3bd2714fc..46c2f80fc39dcb6adc62296cae8958ad29f09096 100644 (file)
@@ -26,6 +26,7 @@ weight_thickness = (weight == "penny") ?
      penny_thickness * 5 : _608zz_thickness;
 
 bearing_radius = (bearing == "608zz") ? _608zz_radius : 1/0;
+bearing_window_radius = bearing_radius - bearing_lip_overhang - 1;
 bearing_inner_radius = (bearing == "608zz") ? _608zz_inner_radius : 1/0;
 bearing_cover_radius = (bearing == "608zz")
                        ? _608zz_cover_radius
@@ -40,29 +41,35 @@ 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;