for l in 2 4 5; do
gh
- perl -i~ -0777 -ne '
+ : perl -i~ -0777 -ne '
@l = split m{^(?=;LAYER:\d+\n)}m, $_;
foreach my $i (0..$#l) {
+ $l[$i] =~
+ s{
+ ( ^G1 \ Z\S+ \s*\n
+ | ^\;LAYER:\d+ \s*\n
+ (?: ^M10[67].* \s*\n )?
+ )
+ ^G0 \ F(\d+) \ ( X\S+ \ Y\S+ )
+ \ Z(\S+) \s*\n
+ }{
+ die "$& $2" unless $2 > 9000;
+ $1 .
+ "G1 Z$4\n".
+ "G0 F$2 $3\n".
+ "G1 Z$4\n"
+ }mxe or $i==0
+ or die "$l[$i] $i";
$l[$i] =~
s{
^G1 \ Z([0-9.]+) \s*\n
(?: ; .* \s*\n )?
^G1 \ Z([0-9.]+) \s*\n )
}{
- die unless $1 > $4;
- die unless $3 > 9000;
+ die "$& $3" unless $1 >= $4;
+ die "$& $3" unless $3 > 9000;
my $z = $i == $#l ? $1 : $4 + 0.5;
"G0 F$3\n".
"G1 Z$z\n" .
$2
- }gmxe or $l==0 or die $i;
+ }gmxe or $i==0 or die "$l[$i] $i";
}
print or die $! foreach @l;
' $g