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
This commit is contained in:
Werner Almesberger 2010-11-27 22:41:45 -03:00
parent 458702cf54
commit 649e00b28e
2 changed files with 24 additions and 23 deletions

14
vialtray/doit Normal file → Executable file
View File

@ -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 !

View File

@ -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;
}