chiark / gitweb /
quacks-ingredients: gcode manipulation - better EH
[reprap-play.git] / quacks-ingredients-make-copy-gcodes
index 4d9c8ea0d9e64bf401ae751d3b95aab559210e47..4f0ddd3547fa755db3fccbf65afb65d1665a725e 100755 (executable)
@@ -39,6 +39,30 @@ for l in 1 2 3 4 5; do
        ' $g
 done
 
+for l in 2 4 5; do
+       gh
+       perl -i~ -0777 -ne '
+               @l = split m{^(?=;LAYER:\d+\n)}m, $_;
+               foreach my $i (0..$#l) {
+                       $l[$i] =~
+                               s{
+                                       ^G1 \ Z([0-9.]+) \s*\n
+                               (       ^G0 \ F(\d+) \ X\S+ \ Y\S+ \s*\n
+                                       (?: ; .* \s*\n )?
+                                       ^G1 \ Z([0-9.]+) \s*\n  )
+                               }{
+                                       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 $i==0 or die "$l[$i] $i";
+               }
+               print or die $! foreach @l;
+       ' $g
+done
+
 exec 3>${lhs}234.auto.gcode
 for l in 2 3; do
        gh