X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=splitpin.scad;h=9631c95e0e453823b87c1ac228116655fd07e646;hp=b8ecf1da9b343d05a51d49db39c4b08e78b79452;hb=52babb66e84b372a20b0d7db544530cc66b8fac9;hpb=2c35b2a06e88a3628b1dfe3c6f95d24d44c90673 diff --git a/splitpin.scad b/splitpin.scad index b8ecf1d..9631c95 100644 --- a/splitpin.scad +++ b/splitpin.scad @@ -6,9 +6,9 @@ tau = 6.28318530718; function deg2rad(deg) = deg/360 * tau; function rad2deg(rad) = rad/tau * 360; -module SplitPin(w=0.8, holeminrad=2.50, thick=3, deviationrad=1.0, - mainlen=10, handlerad=10, handlelen=7) { - spare = holeminrad - deviationrad - w; +module SplitPin(w=1.5, holeminrad=2.50, thick=3, deviationrad=1.5, + mainlen=15, handlerad=20, handlelen=12) { + spare = holeminrad*2 - deviationrad - w*2; echo("splitpin spare",spare); %translate([0,mainlen+handlelen,0]) cylinder(r=spare, h=thick); %translate([0,mainlen,thick/2]) rotate([90,0,0]) @@ -31,28 +31,31 @@ module SplitPin(w=0.8, holeminrad=2.50, thick=3, deviationrad=1.0, // translate([unbent_dx, 5, 10]) %cube([10,10,10]); // } - for (xmir=[0,1]) mirror([xmir,0,0]) { - linear_extrude(height=thick) { + linear_extrude(height=thick) { + for (xmir=[0,1]) mirror([xmir,0,0]) FlatArc(0,0, w*0.5, w*1.5, 270-1,360); - translate([w*1.5, 0, 0]) { - FlatArc($fa=1, main_cx,0, unbent_rad, unbent_rad+w, - 180-unbent_subang, 180); - translate([corner_x, corner_y]) - rotate([0,0,-unbent_subang]) { + translate([w*1.5, 0, 0]) { + FlatArc($fa=1, main_cx,0, unbent_rad, unbent_rad+w, + 180-unbent_subang, 180); + translate([corner_x, corner_y]) rotate([0,0,-unbent_subang]) { + rotate([0,0,10]) + translate([w*0.2,0,0]) translate([-(w + deviationrad), -0.1]) - square(size=[w + deviationrad, w+0.1]); - FlatArc(-deviationrad + handlerad, w, - handlerad, handlerad+w, - 180-rad2deg(handlelen/handlerad), 180, - $fa=0.25, $fn=60); - } + square(size=[w + deviationrad, w+0.1]); + FlatArc(-deviationrad + handlerad, w, + handlerad, handlerad+w, + 180-rad2deg(handlelen/handlerad), 180+rad2deg(w/handlerad), + $fa=0.25, $fn=60); } } + mirror([1,0,0]) translate([w*1.5, 0, 0]) + FlatArc($fa=1, main_cx,0, unbent_rad, unbent_rad+w, + 180-(unbent_subang + rad2deg((handlelen+w)/unbent_rad)), 180); } } -module SplitPinCavity(w=0.8, holeminrad=2.50, thick=3, deviationrad=1.0, - mainlen=10, slop=0.5, insertby = 5) { +module SplitPinCavity(w=1.5, holeminrad=2.50, thick=3, deviationrad=1.5, + mainlen=15, slop=0.5, insertby = 5) { smallgap2 = holeminrad; biggap2 = smallgap2 + deviationrad + slop; toegap2 = w*1.5 + slop; @@ -62,7 +65,7 @@ module SplitPinCavity(w=0.8, holeminrad=2.50, thick=3, deviationrad=1.0, linear_extrude(height = thick + slop*2) { for (xmir=[0,1]) mirror([xmir,0]) { polygon([[-0.1, 1], - [biggap2, 1], + [(smallgap2+biggap2)/2, 1], [smallgap2, -insertby], [biggap2, -insertby], [toegap2, toeend-1], @@ -73,5 +76,6 @@ module SplitPinCavity(w=0.8, holeminrad=2.50, thick=3, deviationrad=1.0, } SplitPin(); -translate([0,30,0]) +translate([0,15+5,-10]) + rotate([-90,0,0]) SplitPinCavity();