summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/whorl.scad35
-rw-r--r--src/whorl.scad3
2 files changed, 38 insertions, 0 deletions
diff --git a/src/lib/whorl.scad b/src/lib/whorl.scad
new file mode 100644
index 0000000..007cbd2
--- /dev/null
+++ b/src/lib/whorl.scad
@@ -0,0 +1,35 @@
+
+module whorl(
+ r_out,
+ r_stick,
+ t_hub=4,
+ t_rim=10,
+ h=4,
+ h_hub=15,
+ h_rim=8,
+ r_screw=1.6,
+ h_screw=11,
+ screw_holes=[90, 270],
+ r_latch=2,
+ latches=[0, 60, 120, 180, 240, 300],
+ ) {
+ difference() {
+ union() {
+ cylinder(r=r_out, h=h);
+ cylinder(r=r_stick + t_hub, h=h_hub);
+ difference() {
+ cylinder(r=r_out, h=h_rim);
+ translate([0, 0, -1]) cylinder(r=r_out - t_rim, h=h_rim + 2);
+ }
+ }
+ translate([0, 0, -1]) cylinder(r=r_stick, h=h_hub + 2);
+ for(i=screw_holes) {
+ rotate([0, 0, i]) translate([0, 0, h_screw]) rotate([0, -90, 0])
+ cylinder(r=r_screw, h=r_stick + t_hub + 2, $fn=16);
+ }
+ for(i=latches) {
+ rotate([0, 0, i]) translate([r_out, 0, -1])
+ cylinder(r=r_latch, h=h_rim + 2);
+ }
+ }
+}
diff --git a/src/whorl.scad b/src/whorl.scad
new file mode 100644
index 0000000..f1a3ad6
--- /dev/null
+++ b/src/whorl.scad
@@ -0,0 +1,3 @@
+use <lib/whorl.scad>;
+
+whorl(r_stick = 5.5, r_out = 30);