Allora, premetto che non ho mai usato Arduino per controllare delle macchine a controllo numerico, cmq il concetto generale è questo:
-C'è un computer che fa i calcoli e manda i comandi in diversi modi ai driver. Può essere Arduino o un Pc con un software di controllo come quello che ti ho postato io.
-C'è la parte dei driver che "per semplificare" comandano i motori, e qui dipende dai motori e dalle potenze in gioco.
-Poi c'è la movimentazione vera e propria, che è data dai motori, dalla struttura e da eventuali sensori per il feedback della posizione (o anche temperatura nel caso di estrusori..o velocità nel caso di mandrini regolabili).
nel caso dei motori stepper non si usa nessun tipo di feedback, a parte eventuali home switch o limit switch. Questo perchè con gli stepper, finchè non perdono passi, sai esattamente di quanto si muovono, in base agli impulsi di step che dai.
Nel caso di servo motori, serve un encoder che dice al computer (o a volte direttamente al driver..) la posizione del motore (feedback, appunto..), cosìcchè il computer può pilotare il driver nel corretto modo.
Per quanto riguarda Arduino devi cercare, perchè non so come gli viene dato in pasto il disegno da realizzare. Le CNC usano normalmente un codice (G-Code, NGC mi sembra..) universale, o quasi per i comandi alla macchina. ci sono quindi diversi software (CAM) che partono da un disegno 2D, 2.5D o 3D e a seconda del tipo di CNC (plotter, Fresa, Tornio, Stampante 3D, Bracci meccanici, ecc..) creano questo codice.
Comunque, con Arduino da solo non controlli i motori per una CNC. al massimo, ma sempre usando alimentazione esterna ad arduino, puoi fare qualcosa con dei servomotori da modellismo (guarda questa che carina per esempio:
).
Spero di aver detto qualcosa di utile. ciao davide.