From 8e3fdadf959bfc061db4fde78991a89011204edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Fri, 11 Oct 2019 17:50:56 +0200 Subject: [PATCH 1/2] Do not add milling holes where they are not needed --- lasercut.scad | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lasercut.scad b/lasercut.scad index a12cb66..421eb60 100644 --- a/lasercut.scad +++ b/lasercut.scad @@ -389,6 +389,7 @@ module fingers_mill(angle, start_up, fingers, thickness, range_min, range_max, t translate([((range_max-range_min)/fingers)*p,0,0]) { translate([(range_max-range_min)/(fingers*2) + bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); + if (p != fingers-1) translate([2*(range_max-range_min)/(fingers*2) - bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); } } @@ -396,6 +397,7 @@ module fingers_mill(angle, start_up, fingers, thickness, range_min, range_max, t { translate([((range_max-range_min)/fingers)*p,0,0]) { + if (p != 0) translate([bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); translate([(range_max-range_min)/(fingers*2) - bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); } From 58aad53ab45912d2c266d4d6858c607415025322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Fri, 11 Oct 2019 17:54:14 +0200 Subject: [PATCH 2/2] Only mill what's necessary diagonally --- lasercut.scad | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lasercut.scad b/lasercut.scad index 421eb60..20f3040 100644 --- a/lasercut.scad +++ b/lasercut.scad @@ -376,7 +376,7 @@ module fingers(angle, start_up, fingers, thickness, range_min, range_max, t_x, t module fingers_mill(angle, start_up, fingers, thickness, range_min, range_max, t_x, t_y, bit=6.35/2) { - + delta = bit * (1-sin(45)) / 2; // The tweaks to y translate([0, -thickness,0]) ... thickness*2 rather than *1 // Are to avoid edge cases and make the dxf export better. // All fun @@ -388,9 +388,9 @@ module fingers_mill(angle, start_up, fingers, thickness, range_min, range_max, t { translate([((range_max-range_min)/fingers)*p,0,0]) { - translate([(range_max-range_min)/(fingers*2) + bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); + translate([(range_max-range_min)/(fingers*2) + bit/2-delta,thickness+bit/2 - delta,0]) cylinder(h=thickness*4, d=bit, center=true , $fn=20); if (p != fingers-1) - translate([2*(range_max-range_min)/(fingers*2) - bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); + translate([2*(range_max-range_min)/(fingers*2) - bit/2+delta,thickness+bit/2-delta,0]) cylinder(h=thickness*4, d=bit, center=true , $fn=20); } } else @@ -398,8 +398,8 @@ module fingers_mill(angle, start_up, fingers, thickness, range_min, range_max, t translate([((range_max-range_min)/fingers)*p,0,0]) { if (p != 0) - translate([bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); - translate([(range_max-range_min)/(fingers*2) - bit/2,thickness,0]) cylinder(h=thickness*4, d=bit, center=true ); + translate([bit/2-delta,thickness+bit/2-delta,0]) cylinder(h=thickness*4, d=bit, center=true , $fn=20); + translate([(range_max-range_min)/(fingers*2) - bit/2+delta,thickness+bit/2-delta,0]) cylinder(h=thickness*4, d=bit, center=true , $fn=20); } } }