Eigene M-Funktionen in EMC definieren
Die erste Möglichkeit: Ein Shellscript im Verzeichnis emc/programs
# M101 in Ihrem G-Code Programm führt die Linux Befehle in diesem Shellscript aus. # Als Argumente können Sie in diesem Fall '''P''' und '''Q''' übergeben, # also z.B. M101 P1.Q2. # Beispiel ohne Funktion P=$1 Q=$2 echo "M101 P$P Q$Q: put your code here" exit 0
Die zweite Möglichkeit: Ein kompiliertes C/C++ Programm im Verzeichnis emc/programs
#include <stdio.h> /* Kompilieren Sie dies mit "gcc M102.c -o M102" und kopieren Sie die ausführbare Datei M102 ins Verzeichnis emc/programs/ . M102 in Ihrem G-Code Programm führt dieses Programm aus, die Variablen P und Q können als Kommandozeilenparameter übergeben werden */ int main(int argc, char *argv[]) { double p = 0.0, q = 0.0; /* process the P and Q command line args we will be given */ if (argc > 1) { sscanf(argv[1], "%lf", &p); } if (argc > 2) { sscanf(argv[2], "%lf", &q); } /* Hier gehört Ihr C/C++ Code hin */ printf("M102 P%f Q%f: put your code here\n", p, q); return 0; }
Diskussion
Das ist ja genial, damit kann man dann ja beliebige Schnittstellen ansteuern um Zusatzfunktionen zu implementieren. -- WinfriedMueller