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
