chiark / gitweb /
quacks-ingredients: gcode manipulation - first move on each layer too
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 20 Feb 2020 15:03:46 +0000 (15:03 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 20 Feb 2020 15:03:46 +0000 (15:03 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
quacks-ingredients-make-copy-gcodes

index 4f0ddd3547fa755db3fccbf65afb65d1665a725e..829a55339f83c674e912a71578c6a147014cf3cc 100755 (executable)
@@ -44,6 +44,22 @@ for l in 2 4 5; do
        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