X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=rope-adjuster.scad;h=fa4f591809d4c2571ebc28a6803275e276a6298e;hb=refs%2Fheads%2Fmaster;hp=f181493dc2ee7911f743f2a7f517e58c469a618a;hpb=dd880d236c866732955a3005781ca356fd11e377;p=reprap-play.git diff --git a/rope-adjuster.scad b/rope-adjuster.scad index f181493..fa4f591 100644 --- a/rope-adjuster.scad +++ b/rope-adjuster.scad @@ -3,16 +3,22 @@ include hole_dia = 10; -around_hole = 5; -thick = 4; +around_hole = 4; +thick = 3; lever_len = 50; teeth_n = 4; teeth_bite = 4; teeth_pitch = 4; teeth_gap = 3; -teeth_back = 2; +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,16 +33,22 @@ 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]) { mirror([m,0]) { + translate([ teeth_bite + teeth_gap/2, 0 ]) + rectfromto([ -0.1, 0 ], + [ teeth_back, teeth_n * teeth_pitch ]); for (i= [ 0: teeth_n-1 ]) { translate([teeth_gap/2, teeth_pitch*i]) polygon([[ 0,0 ], @@ -51,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();