4 # ./quacks-ingredients-make-copy-gcodes Tests_L
6 # quacks-ingredients-L$l,Tests_L.auto.stl
8 # quacks-ingredients-L$l,Tests_L.auto.gcode
9 # and then edits them and copies them to the SD card as
17 lhs=quacks-ingredients-L
21 h=/media/sd/PREPARED/Q$l.G
24 for l in 1 2 3 4 5; do
26 qi=quacks-L$l.auto.ini
33 s/^(retraction_hop *= *.*)/retraction_hop = 0.6/m
38 cura -i $qi -s $lhs$l,$f.auto.stl -o $g
41 perl -i~ -pe 's/^/;/ if m/^M140 S0\b.*\n/' $g
46 $l =~ s/^/;/ if m/^M400/;
47 $l .= "G91\nG1 Z5\nG90\n" if m/^M84/;
50 END { print $l or die $!; }
56 : perl -i~ -0777 -ne '
57 @l = split m{^(?=;LAYER:\d+\n)}m, $_;
58 foreach my $i (0..$#l) {
63 (?: ^M10[67].* \s*\n )?
65 ^G0 \ F(\d+) \ ( X\S+ \ Y\S+ )
68 die "$& $2" unless $2 > 9000;
77 ^G1 \ Z([0-9.]+) \s*\n
78 ( ^G0 \ F(\d+) \ X\S+ \ Y\S+ \s*\n
80 ^G1 \ Z([0-9.]+) \s*\n )
82 die "$& $3" unless $1 >= $4;
83 die "$& $3" unless $3 > 9000;
84 my $z = $i == $#l ? $1 : $4 + 0.5;
88 }gmxe or $i==0 or die "$l[$i] $i";
90 print or die $! foreach @l;
94 exec 3>${lhs}234.auto.gcode
97 perl -pe 's/^/;/ if m/^M104 S0\b/ || (m/^M84/..0)' $g >&3
104 copies="3:5 2:234 1:1"
106 for copy in $copies; do
108 ci=$lhs${copy#*:}.auto.gcode
115 umount /media/sd >/dev/null 2>&1 ||:
118 for l in 1 2 3 4 5 234 $copyls; do
128 for l in 1 2 3 4 5 234 $copyls; do