X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=quacks-ingredients-make-copy-gcodes;h=fd34367e8f117f310690253f54dea69164113210;hb=eb06f06509cc2403d8592cd147d89d9a1b8bb97f;hp=b198f95c22cf46b3983dad2e211222f2d69c9e22;hpb=bf5d181cd8b395dfa38a4cce9d80f659d05bc840;p=reprap-play.git diff --git a/quacks-ingredients-make-copy-gcodes b/quacks-ingredients-make-copy-gcodes index b198f95..fd34367 100755 --- a/quacks-ingredients-make-copy-gcodes +++ b/quacks-ingredients-make-copy-gcodes @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # usage: # ./quacks-ingredients-make-copy-gcodes Tests_L @@ -23,7 +23,19 @@ gh () { for l in 1 2 3 4 5; do gh - cura -s $lhs$l,$f.auto.stl -o $g + qi=quacks-L$l.auto.ini + + cp quacks.ini $qi + + case $l in + 2|4|5) + perl -i~ -pe ' + s/^(retraction_hop *= *.*)/retraction_hop = 0.6/m + ' $qi + ;; + esac + + cura -i $qi -s $lhs$l,$f.auto.stl -o $g case $l in 1|2|3|4) perl -i~ -pe 's/^/;/ if m/^M140 S0\b.*\n/' $g @@ -32,26 +44,92 @@ for l in 1 2 3 4 5; do perl -i~ -ne ' $l =~ s/^/;/ if m/^M400/; + $l .= "G91\nG1 Z5\nG90\n" if m/^M84/; print $l or die $!; $l = $_; END { print $l or die $!; } ' $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\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 + ( ^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 + perl -pe 's/^/;/ if m/^M104 S0\b/ || (m/^M84/..0)' $g >&3 +done +for l in 4; do + gh + cat $g >&3 +done + +copies="3:5 2:234 1:1" +copyls="" +for copy in $copies; do + l=-P-${copy%:*} + ci=$lhs${copy#*:}.auto.gcode + copyls+=" $l" + gh + rm -f $g + ln -vs $ci $g +done + umount /media/sd >/dev/null 2>&1 ||: mount /media/sd -for l in 1 2 3 4 5; do +for l in 1 2 3 4 5 234 $copyls; do + gh cp $g $h done +sleep 0.5 + umount /media/sd mount /media/sd -for l in 1 2 3 4 5; do +for l in 1 2 3 4 5 234 $copyls; do gh cmp $g $h ls -l $h done +sleep 0.5 umount /media/sd