
Con questo articolo andrò ad approfondire il discorso che avevo già iniziato nel mio articolo sulla stampa 3D (chiarendo le perplessità di molti utenti del sito) e ad introdurre delle macchine incredibili che sono tuttavia ignote alla maggior parte delle persone: frese e pantografi CNC.
Cos'è il CNC?
CNC è l’acronimo di Computer Numerical Control, in questa macrocategoria sono racchiuse tutte quelle macchine che appunto vengono controllate numericamente. Al giorno d’oggi basta guardarsi intorno per capire che il CNC è parte integrante del nostro quotidiano (dal forno a microonde alla lavatrice, dalle macchinette del caffè alla nostra auto) tant’è che la “stragrande” maggioranza delle macchine che utilizziamo sono CNC.
Stampante 3D
La parte hardware della stampante 3D, che ho già provveduto a descrivere, è essenziale da conoscere in quanto sfruttata dalla maggior parte delle tecnologie CNC (frese, pantografi, 3D scanner, ecc.).
Software
Come software CAD consiglio Blender e Rhinoceros: il primo è molto utile per disegni semplici e immediati mentre il secondo è essenziale per progetti più particolareggiati e complessi.
I principali programmi CAM sono Printrun e Repetier-Host; essi sono molto simili tant’è che si appoggiano agli stessi software (Slic3r e Skeinforge) per la fase di slicing tuttavia il secondo ha un interfaccia grafica molto più curata del primo (inoltre ha l’opzione di caricare il file su una sd-card esterna).
Per prima cosa, una volta creato il progetto ed esportato in .stl, bisogna convertirlo in linguaggio macchina (.gcode) ovvero un codice in cui sono descritti tutti i movimenti e le operazioni che la stampante deve fare per creare il progetto digitale (questa fase è denominata slicing).
Il codice non è molto complesso: nelle prime 18 righe sono indicate le specifiche della stampante mentre dalla riga 20 in poi sono indicate le operazioni da eseguire e le coordinate di posizionamento dell’estrusore.
I principali software in grado di compiere lo slicing sono Slic3r e Skeinforge, essi vanno settati a seconda delle caratteristiche della stampante, del filamento e della qualità di stampa che si vuole ottenere; essi sono spesso incorporati nel programma di CAM vero e proprio che si occupa di interfacciare la stampante con il computer e di far eseguire i comandi del .gcode all’hardware della macchina.
Il programma di CAM è essenziale anche in fase di costruzione della stampante in quanto possiede un pannello di controllo manuale per testarne il corretto funzionamento.
Firmware
Per potersi interfacciare correttamente con il computer, nella board di controllo della stampante (nel mio caso Arduino Mega 2560 abbinato a RAMPS 1.4) deve essere caricato un firmware (a mio parere il firmware migliore è Sprinter Master per la chiarezza del codice). Anche il firmware va settato in base alle caratteristiche della stampante.
Per caricare il firmware bisogna per prima cosa installare i driver della board di controllo sul proprio computer e connettersi con quest’ultima; infine compilare il codice e fare l’upload su Arduino.
Per settare il firmware (nel mio caso prendo in esame Sprinter-Master) di Arduino bisogna, dopo aver scaricato il codice, aprire il file .ino (nel mio caso Sprinter.ino) e lavorare su configuration.h.
Le principali voci da settare sono:
#define MOTHERBOARD 33 Il numero identifica la board adottata #define THERMISTORHEATER 1 #define THERMISTORBED 1 Il numero indica la resistenza del termistore (1 indica un termistore da 100k) #define _AXIS_STEP_PER_UNIT {80, 80, 3200/1.25,700} Il numero di passi che i motori stepper devono fare per percorrere un unità metrica. const bool X_ENDSTOP_INVERT = false; const bool Y_ENDSTOP_INVERT = false; const bool Z_ENDSTOP_INVERT = false; Riferite alla possibilità di invertire gli endstop posti ai limiti degli assi. #define BAUDRATE 250000 Il baudrate è la velocità di comunicazione con la stampante (questo valore dovrà essere immesso correttamente anche nel programma di Cam). const bool INVERT_X_DIR = true; const bool INVERT_Y_DIR = true; const bool INVERT_Z_DIR = true; const bool INVERT_E_DIR = true; Per invertire il verso di rotazione dei motori stepper (un metodo alternativo per invertire il senso di rotazione è girare il connettore del motore che si inserisce sui 4 pin della board). const int X_MAX_LENGTH = 200; const int Y_MAX_LENGTH = 200; const int Z_MAX_LENGTH = 100; Le dimensioni del piatto di stampa e della corsa dell’asse z. #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1 Indica la direzione per trovare la posizione di Home.
Fresa e pantografo CNC
Le frese CNC sono molto particolari e utili con applicazioni in svariati campi; ad esempio è possibile tagliare una piastra di metallo o legno secondo un disegno preciso, scavarla per creare un oggetto tridimensionale (anche sculture), creare dei circuiti stampati, ecc.
La differenza tra pantografo e fresa è che il primo ha solo due assi (x e y) e può quindi solo ritagliare il pezzo mentre le frese sono dotate di 3-4 assi e possono “scavare” oggetti tridimensionali.
Mentre la stampante 3D lavora per addizione, sommando layer su layer riesce a creare l’oggetto, qui si lavora per sottrazione ovvero partendo da un blocco di legno o di metallo la fresa va a scolpire il disegno tramite il movimento di un mandrino. La fresatura si divide in due fasi: la sgrossatura, in cui la fresa è munita di una punta molto grossa e poco precisa, che ha lo scopo di sgrossare il blocco, e la finitura in cui sul mandrino è fissata una punta più piccola e precisa per rifinire l’oggetto.
CNC Project ha sviluppato e reso Open Source un progetto low cost di un prototipo di fresa, con manuali per agevolare l’assemblaggio e alcuni programmi molto utili per controllarla; il costo di realizzazione del progetto si aggira attorno ai 500 euro (contro i 1500 euro delle frese commerciali che hanno un area di lavoro molto più piccola).
L’elettronica della fresa si riassume in: un potente mandrino (con adeguate punte a seconda del materiale da fresare), tre stepper-motor nema23 (più grandi e potenti dei nema17 utilizzati nelle stampanti 3D), tre end-stop e una board di controllo.
Image credits: www.cncproject.net
La struttura è formata da fogli di legno e barre di metallo; il basamento è un carrello che scorre lungo l’asse y mentre il mandrino è bloccato su una struttura che gli permette di scorrere sia orizzontalmente che verticalmente.
Infine i software sono: Mach 3 come software di CAM e Dxf to Gcode per fare lo slicing del progetto.
Un’altra strada per poter avere una fresa CNC low cost è quella di comprare una fresa manuale e convertirla in CNC. Esistono due modelli di frese manuali particolarmente facili da convertire: Proxxon MF70 e Proxxon PD230 (con un area di lavoro più grande rispetto alla prima ma molto più costosa).
Edoardo Lenzi

Ciao Edoardo,
Sono contento che qualcuno abbia toccato l’argomento CNC, purtroppo spesso trascurato rappresentando un ambito di nicchia rispetto ad altri di dominio comune.
Ti vorrei fare una domanda dato il nostro comune interesse (anzi, I NOSTRI, ci metto dentro anche la Stampa 3D).
Sono uno dei “convertitori” della Proxxon mf70 a macchina CNC e da tempo sto cercando di utilizzarla per realizzare circuiti stampati (ho respirato tanto di quel percloruro ferrico nel tempo che mi sono stancato della fotoincisione…).
Produco i vari master di circuito tramite KiCAD, Eagle e Traceroute ed esporto sempre i vari layers in file Gerber.
Non c’è verso purtroppo di trasformarli in gcode, almeno con i programmi che ho usato fino ad ora.
È capitato anche a te di dover fare questo tipo di operazioni? Se si, Tu quali convertitori SW usi?
Ho fallito talmente tante volte che ho un po’ abbandonato quel tipo di lavori, ma un giorno mi piacerebbe riprendere…
Ciao Delfino,
non ho ancora realizzato la fresa per cui non ho grande esperienza in questo ambito.
Purtroppo ho notato che non ci sono molti software in circolazione e soprattutto non sono aggiornati (quasi tutti sono per xp o windows 2000!)
Per i disegni dxf classici li puoi convertire in .nc (che a quanto ho capito è ciò che noi chiamavamo gcode per le stampanti) con Ace Converter e poi utilizzare Mach 3 per realizzarlo. Per i file Gerber invece prova PCBMill.
Buona serata.
Edoardo
Un saluto a dodo e Delfino.
Un mio grande sogno sarebbe quello di realizzare una CNC per realizzare i circuiti stampati e magari un giorno si concretizzerà.
Per quanto riguarda la trasformazione di file da Gerber a Gcode avete provato a vedere questo link ?
Buongiorno Adrirobot,
grazie per il tuo commento, un paio dei software citati nel link non li avevo mai sentiti (corro a provarli:)).
Ciao Adri,
il link che hai segnalato lo conoscevo e tempo fa ho provato il programma, ma anche con quello ottenevo sempre gli stessi errori.
A questo punto, probabilmente creo male il gerber da KiCAD… 😉
Ciao a tutti , sono nuovo e un neofita della cnc , però ho sentito parlare che con l’ottimo pcb g*ode consigliato da Adrirobot si mette insieme ad *agle e viene fuori una cosa che funziona!!!!! Ripeto che sono neofita e quindi mi scuso per le informazioni un pò precarie , però spero di dipanare un pochino la matassa…………..
Ciao a tutti !!!!!!!
Ciao, ho seguito i tuoi articoli e credo che sia arrivato il momento di farti i complimenti e qualche domanda 🙂
Ultimamente sto raccogliendo del materiale per costruire una stampante 3D, ma ho alcune insicurezze.
– Sai dirmi in base a quali criteri bisogna scegliere i motori?
– Che tipo di motori mi consigli di utilizzare? Ho sentito parlare di NEMA 17, ma di quest’ultimo ne esistono diversi modelli… quale scegliere?
– Che hardware di controllo utilizzare?
Per il momento questo è tutto, prossimamente chiederò altro.
Grazie.
A presto,
Ivan
Ciao Ivan,
dipende in buona sostanza dal tipo di stampante hai in mente di realizzare, dalle dimensioni, dalla qualità di stampa…
Per iniziare io ti consiglierei la RepRap I2 perché è quella che la maggior parte delle persone si sono costruite e quindi sicuramente troverai un sacco di video, guide, tutorial e chi più ne ha più ne metta.
Come elettronica, se la stampante non ha dimensioni importanti, bastano i motori NEMA17 (se invece ha un area molto grande devi prendere i NEMA23); di NEMA17 io ne conosco solo due tipi ma sono assolutamente equivalenti (l'importante è che abbiano questa specifica: 1.8 degrees step – 4.08 kg/cm).
L'hardware di controllo che reputo migliore è Ramps 1.4 perché, in primo luogo, si basa su un Arduino Mega ed in secondo è una board in cui ogni componente si può "staccare" ed in caso di rottura rimpiazzare singolarmente (le altre board generalmente sono molto compatte e, nonostante costino un po' meno, quando hai un minimo malfunzionamento corri il rischio di dover buttare via l'intera scheda). Te lo dico perché al 99,9% brucerai almeno uno stepper driver (io ne ho bruciati un paio).
Infine il miglior sito che ho trovato per fare acquisti è ReprapWorld.
Spero di averti aiutato, per qualunque cosa tu chiedi 😉
Edoardo Lenzi
Come mai ne hai bruciati un paio? Erano difettosi?
Uno era difettoso, l’altro invece è stata tutta colpa della mia stupidità perché c’era un problema di settaggi nel firmware che non faceva muovere un motorino io invece ero fermamente convinto che fosse un problema legato al potenziometro dello stepper driver e dopo una giornata che ci “smanettavo” ho alzato troppo la potenza e l’ho bruciato.
A mia unica discolpa c’è da dire che moltissime persone, per un motivo o per l’altro, mettendoci mano l’hanno fulminato (poco male, il mitico Bart di Reprap World me lo ha spedito gratuitamente!).
Buona serata
Edoardo
Ciao a tutti ho seguito un pò i commenti io ho iniziato 2 anni fa a dedicarmi alle stampanti 3D ne sono affascinato
un pò di esperienza ne ho se qualcuno vuole chiarimenti e suggerimenti sono disponibile.
Ciao!
Ho realizzato la parte il legno utilizzando proprio il progetto che
si vede nell’ultima immagine.
Causa problemi di lavorazione non sono riuscito a realizzare un
perfetto parallelismo, cio mi provoca non pochi problemi.
Ho quindi l’idea di rifare la parte meccanica utilizzando i
profilati d’allumino che si trovano in vendita anche su robotitaly.
Mi potresti consigliare un progetto alternativo?
Grazie!
Sergio
Ciao Sergio,
purtroppo è da un bel po’ di tempo che non mi informo sull’argomento CNC per cui è probabile che siano stati realizzati nuovi progetti ma non saprei consigliarteli. Servirebbe l’aiuto di Delfino. Sicuramente andresti meglio con altri materiali, spesso il legno è scomodo per lavori molto precisi e tende a deformarsi col tempo; io userei lastre di alluminio. Edoardo
Ciao volevo chiederti se conosci qualche corso professionale valido per imparare a usare un po’ di software…io ho trovato questi corsi https://www.corsiprofessionali.top/corsi-di-formazione/industria-e-impiantistica/corsi-programmatore-cnc/
Grazie!