Fresatura Robot

È possibile utilizzare i robot industriali come una macchina utensile (CNC a 3 o 5 assi). Per ottenere gli stessi risultati delle macchine CNC, i robot industriali richiedono un software di Programmazione Offline avanzato come RoboDK per convertire i programmi macchina in programmi robot. RoboDK supporta la conversione di programmi macchina come APT, G-code ACL, TAP o NCI in simulazioni e programmi robot.

La fresatura robotica comprende diverse applicazioni di asportazione di materiale, come fresatura, foratura, smussatura e sbavatura, tipicamente eseguite da macchine utensili automatizzate (CNC).

Le dimensioni del pezzo vengono definite utilizzando un software di progettazione assistita da computer (CAD) e successivamente tradotte in programmi di produzione (come il G-code) da un software di produzione assistita da computer (CAM). I programmi di produzione possono quindi essere convertiti in programmi robot utilizzando gli strumenti di Programmazione Offline di RoboDK.

Assi addizionali, come una tavola rotante e/o una guida lineare, possono essere creati e sincronizzati con il robot per estendere lo spazio di lavoro.

Esempi di Fresatura Robotizzata

Questa sezione mostra alcuni esempi che coinvolgono la fresatura robotizzata. Alcuni di questi esempi utilizzano un plug-in per mostrare come generare il percorso utensile CAM. Tuttavia, è possibile caricare in RoboDK qualsiasi percorso utensile generico a 5 assi, come file APT, NC o G-code.

Per saperne di più sui progetti di esempio nella sezione degli esempi.

Visita la sezione CAM Add-Ins della nostra documentazione per altri esempi di progetti di fresatura robotizzata, come Mastercam, MecSoft/RhinoCAM, Inventor, FeatureCAM o Fusion 360.

Introduzione alla Fresatura Robotizzata

Questo esempio aiuta a comprendere le basi della fresatura robotizzata in RoboDK e come convertire un lavoro di fresatura robotizzata a 3 assi in una simulazione e in un programma robot.

Per saperne di più su questo esempio di fresatura robotizzata.

Introduzione alla Fresatura Robotizzata (5x)

Questo esempio aiuta a comprendere come configurare le impostazioni di fresatura robotizzata in RoboDK e come convertire un lavoro di fresatura robotizzata a 5 assi in una simulazione e in un programma robot.

Questo esempio aiuta anche a creare movimenti di approccio/ritrazione sicuri tra le diverse operazioni del lavoro di fresatura.

Per saperne di più su questo esempio.

Fresatura Robotizzata con Assi Esterni

Questo esempio mostra come utilizzare un robot KUKA con 3 assi esterni addizionali per la fresatura robotizzata. La cella include un braccio robotico a 6 assi, una guida lineare a un asse e una tavola rotante a 2 assi.

Maggiori informazioni nella sezione esempi RhinoCAM. L’integrazione tra RhinoCAM e RoboDK carica automaticamente i file APT da RhinoCAM a RoboDK.

Taglio Laser

Questo esempio mostra come utilizzare un robot Yaskawa/Motoman per un’applicazione di taglio laser. Il percorso di taglio del robot viene definito utilizzando il RoboDK Add-In per Autodesk Fusion.

Per saperne di più su questo esempio di taglio laser.

Fresatura Robotizzata di Stampi

Questo esempio mostra come utilizzare un robot Yaskawa/Motoman per la fresatura robotizzata e il RoboDK Add-In per Mastercam. RoboDK supporta il caricamento automatico di file NCI o NC generati da Mastercam.

Visita l’esempio Fresatura Robotizzata a 3 Assi con Mastercam per maggiori informazioni.

Per saperne di più su questo esempio di fresatura di stampi.

Sbavatura Robotizzata

Questo esempio mostra come utilizzare un robot ABB per la sbavatura. Questo esempio include un'operazione di pick and place.

Per saperne di più su questo esempio di sbavatura di materiali plastici.

Lucidatura

Questo esempio mostra come utilizzare un robot KUKA per la lucidatura.

Per saperne di più su questo esempio di sbavatura di materiali plastici.

Setup per Fresatura

Questa sezione mostra come preparare un semplice progetto RoboDK, offline, per la fresatura robotizzata. La cella di fresatura robotizzata deve avere almeno un robot, un tool (EOAT) e un piano di riferimento (detto anche sistema di coordinate, riferimento pezzo o datum). Maggiori informazioni su come costruire una nuova stazione in RoboDK nella sezione Per Iniziare.

Robot Machining - Figura 1

I passaggi seguenti mostrano come preparare una configurazione di fresatura robotizzata con un robot KUKA KR210 e un mandrino di fresatura Teknomotor (questo esempio è disponibile nella libreria come Sample-New-Project.rdk).

Seleziona un robot:

a.Seleziona File➔Robot Machining - Figura 2 Apri libreria online

Utilizza i filtri per cercare il tuo robot per marca, portata, ...       
Per esempio, seleziona il KUKA KR210 R2700 (portata 210 Kg, sbraccio 2.7 m).

Seleziona Download e il robot dovrebbe apparire automaticamente nella schermata principale.

Seleziona un tool:

Dalla stessa libreria online, seleziona Reset per rimuovere i filtri e filtra per TipoTool.

Seleziona Download per caricare un tool Spindle come il mandrino Teknomotor ATC71-C-LN.

Il mandrino verrà automaticamente collegato al robot.

Chiudi la finestra della Libreria Online.

Aggiungi un piano di riferimento:

Seleziona il piano di riferimento base del robot (chiamato KUKA KR210 R2700 Base).

b.Seleziona Programma➔Robot Machining - Figura 3 Aggiungi Piano di Riferimento. Un nuovo piano di riferimento verrà aggiunto alla base del robot.

Fai doppio click sul riferimento e inserisci le coordinate:     
XYZABC = [1500,1000,500,0,0,0] (mm-deg)

Rinomina il nuovo piano di riferimento in Milling Reference inserendo un nuovo nome o selezionando F2.

Aggiungi l'oggetto che utilizzerai per la fresatura robotizzata (opzionale):

c.Seleziona File➔Robot Machining - Figura 4 Apri

Seleziona un oggetto chiamato Object Chess Rook.sld dalla libreria RoboDK:        
C:/RoboDK/Library

Trascina l'oggetto sul Milling Reference se non è stato posizionato lì automaticamente (all'interno dell'albero della stazione).

Fai doppio click sul robot per visualizzare il pannello del robot (opzionale). Il pannello del robot mostra il tool attivo e il piano di riferimento attivo. Selezionando e aggiornando il tool e il piano di riferimento dovremmo vedere le stesse coordinate visibili nel controller del robot. Per impostazione predefinita, il mandrino Teknomotor ha il TCP alla radice del portautensile. Il tool (TCP) avrà una certa lunghezza. In questo esempio aggiorneremo il TCP per rappresentare la lunghezza della fresa:

Aggiorna la coordinata X del tool (TCP) a 375 mm. Vedrai il TCP muoversi lungo l'asse.

(opzionale) puoi anche creare un secondo tool e definire un TCP relativo rispetto al primo aggiungendo una traslazione lungo l'asse Z.

Chiudi la finestra del pannello del robot.

Robot Machining - Figura 5

Progetto Fresatura Robotizzata

Segui questi passaggi per impostare un nuovo progetto di fresatura robotizzata dato un file NC generato da software CAM (come G-code o APT):

1.Seleziona Utilità➔Robot Machining - Figura 6Progetto Fresatura robotizzata (Ctrl+M) 
Una nuova finestra comparirà, come mostrato nell'immagine.

2.Seleziona Seleziona file NC nella sezione input percorso

3.Fornisci un file NC, come uno dalla libreria RoboDK:        
C:/RoboDK/Library/Milling Bowl 3x.nc

4.Rinomina il progetto di fresatura robotizzata in Machining Settings facendo click destro sul nuovo elemento nell’albero e selezionando Rinomina (F2).

Robot Machining - Figura 7

Seleziona il robot, il piano di riferimento e il tool nella sezione in alto a sinistra del menu, come mostrato nella seguente immagine:

Robot Machining - Figura 8

Il percorso di fresatura è visualizzato in Verde e le normali sono visualizzate come vettori bianchi. Deseleziona Percorso visibile per nascondere il percorso.

È possibile selezionare Aggiorna per verificare se è possibile creare un programma di fresatura robotizzata con le impostazioni predefinite. Se il programma è stato generato correttamente, verrà visualizzato un segno di spunta verde. È quindi possibile selezionare Simula o fare doppio click sul programma generato per avviare la simulazione.

Robot Machining - Figura 9

Se viene visualizzata una croce rossa con un messaggio di avviso, significa che il programma di fresatura robotizzata non è realizzabile. Potrebbe essere necessario modificare alcune impostazioni, come l’orientamento del tool, i parametri di ottimizzazione, il punto di partenza o la posizione della parte.

Le sezioni seguenti forniscono maggiori informazioni su come personalizzare le impostazioni di fresatura robotizzata.

Input Percorso

L'input percorso permette di selezionare diversi modi di fornire un percorso. Il percorso può essere definito da:

Seleziona file NC: Come file NC (ottenuto da software CAM), come descritto in questa sezione

Seleziona curva: Come una o più curve, descritte nella sezione Progetto Segui Curve.
È possibile importare curve come lista di coordinate in RoboDK

Seleziona punti: Uno o più punti, come descritto nella sezione Progetto Segui Punti   
È possibile importare punti come lista di coordinate in RoboDK

Oggetto stampa 3D: Come un oggetto per stampa 3D. Uno slicer è utilizzato per convertire la geometria in percorso

Robot Machining - Figura 10Robot Machining - Figura 11

Eventi di Programma

Seleziona Eventi di Programma per visualizzare gli eventi speciali da tenere in considerazione durante la generazione dei programmi robot. Questo include l'attivazione di un cambio tool, l'impostazione della velocità del mandrino in RPM o l'attivazione di programmi specifici all'inizio o alla fine del programma.

È possibile specificare un valore di arrotondamento in Eventi di programma. Questo creerà automaticamente un’istruzione di arrotondamento all’inizio del programma e aiuterà a rendere i programmi di fresatura robotizzata più fluidi, evitando che il robot vibri. Ad esempio, su un robot ABB questo imposterà il valore ZoneData in mm, su un robot Fanuc questo imposterà il valore CNT come percentuale e sui controller Universal Robots imposterà il valore di blending in mm.

Se stai utilizzando file G-code o NCI, i codici M personalizzati verranno attivati per impostazione predefinita come chiamate di funzione a M_RunCode (il codice M viene passato come parametro). È possibile rimuovere le chiamate M personalizzate eliminando la chiamata a M_RunCode.

Robot Machining - Figura 12

Sposta il cursore del mouse sopra il campo corrispondente per ulteriori informazioni su come personalizzare ogni sezione.

Ad esempio, durante il cambio del tool è possibile utilizzare il valore %1 per rappresentare l’ID del tool fornito dal software CAM. Se preferisci attivare funzioni statiche invece di passare argomenti, puoi sostituire SetTool(%1) con SetTool%1. Utilizzando il tool 2, questo genererebbe SetTool2 invece di SetTool(2).

Approcio/Ritrazione

È possibile personalizzare i movimenti di approccio e ritrazione dalla parte in alto a destra del menu di fresatura robotizzata. Per impostazione predefinita, RoboDK aggiunge movimenti di approccio e ritrazione di 100 mm lungo la normale.

Seleziona Aggiungi per aggiungere un ulteriore movimento di ritrazione. Il percorso verde verrà aggiornato di conseguenza. È possibile scegliere tra il movimento lungo un asse specifico, l'inserimento di coordinate, un approccio ad arco, ecc. È inoltre possibile combinare più movimenti di approccio/ritrazione selezionando il pulsante Aggiungi.

Robot Machining - Figura 13

Seleziona Rimuovi per rimuovere un movimento di approccio o ritrazione specifico.

Percorso in offset tool

Il percorso in tool offset permette di modificare l'orientamento preferito del tool lungo il percorso. Questa opzione è principalmente utilizzata per ruotare il tool attorno all'asse Z del TCP. Questo permette di gestire il sesto grado di libertà attorno all'asse del tool. Sono disponibili diverse opzioni a seconda dell'applicazione e dei suoi requisiti. Ad esempio, è possibile scegliere di minimizzare l'orientamento del tool oppure seguire l'orientamento del tool lungo il percorso.

Visto che un robot a 6 assi è utilizzato per seguire un programma di manifattura CNC a 3 o 5 assi, abbiamo un grado di libertà aggiuntivo da definire. Questo grado di libertà è solitamente la rotazione attorno all'asse Z del TCP. Questo grado di libertà aggiuntivo è particolarmente utile per evitare singolarità, limiti di giunto, collisioni o problemi di raggiungibilità.

Robot Machining - Figura 14

Per impostazione predefinita, il percorso in tool offset visualizza una trasformazione rotz(0). Questo significa che è possibile aggiungere una rotazione aggiuntiva attorno all'asse Z del tool. Questo valore può essere modificato per stabilire l'orientamento preferito del tool, modificando l'orientamento attorno all'asse Z del TCP oppure in combinazione con altri assi. L'orientamento preferito è l'orientamento che il robot cercherà di mantenere seguendo il percorso.

Robot Machining - Figura 15

Per impostazione predefinita, RoboDK utilizza l’algoritmo di Minima variazione dell’orientamento del tool. Questo significa che l’orientamento del tool viene mantenuto il più possibile costante lungo il percorso. In generale, questa opzione è adatta per operazioni di fresatura poiché minimizza i movimenti dei giunti del robot. In alternativa, sono disponibili altri algoritmi/metodi, come l’orientamento del tool che segue il percorso (utile per applicazioni di taglio, dove la lama deve rimanere tangente lungo il percorso), oppure il robot che tiene l’oggetto se il percorso deve essere seguito mantenendolo collegato al tool del robot (ad esempio, per applicazioni di dispensazione o lucidatura, note anche come configurazioni Remote TCP).

Ottimizzazione Parametri

Dato un orientamento preferito del tool, il robot può avere una certa libertà di ruotare attorno all'asse Z del tool. Questo permette al robot di risolvere il programma evitando singolarità del robot, limiti di giunto e assicurando che tutti i punti siano raggiungibili. Per impostazione predefinita, RoboDK permette al tool di ruotare fino a +/-180 gradi attorno all'asse del TCP, con incrementi di 20 gradi.

È consigliato limitare questa rotazione a seconda dell'applicazione. Ad esempio, è possibile inserire +/-90 gradi per limitare a metà la rotazione consentita. Diminuire questo parametro riduce anche il tempo di elaborazione necessario per ottenere il programma.

Se alcuni punti del percorso non sono raggiungibili, è consigliato ruotare il piano di riferimento oppure essere più permissivi con la rotazione Z del tool. Il piano di riferimento può essere spostato tenendo premuto il tasto Alt e trascinando il sistema di coordinate per adattare meglio la parte allo spazio di lavoro del robot.

Robot Machining - Figura 16

Configurazione Preferita

RoboDK seleziona automaticamente la configurazione iniziale che è più vicina alla configurazione di partenza (Giunti preferiti per punto iniziale). Da quel punto, il robot seguirà movimenti lineari, quindi la configurazione robot non cambierà.

Un menu a scomparsa visualizzerà tutte le possibili soluzioni per iniziare il programma. Se richiesto, seleziona una configurazione preferita e seleziona Aggiorna per ricalcolare il programma.

Robot Machining - Figura 17

Aggiorna Programma

Seleziona Aggiorna per ottenere il programma in accordo alle impostazioni fornite. Un simbolo verde è visualizzato se il programma può essere creato con successo. Vedremo poi un nuovo programma nella stazione.

Robot Machining - Figura 18

Fare doppio click sul programma generato Robot Machining - Figura 19 o seleziona Simula per iniziare la simulazione di fresatura.

Fare click con il tasto destro e selezionare Genera programma robot (F6) per ottenere il programma. Più informazioni riguardo la generazione del programma nella sezione Programma

Robot Machining - Figura 20

Taglio Robot

È possibile mantenere l'orientamento del tool costante lungo il percorso. Questo comportamento è utile per taglio o saldatura.

Seleziona Orientamento tool segue il percorso nella sezione Seleziona algoritmo per ricalcolare il percorso preferito. Le altre impostazioni sono le stesse del progetto fresatura con un orientamento costante.

Robot Machining - Figura 21

Robot tiene oggetto

È possibile programmare il robot a tenere l'oggetto/toolpath con il tool mentre le operazioni di manifattura sono svolte. È utile per applicazioni di incollaggio o smerigliatura.

Seleziona Robot tiene oggetto nella sezione Seleziona Algoritmo per posizionare propriamente il percorso sul riferimento del TCP. Le altre impostazioni sono le stesse di un progetto fresatura con orientamento costante.

Robot Machining - Figura 22

Maggiori informazioni disponibili nella sezione RoboDK Add-In per Autodesk Fusion.

Progetto Segui Curva

È possibile far si che il robot segua curve nello spazio 3D con RoboDK. Curve in RoboDK possono essere selezionate da spigoli di oggetti o importati da una lista di punti in file CSV. Questa opzione è utile per applicazioni di saldatura.

Per lavorare con un CFP, segui questa procedura:

1.Seleziona Utilità➔Progetto Segui Curva per aprire le impostazioni segui curva. Queste impostazioni sono le stesse del Progetto Fresatura, l'unica differenza è che l'Input percorso è preselezionato su Seleziona curva

2.Seleziona Seleziona curva per selezionare le curve sullo schermo.

Robot Machining - Figura 23

3.Seleziona le curve con il click del tasto sinistro del mouse. Selezionare la stessa curva due volte invertirà la direzione del movimento. Inoltre, cliccando con il tasto destro su una curva precedentemente selezionata è possibile invertirne il senso di marcia, deselezionarla oppure selezionare nuovamente una curva già esistente.

Robot Machining - Figura 24

Cliccare con il tasto destro sullo schermo e selezionare Fatto o premere il tasto Esc per tornare indietro nel menu impostazioni. Il percorso verde mostrerà i movimenti del robot con rispetto dell'oggetto.

Robot Machining - Figura 25

4.È possibile selezionare Aggiorna per verificare se è possibile creare un programma robot con le impostazioni predefinite. Se il programma è stato generato correttamente, verrà visualizzato un segno di spunta verde. È quindi possibile selezionare Simula o fare doppio click sul programma generato per avviare la simulazione.

Alcune opzioni addizionali sono disponibili in alto a destra delle impostazioni, ad esempio la velocità e i movimenti di approcio/ritrazione devono essere applicati ad ogni curva. Le impostazioni di default sono visualizzate nella prossima immagine:

Robot Machining - Figura 26

Il programma può essere ulteriormente personalizzato e ottimizzato utilizzando le stesse funzionalità mostrate nella sezione di fresatura robotizzata.

Estrarre Caratteristiche da Oggetti 3D

È possibile estrarre curve dalle caratteristiche di oggetti 3D importati in RoboDK selezionando Strumenti→Crea Curve.

Robot Machining - Figura 27

Un pannello apparirà sul lato sinistro della finestra di RoboDK; sarà possibile estrarre curve finché questo pannello è attivo e l’opzione "Estrai curve automaticamente" è abilitata.

Robot Machining - Figura 28

È possibile posizionare il cursore sull'oggetto 3D da cui estrarre la curva. Apparirà una linea sottile e azzurra a rappresentare la curva. Le frecce bianche su diversi punti rappresentano la normale della curva, ovvero la direzione da cui il tool si avvicinerà.

Robot Machining - Figura 29

È possibile modificare l’orientamento delle normali della curva (direzione di approccio) spostando leggermente il mouse in verticale o in orizzontale. Il passo predefinito è di 15 gradi ed è controllato dall’opzione "Passo di inclinazione (gradi)" nel pannello Crea Curva.

Quando hai identificato la curva corretta, fai click su di essa senza spostare il mouse. Ripeti finché non hai selezionato tutte le curve che desideri utilizzare in un Progetto Segui Curva.

Robot Machining - Figura 30

RoboDK include diversi strumenti per aiutarti a modificare le curve anche dopo averle estratte. Se desideri semplicemente modificare la normale, puoi farlo selezionando Strumenti→Modifica Curve. Questa funzionalità permette di modificare le normali su qualsiasi curva creata in precedenza.

Importa Curve

RoboDK può creare oppure ottenere curve da diverse fonti. Il seguente elenco mostra esempi di strumenti che permettono di creare una curva utilizzabile in un Progetto Segui Curva:

a.Estrarre le caratteristiche da un oggetto 3D importato in RoboDK.

b.Importare un file CSV contenente la curva.

c.Importare una curva utilizzando un plugin CAD/CAM.

d.Importare curve da un file SVG o DXF.

e.Utilizzando l’app Surface Pattern Generator.

f.Utilizzando le RoboDK API per integrarsi con applicazioni esterne.

g.Utilizzando una sonda manuale come RoboDK TwinTrack.

Importa un file CSV

Le curve possono essere importate in RoboDK da un file CSV o da un file di testo selezionando Utilità→Importa Curva. Un nuovo elemento apparirà nella stazione mostrando la curva come oggetto.

Robot Machining - Figura 31

Robot Machining - Figura 32

Il file può essere un file di testo con le coordinate 3D di ogni punto della curva. Opzionalmente, l'orientamento dell'asse Z del tool può essere fornito come vettore i,j,k. Tutte le coordinate devono essere relative al sistema di coordinate della parte.

Opzionalmente, le curve esistenti di un oggetto possono essere esportate come file CSV (click destro su una curva, poi seleziona Esporta curva), modificate e reimportate in RoboDK.

Robot Machining - Figura 33

Maggiori informazioni ed esempi su come personalizzare l’importazione di file CSV o TXT come curve o punti sono disponibili nella sezione di esempi della RoboDK API.

Progetto Segui Punto

È possibile far seguire al robot punti nello spazio 3D con RoboDK. Punti in RoboDK possono essere estratti da oggetti, curve o importare un file CSV come lista di punti. Questa opzione è utile per saldatura spot o applicazioni di foratura, ad esempio. Il video seguente mostra un esempio di impostazione di una saldatura spot: guarda.

Seleziona Utilità→Progetto Segui Punto per aprire le impostazioni segui punto. Queste impostazioni sono le stesse di un Progetto Fresatura Robotizzata, l’unica differenza è che l’Input percorso è preselezionato su Seleziona punti.

Robot Machining - Figura 34

Seleziona Seleziona punti per selezionare i punti sullo schermo.

Robot Machining - Figura 35

Seleziona i punti con un click sinistro del mouse. Seleziona lo stesso punto due volte per cambiare la direzione di approcio. Inoltre, clicca con il tasto destro su un punto per selezionare il seguente selezionando Seleziona prossimo.

Robot Machining - Figura 36

Cliccare con il tasto destro sullo schermo e selezionare Fatto o premere il tasto Esc per tornare indietro al menu impostazione. Il percorso verde mostrerà i movimenti robot con rispetto di un oggetto.

Alcune opzioni addizionali sono disponibili in alto a destra nelle impostazioni, ad esempio la velocità del tool e la distanza di approcio. Le impostazioni di default sono visualizzate nella seguente immagine:

Robot Machining - Figura 37

Robot Machining - Figura 38

Importa Punti

Una lista di punti può essere importata da un file di testo o da un file CSV selezionando Utilità→Importa Punti. Un nuovo elemento apparirà nella stazione mostrando i punti come un oggetto.

Robot Machining - Figura 39

Robot Machining - Figura 40

Il file può essere un file di testo con coordinate 3D con ogni punto della curva. Opzionalmente, l'orientamento dell'asse Z del tool può essere fornito come vettore i,j,k.

Opzionalmente, curve esistenti di un oggetto possono essere convertite in punti cliccando con il tasto destro su una curva e poi selezionando Estrai punti curva.

Robot Machining - Figura 41

Progetto Stampa 3D

Stampa 3D o additive manufacturing è il processo di creazione tridimensionale di oggetti solidi da un file digitale. Robot industriali possono essere usati come stampanti a 3 assi o 5 assi con RoboDK. Il seguente video mostra una panoramica di come impostare la stampa 3D con RoboDK: guarda.

Stampa 3D con robot è possibile in una delle seguenti condizioni:

Convertendo direttamente un programma G-code (file NC) in programmi robot con RoboDK, come mostrato con il progetto fresatura. Il rapporto di materiale (parametro E) è preso in considerazione per ogni movimento e può essere integrato nel programma generato come un Evento Programma. Il G-code è un tipo di file NC supportato da RoboDK ed è anche un formato supportato da molte stampanti 3D. La maggiorparte dei software di slicing possono generare il G-code dato un file STL.

Seleziona Utilità→Progetto di stampa 3D per aprire le impostazioni di stampa 3D.

Robot Machining - Figura 42

Robot Machining - Figura 43

Robot Machining - Figura 44

Di default, RoboDK traduce i valori E come chiamate programma ad un programma chiamato Extruder passando anche il valore E come parametro. Seleziona Eventi Programma per modificare questo comportamento.

Robot Machining - Figura 45

Il valore di estrusione (E) rappresenta quanto materiale deve essere estruso prima di ogni movimento. Questo valore può essere utilizzato per gestire il feed dell'estrusore dal robot tenendo in considerazione la velocità e la distanza tra i punti.

In alternativa, è possibile calcolare il feed utilizzando un post processore e generare codice appropriato. La prossima sezione fornisce un esempio.

Post Processori per stampanti 3D

Questa sezione mostra come modificare un post processore robot per calcolare la velocità dell’estrusore prima di eseguire un’istruzione di movimento per la stampa 3D. In alternativa, queste operazioni possono essere effettuate sul controller del robot con la chiamata di programma Extruder (comando predefinito per pilotare l’estrusore).

Personalizzando un post processore robot, è possibile semplificare l'integrazione di un estrusore per la stampa 3D prima di inviare il programma al robot. Per svolgere questo compito, dobbiamo eseguire alcuni calcoli e generare codice personalizzato quando il programma viene generato nel post processore del robot.

Il primo passo è intercettare le chiamate Extruder e leggere i nuovi valori Extruder (valori E) all’interno della sezione RunCode del post processore. La sezione seguente elabora tutte le chiamate di programma generate per un programma:

    def RunCode(self, code, is_function_call = False):

        if is_function_call:

            if code.startswith("Extruder("):

                # Intercept the extruder command.

                # if the program call is Extruder(123.56)

                # we extract the number as a string

                # and convert it to a number

                self.PRINT_E_NEW = float(code[9:-1])

                # Skip the program call generation

                return

            else:

                self.addline(code + "()")

        else:

            # Output program code

            self.addline(code)

Il valore Extruder (lunghezza/E) viene salvato nella variabile PRINT_E_NEW nel post processore del robot.

Dobbiamo attivare una chiamata di funzione denominata new_move ad ogni nuova istruzione di movimento lineare. Possiamo aggiungere questa chiamata all’inizio del comando MoveL:

    def MoveL(self, pose, joints, conf_RLF=None):

        """Add a linear movement"""

        # Handle 3D printing Extruder integration

        self.new_move(pose)    

       ...

Dobbiamo inoltre aggiungere le seguenti variabili nell'intestazione del post processore per calcolare gli incrementi dell'estrusore:

 

    # 3D Printing Extruder Setup Parameters:

    PRINT_E_AO = 5 # Analog Output ID to command the extruder flow

    PRINT_SPEED_2_SIGNAL = 0.10 # Ratio to convert the speed/flow to an analog output signal

    PRINT_FLOW_MAX_SIGNAL = 24 # Maximum signal to provide to the Extruder

    PRINT_ACCEL_MMSS = -1 # Acceleration, -1 assumes constant speed if we use rounding/blending

  

    # Internal 3D Printing Parameters

    PRINT_POSE_LAST = None # Last pose printed

    PRINT_E_LAST = 0 # Last Extruder length

    PRINT_E_NEW = None # New Extruder Length

    PRINT_LAST_SIGNAL = None # Last extruder signal

Infine, dobbiamo definire una nuova procedura che generi i comandi appropriati per il feed dell'estrusore in base alla distanza tra i movimenti, alla velocità del robot e all'accelerazione del robot. Questo presuppone che il feed dell'estrusore sia pilotato da una specifica uscita analogica o da una chiamata di programma personalizzata.

Dobbiamo aggiungere il seguente codice prima della definizione del programma def MoveL.

 

    def calculate_time(self, distance, Vmax, Amax=-1):

        """Calculate the time to move a distance with Amax acceleration and Vmax speed"""

        if Amax < 0:

            # Assume constant speed (appropriate smoothing/rounding parameter must be set)

            Ttot = distance/Vmax

        else:

            # Assume we accelerate and decelerate

            tacc = Vmax/Amax;

            Xacc = 0.5*Amax*tacc*tacc;

            if distance <= 2*Xacc:

                # Vmax is not reached

                tacc = sqrt(distance/Amax)

                Ttot = tacc*2

            else:

                # Vmax is reached

                Xvmax = distance - 2*Xacc

                Tvmax = Xvmax/Vmax

                Ttot = 2*tacc + Tvmax

        return Ttot

           

    def new_move(self, new_pose):                       

        """Implement the action on the extruder for 3D printing, if applicable"""

        if self.PRINT_E_NEW isNone or new_pose is None:

            return

           

        # Skip the first move and remember the pose

        if self.PRINT_POSE_LAST isNone:

            self.PRINT_POSE_LAST = new_pose

            return         

 

        # Calculate the increase of material for the next movement

        add_material = self.PRINT_E_NEW - self.PRINT_E_LAST

        self.PRINT_E_LAST = self.PRINT_E_NEW

       

        # Calculate the robot speed and Extruder signal

        extruder_signal = 0

        if add_material > 0:

            distance_mm = norm(subs3(self.PRINT_POSE_LAST.Pos(), new_pose.Pos()))

            # Calculate movement time in seconds

            time_s = self.calculate_time(distance_mm, self.SPEED_MMS, self.PRINT_ACCEL_MMSS)

           

            # Avoid division by 0

            if time_s > 0:

                # This may look redundant but it allows you to account for accelerations and we can apply small speed adjustments

                speed_mms = distance_mm / time_s

               

                # Calculate the extruder speed in RPM*Ratio (PRINT_SPEED_2_SIGNAL)

                extruder_signal = speed_mms * self.PRINT_SPEED_2_SIGNAL

       

        # Make sure the signal is within the accepted values

        extruder_signal = max(0,min(self.PRINT_FLOW_MAX_SIGNAL, extruder_signal))

       

        # Update the extruder speed when required

        if self.PRINT_LAST_SIGNAL isNone or abs(extruder_signal - self.PRINT_LAST_SIGNAL) > 1e-6:

            self.PRINT_LAST_SIGNAL = extruder_signal

            # Use the built-in setDO function to set an analog output

            self.setDO(self.PRINT_E_AO, "%.3f" % extruder_signal)

            # Alternatively, provoke a program call and handle the integration with the robot controller

            #self.addline('ExtruderSpeed(%.3f)' % extruder_signal)

       

        # Remember the last pose

        self.PRINT_POSE_LAST = new_pose

Stampa 3D Robotizzata con Cura

La manifattura additiva (o stampa 3D) con i robot può essere realizzata preparando i percorsi utensile in uno slicer come Ultimaker Cura e convertendo il G-code generato in programmi robot con RoboDK.

Questo esempio mostra come utilizzare Cura con RoboDK per la stampa 3D su larga scala di uno stampo per scafo di imbarcazione, utilizzando un robot ABB IRB 6640, un estrusore CEAD e una guida lineare ABB IRBT 6004.

Robot Machining - Figura 46

La stampa 3D con Cura e RoboDK è possibile in uno dei seguenti modi:

2.Creare una stampante FFF personalizzata in Cura corrispondente allo spazio di lavoro del robot.

3.Importare il modello 3D (file STL) in Cura e applicare un’inclinazione di 45° prima dello slicing.

4.Eseguire lo slicing dell’STL ruotato e generare un programma G-code.

5.Convertire il G-code di Cura in un programma robot in RoboDK.

6.Simulare il processo di estrusione inclinato in RoboDK ed esportare il codice ABB RAPID.

Creare una Stampante Personalizzata in Cura

Apri Ultimaker Cura → Impostazioni → Stampante → Aggiungi Stampante, quindi seleziona Personalizzata → Stampante FFF Personalizzata.

Robot Machining - Figura 47

Imposta il volume di stampa in modo che corrisponda al robot e alla guida:

7.X: 6000 mm

8.Y: 2500 mm

9.Z: 2000 mm

Disabilita i controlli di riscaldamento poiché l’estrusore CEAD gestisce il riscaldamento esternamente.

Robot Machining - Figura 48

Applicare un’Inclinazione di 45° in Cura

Il modello STL deve essere ruotato di 45° in Cura prima dello slicing.

10.Seleziona l’oggetto.

11.Utilizza lo strumento Ruota di Cura per inclinare la parte di 45°.

12.Esegui lo slicing dell’STL ruotato.

Robot Machining - Figura 49

Robot Machining - Figura 50

Generare e Importare il G-code

Dopo aver inclinato il modello, esegui lo slicing in Cura e salva il programma come file .gcode.

In RoboDK, seleziona Utilità → Converti Programma NC e scegli il file di Cura.

Robot Machining - Figura 51

Nella finestra di importazione NC:

13.Seleziona il robot ABB IRB 6640.

14.Aggiungi la guida ABB IRBT 6004 come asse esterno.

15.Seleziona l’estrusore CEAD come tool.

16.Definisci il piano di riferimento (piattaforma dello scafo).

Sincronizzazione dell’Estrusore

Per impostazione predefinita, RoboDK traduce la direttiva E di Cura come una chiamata di programma a un programma chiamato Extruder, passando il valore E come parametro.

Questo può essere modificato in Strumenti → Opzioni → Eventi di Programma.

Robot Machining - Figura 52

Simulazione della Stampa a 45°

Quando il G-code di Cura viene importato, RoboDK simula il processo di estrusione inclinato:

17.L’ABB IRB 6640 segue il percorso utensile di Cura.

18.L’estrusore CEAD è sincronizzato con il movimento del robot.

19.L’orientamento del tool riflette l’inclinazione di 45° applicata in Cura.

20.