chiark / gitweb /
rope-adjuster: wip, teeth
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 12 Aug 2023 13:29:24 +0000 (14:29 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 12 Aug 2023 13:29:24 +0000 (14:29 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
rope-adjuster.scad

index a966ee9ee1870b9b8b08060d067a7fd4e1e062d7..fa4f591809d4c2571ebc28a6803275e276a6298e 100644 (file)
@@ -3,8 +3,8 @@
 include <utils.scad>
 
 hole_dia = 10;
-around_hole = 5;
-thick = 4;
+around_hole = 4;
+thick = 3;
 lever_len = 50;
 
 teeth_n = 4;
@@ -13,6 +13,12 @@ teeth_pitch = 4;
 teeth_gap = 3;
 teeth_back = 1;
 teeth_height = 12;
+teeth_chamfer = 3;
+
+// calculated
+
+teeth_x_mid = lever_len/2 - hole_dia/2 - teeth_bite - teeth_gap*1.5;
+teeth_height_total = teeth_height + teeth_chamfer;
 
 module Circles(r) {
   for (x = [-1,+1] * 0.5 * lever_len) {
@@ -27,12 +33,15 @@ module Plan() {
       Circles(hole_dia/2 + around_hole);
     }
     Circles(hole_dia/2);
+    translate([ teeth_x_mid - teeth_bite - teeth_back - teeth_gap - hole_dia/2,
+               0 ])
+      circle(hole_dia/2);
   }
 }
 
 module TeethPlan(){
   translate([
-            lever_len/2 - hole_dia/2 - teeth_bite - teeth_gap*1.5,
+            teeth_x_mid,
             -0.5 * teeth_n * teeth_pitch,
             ]) {
     for (m=[0,1]) {
@@ -54,8 +63,15 @@ module TeethPlan(){
 module Adjuster(){
   linextr(0,thick)
     Plan();
-  linextr(thick - 0.1, thick + teeth_height)
-    TeethPlan();
+  difference(){
+    linextr(thick - 0.1, thick + teeth_height_total)
+      TeethPlan();
+    translate([ teeth_x_mid, 0, thick + teeth_height_total + 1])
+      linextr_y_xz(-teeth_pitch * teeth_n,
+                +teeth_pitch * teeth_n)
+      rotate(45)
+      square(sqrt(2) * (teeth_gap/2 + teeth_chamfer + 1), center=true);
+  }
 }
 
 Adjuster();