Vamos añadiendo funcionalidades

Ya lee y ejecuta scripts. He desarrollado unos comandos básicos para el control del torno, a continuación muestro los que funcionan actualmente. La idea es crearlos de forma semiautomatizada con el programa de CAM básico que estoy desarrollando.
Los scripts se colocan en una carpeta dentro de la SD para ir desarrollandolos para crear tareas más complejas.
Estarán parametrizados, ahora no lo están, de forma que se puedan llamar como una función cualquiera. Por ejemplo crear un cono partir de una pieza de dimensiones determinadas, como parámetros le pasariamos las dimensiones del material en bruto y las dimensiones del cono, así como el tipo de material. El control realizaría el desbaste y el acabado hasta las dimensiones finales.
En fin, esto es lo que se me ha ocurrido, pero ya digo que sólo soy aprendiz de CAM. Se admiten todas las críticas constructivas

//----------------------------------------------------------------------------------------------------------------------
//------------------------------- EJEMPLO SCRIPT ----------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
//recta hasta (x,z) a velocidad vl (mm/s)
//
RECTA(x,z,vl); //recta hasta (x,z) a vl sincronizada con el husillo (para roscas)
//eje sincro: 1 --> X, 2 --> Z
//avance por rev en mm
//
RECTA_S(x,z,ejesincro,avsincro);//arco de circunferencia a velocidad vl (mm/s) hasta (x,z) con centro en (cgx,cgz)
//sentido: h--> -1, ah--> 1, modo: exacto--> 1, interpolado--> 2, paso en mm
//
ARCO(x,z,cgx,cgz,sentido,modo,paso,vl);//curva Bezier hasta (x,z) con 3 puntos de control a velocidad lineal vl (mm/s)
//modo: exacto --> 1, interpolado --> 2, paso en mm
//
CURVA_B3(x,z,xpc1,zpc1,xpc2,zpc2,xpc3,zpc3,modo,paso,vl); //cambio herramienta a numeroh
//
CAMBIOH(numeroh); //pausa en milisegundos
//
PAUSA(ms);//conecta/desconecta refrigerante
//
REFRIG([1,0]);//control dirección (-1,0,1) y rpm (0-100000) husillo; dir == 0 --> STOP
//
SHUSILLO([-1,0,1],[0,100000]); //modo velocidad corte constante en m/min
//
SVCONST([1,0],vcorte);//llamada a subrutina parametrizada
//
JSCALL(subrutina,[parametros]);//inclusión script en línea actual
//
JSINCLUDE(nscript);//mostrar mensaje informativo en pantalla
//
PRSTR(string);//mueve el palpador eléctrico hasta tocar la pieza
//sx > 0 a x++, sx < 0 a x--, sz > 0 a z++, sz < 0 a z--
//
TOUCH(sx,sz);//----funciones manejo de ficheros
//crear fichero
//
CREATEF(nfichero);//abrir fichero exsitente
//
OPENF(nfichero);//escribir coordenada actual herramienta (x,z)
//
WRITEF(nfichero,x,z);//cerrar fichero
//
CLOSEF(nfichero);//----------------------------------
//---- no implementados todavía
//modo coordenadas locales: absolutas o relativas
//
MODO_COORD([abs,rel]);//establecer valor variable
//
SETV(nvar,valor_var);//sentencias:
for( ; ; ), if, else, GOTO, return etc...//-----------------------------
//estructura básica script
INI_SCRIPT; //señal inicio script
//comandos
FIN_SCRIPT; //señal fin script
//----------------------------------------------------------------------------------------------------------------------
Un saludo