start on donut version of spinner
authordaniel watson <ozzloy@gmail.com>
Tue, 28 Feb 2017 03:00:45 +0000 (19:00 -0800)
committerdaniel watson <ozzloy@gmail.com>
Tue, 28 Feb 2017 03:00:45 +0000 (19:00 -0800)
spin-data.scad
spin.scad

index eb2f1a9e63e9cbe6a3ee8615db1b347c4ee7f218..534df16c0124c70f6b72ff1ab2fcbbe09ac04c75 100644 (file)
@@ -200,6 +200,26 @@ module spin_slices(weight_radius,
                    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.
 
index 1d3bfb8efebd12a681605cf55eaa2d7a56bb512b..37b74f00c6be7e9c75e9d8923ac63e08dea1ba25 100644 (file)
--- a/spin.scad
+++ b/spin.scad
@@ -16,6 +16,15 @@ if (object == "spin_slices") {
               wall,
               arms,
               layer_height); }
+else if (object == "spin_donut") {
+  spin_donut(weight_radius,
+             weight_thickness,
+             bearing_radius,
+             bearing_thickness,
+             weight_lip_overhang,
+             bearing_lip_overhang,
+             wall,
+             arms); }
 else if (object == "cap") {
   cap(bearing_inner_radius,
       bearing_cap_footprint_radius,