From 649e00b28e3fc2c6531871f1eab16f6c5574eda8 Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Sat, 27 Nov 2010 22:41:45 -0300 Subject: [PATCH] vialtray: ready for first test run (on-going) - doit (GEN): corrected name of toolpath generator - doit (rdata): fixed typo ("rdate" vs. "rdata") - doit (Z): set Z depth here, to avoid manual depth adjustment - doit: don't use cameo - we compensate for the tool size in tray.pl - doit: increased feed rate from 2 mm/s to 4 mm/s - doit: clearance is above top layer, so 5 mm are more than enough - tray.pl (zf): increase floor depth from very conservative 15 mm to 17 mm - tray.pl (zs): increase depth step from 2 mm to 2.5 mm to accelerate milling - tray.pl (mw): increase wall thickness from 2 mm to 2.5 mm in order to enlarge gap between sides (was smaller than tool diameter) - tray.pl (r1): stop 2 steps before the edge, since we have the outline as another radius-like step - tray.pl (do_col): account for tool radius - tray.pl (do_circles): lift the tool after each disc, not only after each column - tray.pl (do_cols, do_circles): temporarily skip 1st column - tray.pl (main): do circles before the outline, to reduce chatter when cutting the outline - tray.pl (main): since we're no longer using "cameo" here, don't print directives for it --- vialtray/doit | 14 +++++--------- vialtray/tray.pl | 33 +++++++++++++++++++-------------- 2 files changed, 24 insertions(+), 23 deletions(-) mode change 100644 => 100755 vialtray/doit diff --git a/vialtray/doit b/vialtray/doit old mode 100644 new mode 100755 index 815203b..0bbd492 --- a/vialtray/doit +++ b/vialtray/doit @@ -6,12 +6,10 @@ ZMAP=$DIR/zmap/zmap GP2RML=$DIR/gp2rml/gp2rml CAMEO=../../../cae-tools/cameo/cameo -GEN=${1:-./pcb.pl} +GEN=${1:-./tray.pl} -# manual tool positioning !! -rdate="0 0 0 150 0 0 0 100 0" -# lower Z by 0.5 mm relative to highest point (-56.8) -Z=0 +rdata="0 0 0 150 0 0 0 100 0" +Z=-27.6 rect=`$RECT $rdata | awk '{$3 = ""; print}'` @@ -19,10 +17,8 @@ rect=`$RECT $rdata | awk '{$3 = ""; print}'` $GEN | awk '{ if ($3 != "") $3 += '$Z'; print $0; }' | - $CAMEO -d 0 | $ALIGN 0 1 $rect | # angle, reference (lower left corner), rect - $GP2RML 20 2 2 + tee check | + $GP2RML 5 4 4 # clearance, xy speed, z speed -# since everything is in the same plane, z clearance must be thickness plus -# real clearance ! diff --git a/vialtray/tray.pl b/vialtray/tray.pl index 9890b1f..b23da47 100755 --- a/vialtray/tray.pl +++ b/vialtray/tray.pl @@ -111,10 +111,10 @@ sub circ $z0 = -0.5; # floor depth -$zf = -15; +$zf = -17; # maximum depth step -$zs = 2; +$zs = 2.5; # distance between columns $xs = 24; @@ -126,7 +126,7 @@ $ys = 20; $vd = 18.6; # minimum wall thickness -$mw = 2; +$mw = 2.5; $nc = 6; $nr = 4; @@ -140,7 +140,7 @@ $vr = $vd/2; # circle radii: first, last, increment $r0 = $r/2; -$r1 = $vr-$r*0.75; +$r1 = $vr-$r*1.5; $rs = $r*0.75; # @@ -187,12 +187,12 @@ sub do_col if ($rw) { $end = $rw == $nr-1 ? $vr : ($ys-$mw)/2; &yarc($x0-$bx, $y0-$ys/2, - 1, -$mw/2, $mw/2, $br, @m_ccw); + 1, -$mw/2-$r, $mw/2+$r, $br+$r, @m_ccw); &yarc($x0, $y0, - -1, -($ys-$mw)/2, $end, $vr, @m_cw); + -1, -($ys-$mw)/2+$r, $end-$r, $vr-$r, @m_cw); } else { &yarc($x0, $y0, - 1, -$vr, ($ys-$mw)/2, $vr, @m_cw); + 1, -$vr+$r, ($ys-$mw)/2-$r, $vr-$r, @m_cw); } $y0 += $ys; } @@ -201,12 +201,12 @@ sub do_col if ($rw) { $end = $rw == $nr-1 ? $vr : ($ys-$mw)/2; &yarc($x0+$bx, $y0+$ys/2, - -1, $mw/2, -$mw/2, $br, @m_ccw); + -1, $mw/2+$r, -$mw/2-$r, $br+$r, @m_ccw); &yarc($x0, $y0, - 1, ($ys-$mw)/2, -$end, $vr, @m_cw); + 1, ($ys-$mw)/2-$r, -$end+$r, $vr-$r, @m_cw); } else { &yarc($x0, $y0, - 1, $vr, -($ys-$mw)/2, $vr, @m_cw); + 1, $vr-$r, -($ys-$mw)/2+$r, $vr-$r, @m_cw); } } } @@ -218,7 +218,9 @@ sub do_cols $x = $x0; for ($c = 0; $c != $nc; $c++) { +if ($c) { &do_col($x); +} $x += $xs; print "\n"; } @@ -235,12 +237,14 @@ sub do_circles $y = $y0; for ($rw = 0; $rw != $nr; $rw++) { for ($rr = $r0; $rr <= $r1; $rr += $rs) { +if ($c) { &circ($x, $y, $rr, 180); +} } + print "\n"; $y += $ys; } $x += $xs; - print "\n"; } } @@ -249,10 +253,11 @@ sub do_circles $z = $z0; for ($i = 0; $i != $nz; $i++) { - print "#%%r_tool=", $r, "\n"; +# print "#%%r_tool=0\n"; + &do_circles; + +# print "#%%r_tool=", $r, "\n"; &do_cols; - print "#%%r_tool=0\n"; - &do_circles; $z -= $zs; }