Gcode-nachbearbeitung.sh

Aus RF1000 Wiki
Zur Navigation springen Zur Suche springen

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