Scopo del progetto integrativo è l’ideazione e lo sviluppo di metodologie per la generazione
automatica di un processo di lavorazione per asportazione di materiale, basandosi su una
formalizzazione del processo in termini di Network Part Program (NPP), ossia in termini di
Machining Workingstep (MWS).
Il programma utilizzato per lo sviluppo del progetto è Vericut.
Modellazione geometrica generativa: un approccio algoritmico
Riconfigurazione automatica di processi di asportazione in termini di Network Part Program (NPP)
1. Riconfigurazione automatica
di processi di asportazione in termini di
Network Part Program (NPP)
Sistemi Integrati di Produzione
a.a. 2017- 2018
edit by:
Andrea Albini
Giovanni Casabianca
Rebecca Casazza
1
2. INDICE
1- INTRODUZIONE
• Obiettivo del progetto
• Primo approccio a Vericut
2- SVILUPPO DI UNA METODOLOGIA
• Primo esperimento
• Soluzione
- idea generale
- algoritmo
- formalizzazione
3- REALIZZAZIONE DI UNA TASCA
2
3. 1-INTRODUZIONE
OBIETTIVO DEL PROGETTO
Scopo del progetto integrativo è l’ideazione e lo sviluppo di metodologie per la generazione
automatica di un processo di lavorazione per asportazione di materiale, basandosi su una
formalizzazione del processo in termini di Network Part Program (NPP), ossia in termini di
Machining Workingstep (MWS).
Il principale problema tecnologico associato è come definire in maniera generale il part program
per un MWS e come manipolarlo in relazione alla posizione effettiva della feature da lavorare nella
generazione del processo effettivo.
Il programma di cui ci siamo avvalsi per lo sviluppo del progetto è Vericut. Dal 1988 il prodotto
VERICUT® è lo standard industriale nella simulazione CNC per rilevare errori, possibili collisioni,
lavorazioni poco efficienti che permette di eliminare le prove in macchina e di ottimizzare i
programmi NC per risparmiare tempo macchina, ridurre gli scarti e ottenere lavorazioni più
efficienti.
PRIMO APPROCCIO A VERICUT
Una volta installato il programma sui nostri computer, abbiamo proceduto alla configurazione della
macchina e del pallet con le relative attrezzature su cui abbiamo montato l'oggetto della nostra
simulazione: il "catenaccio", un componente in acciaio per utilizzo in ambito ferroviario.
Il primo obiettivo che ci siamo posti è stato quello di fare un foro nel centro della parte superiore
del catenaccio grezzo (Cat.Row3).
Abbiamo, quindi, scelto un utensile a punta cilindrica e abbiamo scritto il relativo part program
prendendo come misure, quelle fornite in classe dall’esercitatore, l’Ing. Manzini. Ci siamo accorti,
però, che le misure con il quale era stato modellato il catenaccio su Vericut erano inferiori rispetto
a quelle di cui eravamo in possesso, pertanto abbiamo provveduto a calcolarle, avvalendoci di un
apposito comando di Vericut: X-Caliper.
Abbiamo trovato, dunque, le seguenti misure:
3
immagine del catenaccio con le misure (proiezione ortogonale)
4. Per poter fare il foro abbiamo dovuto trovare l’origine di lavorazione e la sua distanza dal
catenaccio; abbiamo suddiviso la procedura in 2 step:
1. si calcola la misura dall’origine di lavorazione al baseplate (basamento del pallet)
2. si calcola la misura dal baseplate alla parte da lavorare
Così facendo abbiamo trovato le seguenti misure:
A questo punto siamo passati a determinare la posizione del foro: scomponendo il catenaccio in
due rettangoli, il round hole verrà realizzato nel punto di intersezioni delle diagonali del rettangolo
più grande, pertanto le sue coordinate saranno:
X =
Y =
Z =
a questo dobbiamo sommare rispettivamente la distanza degli assi di lavorazione rispetto al
catenaccio, pertanto le coordinate finali saranno:
X =
Y =
Z =
4
PART PROGRAM - Cat.Row3
G00 B-90
G00 C180
T01 M6
G00 X100 Y100 Z250 S1200 M03
G01 X153,5
G01 Y219
G01 Z120
T01 M05
misure distanza degli assi di lavorazione dal baseplate e dal baseplate al catenaccio
immagine foro
5. 2-SVILUPPO DI UNA METODOLOGIA
PRIMO ESPERIMENTO
Prendendo come riferimento la lavorazione precedente, abbiamo cercato un metodo per
roto-traslare un generico part program associato ad un MWS in funzione dell’effettiva posizione
della feature da lavorare. L’obiettivo finale era quello di riuscire ad applicare lo stesso part program
di lavorazione a tutte e 4 le facce del pallet, cambiando solo la posizione dell’origine di lavorazione.
Inizialmente abbiamo visto come si disponevano i 4 pezzi da lavorare rispetto all’origine di
lavorazione, per capire come si disponeva l’utensile rispetto ad essi (come era rivolto, quanta
distanza avrebbe dovuto percorrere per arrivare alla faccia da lavorare ecc).
La nostra prima idea è stata quella di analizzare la posizione degli assi di lavorazione del pezzo da
lavorare rispetto a quello di riferimento per roto-traslarli di conseguenza.
Abbiamo usato come primo comando G54 che permette di traslare l’origine degli assi: esso
permetteva di svolgere la lavorazione, in modo approssimativamente corretto, per tutte e 4 le facce
del pallet, ma necessitava ogni volta di essere cambiato. Infatti per determinare le coordinate del
G54, era necessario calcolarsi il delta (Δ) tra la posizione dell’utensile rispetto alla faccia da
lavorare e quella rispetto al Cat.Row3, che cambiava ogni volta.
Il problema fondamentale di questa soluzione è dato dal fatto che non viene traslata l’origine di
lavorazione, ma incrementa la distanza che l’utensile deve percorrere lungo i 3 assi.
5
immagini degli assi di lavorazione e dei vari catenacci
PART PROGRAM - Cat.Row1
G00 B-90
G00 C90
G54 X-25 Y22,5 Z0
T01 M6
G00 X100 Y100 Z250 S1200 M03
G01 X153,5
G01 Y219
G01 Z120
T01 M05
PART PROGRAM - Cat.Row2
G00 B90
G00 C90
G54 X62,5 Y20 Z0
T01 M6
G00 X100 Y100 Z250 S1200 M03
G01 X153,5
G01 Y219
G01 Z120
T01 M05
PART PROGRAM - Cat.Row4
G00 B-90
G00 C90
G54 X-10 Y23 Z20
T01 M6
G00 X100 Y100 Z250 S1200 M03
G01 X153,5
G01 Y219
G01 Z120
T01 M05
6. SOLUZIONE
IDEA GENERALE
Grazie al fallimento del primo obiettivo, ci siamo accorti che dovevamo riuscire a trasferire il
sistema di riferimento della lavorazione nello stesso punto per ogni faccia del pallet, in modo tale
da eliminare la distanza dell’utensile al pezzo da lavorare; metaforicamente bisognava riuscire a
far vedere all’utensile la faccia da lavorare in maniera indistinta.
Usando il rapporto controllo, una funzione presente
all’interno di Vericut, abbiamo trovato una lista di tutti i
comandi del programma.
Per capire qual era quello di cui avevamo bisogno, li abbiamo inseriti uno alla volta all’interno del
nostro part program per simularne il movimento. Così facendo abbiamo scelto il G73, che permette
di ruotare gli assi.
Abbiamo scelto come punto di riferimento uno dei vertici della faccia da lavorare (vd. immagine) e
trovato le distanze dell’origine di lavorazione da questo punto per ogni faccia:
A questo punto, notando che gli assi del piano (x,y) in cui è contenuta la feature da realizzare sono
diversi, abbiamo dovuto prendere un comando in modo tale da specchiare gli assi: G28.
6
immagine della lista
immagine
7. ALGORITMO
FORMALIZZAZIONE
In particolare, usando l’algoritmo precedente, il part program per ogni faccia del pallet sono:
7
PART PROGRAM - Cat.Row3
G00 B-90
G00 C180
T01 M6
G91
G00 X121 Y173,5 Z700 S1000 M03
PART PROGRAM - Cat.Row1
G00 B-90
G00 C90
T01 M6
G91
G00 X88,5 Y274 Z700 S1000 M03
G73 H270
G01 X32,5
G01 Y45
G01 Z-400
T01 M05
PART PROGRAM - Cat.Row2
G00 B-90
G00 C0
T01 M6
G91
G00 X258 Y270 Z700 S1000 M03
G28 X0
G73 H90
G01 X32,5
G01 Y45
G01 Z-400
T01 M05
PART PROGRAM - Cat.Row4
G00 B-90
G00 C270
T01 M6
G91
G00 X102 Y210 Z700 S1000 M03
G28 Y0
G73 H90
G01 X32,5
G01 Y45
G01 Z-400
T01 M05
8. 3-REALIZZAZIONE DI UNA TASCA
A prova della nostra metodologia, abbiamo realizzato una tasca su ogni faccia del pallet, usando
come incipit dei part program, gli stessi di quelli usati per realizzare il foro. Per realizzare la pocket,
abbiamo dovuto cambiare solo la lavorazione effettiva, in particolare abbiamo dovuto:
8