Gcode-nachbearbeitung.sh: Unterschied zwischen den Versionen

Aus RF1000 Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
  #!/bin/bash
Folgendes Linux-Bash-Script erlaubt das automatische Bearbeiten des von Eagle produzierten G-Codes. Die Dateien sollten im aktuellen Verzeichnis liegen und "bottom.ncd", "top.ncd", "drills.ncd" und "board.ncd" heißen. Die Ausgabe-Dateien erhalten die Extension ".gcode".
 
 
  for i in bottom top drills board ; do
Wer kein Linux hat, kann allen Dateien von Hand folgenden Header hinzufügen:
 
M3005 S6 ; enable debug output
    FeedG0=500
M3060 ; print firmware version
    FeedG1=30
G90 ; absolute coordinates
    if [ $i == drills ]; then
M3153 ; output matrix
      FeedG0=500
M3141 ; turn z compensation on
      FeedG1=200
sowie jeweils bei den ersten G00 und G01 Befehlen hinten die passenden Feedrate anfügen (immer F30 außer bei den Bohrungen, dort F200). Das Script ist etwas "intelligenter" und fügt schnellere Feedrates bei allen G00-Befehlen ein, man müsste allerdings anschließend jeweils beim darauffolgenden G01-Befehl wieder die langsamere Feedrate anfügen. Das lohnt sich von Hand vermutlich eher nicht.
    fi
 
   
#!/bin/bash
    echo "Eingabe-Datei: ${i}.ncd"
    echo "Ausgabe-Datei: ${i}.gcode"
for i in bottom top drills board ; do
    echo "Feedrate fuer G0: ${FeedG0}"
    echo "Feedrate fuer G1: ${FeedG1}"
  FeedG0=500
 
  FeedG1=30
    sleep 1
  if [ $i == drills ]; then
 
    FeedG0=500
    cat - ${i}.ncd > ${i}.gcode <<EOF
    FeedG1=200
  %
  fi
  M3005 S6 ; enable debug output
 
  M3060 ; print firmware version
  echo "Eingabe-Datei: ${i}.ncd"
  G90 ; absolute coordinates
  echo "Ausgabe-Datei: ${i}.gcode"
  M3153 ; output matrix
  echo "Feedrate fuer G0: ${FeedG0}"
  M3141 ; turn z compensation on
  echo "Feedrate fuer G1: ${FeedG1}"
  EOF
 
  sleep 1
    sed -i ${i}.gcode -e 's/^G00 Z00.*$/G00 Z0.5/' -e 's/^G01.*$/\0 F'${FeedG1}'/' -e 's/^G00.*$/\0 F'${FeedG0}'/'      \
                      -e 's/^M74$/% \0/' -e 's/^M71$/% \0/' -e 's/^M48$/% \0/' -e 's/^M999.*$/% \0/'                    \
  cat - ${i}.ncd > ${i}.gcode <<EOF
                      -e 's/^M30 .*$/% \0/' -e 's/^G36 .*$/% \0/' -e 's/^T.*$/% \0/'
%
 
M3005 S6 ; enable debug output
  done
M3060 ; print firmware version
G90 ; absolute coordinates
M3153 ; output matrix
M3141 ; turn z compensation on
EOF
  sed -i ${i}.gcode -e 's/^G00 Z00.*$/G00 Z0.5/' -e 's/^G01.*$/\0 F'${FeedG1}'/' -e 's/^G00.*$/\0 F'${FeedG0}'/'      \
                    -e 's/^M74$/% \0/' -e 's/^M71$/% \0/' -e 's/^M48$/% \0/' -e 's/^M999.*$/% \0/'                    \
                    -e 's/^M30 .*$/% \0/' -e 's/^G36 .*$/% \0/' -e 's/^T.*$/% \0/'
done

Aktuelle Version vom 7. Mai 2017, 15:56 Uhr

Folgendes Linux-Bash-Script erlaubt das automatische Bearbeiten des von Eagle produzierten G-Codes. Die Dateien sollten im aktuellen Verzeichnis liegen und "bottom.ncd", "top.ncd", "drills.ncd" und "board.ncd" heißen. Die Ausgabe-Dateien erhalten die Extension ".gcode".

Wer kein Linux hat, kann allen Dateien von Hand folgenden Header hinzufügen:

M3005 S6 ; enable debug output
M3060 ; print firmware version
G90 ; absolute coordinates
M3153 ; output matrix
M3141 ; turn z compensation on

sowie jeweils bei den ersten G00 und G01 Befehlen hinten die passenden Feedrate anfügen (immer F30 außer bei den Bohrungen, dort F200). Das Script ist etwas "intelligenter" und fügt schnellere Feedrates bei allen G00-Befehlen ein, man müsste allerdings anschließend jeweils beim darauffolgenden G01-Befehl wieder die langsamere Feedrate anfügen. Das lohnt sich von Hand vermutlich eher nicht.

#!/bin/bash

for i in bottom top drills board ; do

  FeedG0=500
  FeedG1=30
  if [ $i == drills ]; then
    FeedG0=500
    FeedG1=200
  fi
  
  echo "Eingabe-Datei: ${i}.ncd"
  echo "Ausgabe-Datei: ${i}.gcode"
  echo "Feedrate fuer G0: ${FeedG0}"
  echo "Feedrate fuer G1: ${FeedG1}"

  sleep 1

  cat - ${i}.ncd > ${i}.gcode <<EOF
%
M3005 S6 ; enable debug output
M3060 ; print firmware version
G90 ; absolute coordinates
M3153 ; output matrix
M3141 ; turn z compensation on
EOF

  sed -i ${i}.gcode -e 's/^G00 Z00.*$/G00 Z0.5/' -e 's/^G01.*$/\0 F'${FeedG1}'/' -e 's/^G00.*$/\0 F'${FeedG0}'/'       \
                    -e 's/^M74$/% \0/' -e 's/^M71$/% \0/' -e 's/^M48$/% \0/' -e 's/^M999.*$/% \0/'                     \
                    -e 's/^M30 .*$/% \0/' -e 's/^G36 .*$/% \0/' -e 's/^T.*$/% \0/'

done