X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=rope-adjuster.scad;h=fa4f591809d4c2571ebc28a6803275e276a6298e;hb=HEAD;hp=a966ee9ee1870b9b8b08060d067a7fd4e1e062d7;hpb=5679016bfed8b1173601c56b5104980b218332fd;p=reprap-play.git diff --git a/rope-adjuster.scad b/rope-adjuster.scad index a966ee9..fa4f591 100644 --- a/rope-adjuster.scad +++ b/rope-adjuster.scad @@ -3,8 +3,8 @@ include 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();