X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=belt-slot-cut-jig.scad;h=4ff14f1f66864431d1b166fec38884482d289e50;hb=5170ad7427d895b23ab21dec9135f29492b9e858;hp=6c8d1536d65d98a9a5754f0314aca844fcf5d963;hpb=b213f2884a056b79199fd6fae2e8b4611ceeefac;p=reprap-play.git diff --git a/belt-slot-cut-jig.scad b/belt-slot-cut-jig.scad index 6c8d153..4ff14f1 100644 --- a/belt-slot-cut-jig.scad +++ b/belt-slot-cut-jig.scad @@ -2,6 +2,20 @@ crewpunch_slop = 0.3; +holder_min_wall = 2; + +holder_attach_xsz = 5; +holder_ctie_width = 4.0 + 0.5; +holder_ctie_thick = 2.0 + 0.5; +holder_attach_walls = 3; +holder_attach_roof = 2.5; + +jig_interval = 25; +strap_width = 25; +edgewall_width = 3; + +main_slop = 0.5; + // from careful measurement crewpunch_shape = @@ -12,10 +26,30 @@ crewpunch_shape = [ 14, [2.1, 6.8], [2.6, 13.0] ], [ 16, [2.4, 6.9], [2.7, 13.2] ]]; +crewpunch_shaft_max_y = 7.5; + crewpunch_systematic_size_error = +0.36; crewpunch_min_y = 4.7 - crewpunch_systematic_size_error; +crewpunch_smallest_shape = crewpunch_shape[0]; +crewpunch_biggest_shape = crewpunch_shape[len(crewpunch_shape)-1]; + +// computed + +attach_ysz = holder_attach_walls*2 + holder_ctie_width; +holder_front_wall = crewpunch_shaft_max_y - crewpunch_biggest_shape[1][1] + + attach_ysz; + +holder_block_zsz = crewpunch_biggest_shape[0] - crewpunch_smallest_shape[0]; +holder_xsz = crewpunch_biggest_shape[2][0] + crewpunch_biggest_shape[2][1] + + holder_min_wall*2; +crewpunch_biggest_y = + crewpunch_biggest_shape[1][0] + crewpunch_biggest_shape[1][1]; +holder_ysz = crewpunch_biggest_y + holder_min_wall + holder_front_wall; + +attach_offset = holder_attach_xsz + holder_min_wall; + // objects module CrewPunch(){ @@ -36,4 +70,47 @@ module CrewPunch(){ } } -CrewPunch(); +module PunchHolder(cutouts=true){ + translate([-holder_xsz/2, + -holder_ysz + holder_min_wall + crewpunch_biggest_y/2, + 0]){ + difference(){ + translate([0,attach_offset,0]) + cube([holder_xsz, holder_ysz - attach_offset, holder_block_zsz]); + if (cutouts) + translate([crewpunch_biggest_shape[2][1] + holder_min_wall, + crewpunch_biggest_shape[1][0] + holder_front_wall, + -crewpunch_smallest_shape[0]]) + CrewPunch(); + } + difference(){ + translate([holder_xsz/2 - holder_attach_xsz/2, 0, 0]) + cube([holder_attach_xsz, + attach_ysz, + holder_block_zsz + holder_ctie_thick + holder_attach_roof + 1]); + if (cutouts) + translate([-30, holder_attach_walls, holder_block_zsz + 0.1]) + cube([60, holder_ctie_width, holder_ctie_thick]); + } + } +} + +module OneJig(){ + difference(){ + translate([-(jig_interval/2 + 1), + -(strap_width/2 + edgewall_width) - attach_offset, + 0]) + cube([jig_interval + 2, + strap_width + edgewall_width*2 + attach_offset, + holder_ysz]); + minkowski(){ + cube([main_slop*2, main_slop*2, 50], center=true); + PunchHolder(false); + } + } +} + +//CrewPunch(); +//PunchHolder(); +//PunchHolder(false); +OneJig();