Gcode-nachbearbeitung.sh: Unterschied zwischen den Versionen

Aus RF1000 Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 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".
 
  if [ -z "$1" ]; then
    echo "Datei angeben!"
    exit 1
  fi
 
  # Hier Z-Tiefe festlegen! Negative Werte fräsen tiefere Isolationskanäle. Eine Tiefe von 0 liegt i.d.R. durchaus unter der Oberfläche,
  # weil sich beim Z-Origin-Scan die Spitze ins Material bohrt!
  Z_TIEFE=0.00
 
  echo Bearbeite $1...
  sleep 1
 
  cat - $1 > $1.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 $1.gcode -e 's/^G00 Z00.*$/G00 Z0.5/' -e 's/^G01.*$/\0 F30/' -e 's/^G00.*$/\0 F100/' -e 's/^G01 Z-.*$/G01 Z'"${Z_TIEFE}"' F30/'
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

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