From 618600ad92e40e939baca632b400efcc5d0e3fbb Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 3 May 2014 20:27:43 +0100 Subject: [PATCH] belt-hole-cut-jig-simple: version to try to make it not warp, before adjust reg block posns --- belt-hole-cut-jig-simple.scad | 96 +++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 belt-hole-cut-jig-simple.scad diff --git a/belt-hole-cut-jig-simple.scad b/belt-hole-cut-jig-simple.scad new file mode 100644 index 0000000..550102d --- /dev/null +++ b/belt-hole-cut-jig-simple.scad @@ -0,0 +1,96 @@ +// -*- C -*- + +strap_thick = 3; +strap_width = 26.75 + 0.7; + +punch_dia = 12.75; + +punch_slop = 0.5; + +jig_interval = 20; + +reg_blocks = 3; + +jig_iters = 7; //xxx + +roof_thick = 4; +regblock_thick = 4; +punchtube_thick = 2.5; + +total_h = 40; +punchfree_h = 8; + +reg_prot_width = 4; + +// computed: + +punchhole_r = punch_dia/2 + punch_slop; +mainframe_l = jig_interval * jig_iters; + +mainframe_w = strap_width + reg_prot_width*2; + +echo(mainframe_l); + +module RegBlockOutline(){ + difference(){ + translate([0, -mainframe_w/2]) + mirror([1,0]) + square([total_h, mainframe_w]); + translate([1, -strap_width/2]) + mirror([1,0]) + square([strap_thick+1, strap_width]); + } +} + +module RegBlock(){ + translate([0,0,total_h]) + rotate([0,-90,0]) + linear_extrude(height=regblock_thick) + RegBlockOutline(); +} + +module MainFrame(){ + translate([jig_interval/2, -mainframe_w/2, 0]) + mirror([1,0,0]) + cube([mainframe_l, mainframe_w, roof_thick]); + for (rbi=[0:reg_blocks-1]) { + translate([jig_interval/2 + + -(mainframe_l-regblock_thick)/(reg_blocks-1) * rbi, + 0,0]) + RegBlock(); + } +} + +module PerHole(){ + for (holei=[0:jig_iters-1]) { + translate([-jig_interval * holei, 0, 0]) + child(0); + } +} + +module Shells(){ + PerHole(){ + cylinder(r=punchhole_r+punchtube_thick, h=total_h-punchfree_h); + } +} + +module Punches(){ + PerHole(){ + translate([0,0,-1]){ + cylinder(r=punchhole_r, h=total_h+2); + %cylinder(r=punch_dia/2, h=total_h); + } + } +} + +module Jig(){ + difference(){ + union(){ + MainFrame(); + Shells(); + } + Punches(); + } +} + +Jig(); -- 2.30.2