Il est possible d’utiliser des robots industriels comme machine-outil (CNC 3 ou 5 axes). Pour obtenir les mêmes résultats que les machines CNC, les robots industriels ont besoin de logiciels de programmation hors ligne avancés tels que RoboDK pour convertir des programmes de machines en programmes robots.
L’usinage robot comprend différentes applications d’enlèvement de matériaux, telles que le fraisage, le perçage, le chanfreinage et l’ébavurage, généralement exécutées par des machines-outils automatisées (CNC).
Les dimensions des pièces sont définies à l’aide d’un logiciel de conception assistée par ordinateur (CAO), puis traduites en programmes de fabrication (comme le code G) par un logiciel de fabrication assistée par ordinateur (FAO). Les programmes de fabrication peuvent ensuite être convertis en programmes de robots à l’aide des outils de programmation hors ligne de RoboDK.
Des axes supplémentaires, tels qu’une plaque tournante et un rail linéaire peuvent être synchronisés avec le robot pour prolonger l’espace de travail.
Cette section présente quelques exemples impliquant l'usinage robotique. Certains de ces exemples utilisent un plugin pour montrer comment générer la trajectoire d'outil CAM. Cependant, vous pouvez charger n'importe quelle trajectoire d'outil générique à 5 axes dans RoboDK, comme des fichiers APT, NC ou G-code.
En savoir plus sur les projets d'exemple dans la section des exemples.
Visitez la section Addins CAD/CAM de notre documentation pour voir plus d'exemples de projets d'usinage robotique, tels que Mastercam, MecSoft/RhinoCAM, Inventor, FeatureCAM ou Fusion 360.
Cet exemple vous aidera à comprendre les bases de l'usinage robotique dans RoboDK et comment convertir un travail d'usinage robotique à 3 axes en une simulation d'usinage robotique et un programme de robot.
En savoir plus sur cet exemple d'usinage robotique.
Cet exemple vous aidera à comprendre comment configurer les paramètres d'usinage robotique dans RoboDK et comment convertir un travail d'usinage robotique à 5 axes en une simulation d'usinage robotique et un programme de robot.
Cet exemple vous aidera également à créer des mouvements d'approche/retrait sécurisés entre différentes opérations du travail d'usinage.
En savoir plus sur cet exemple.
Cet exemple montre comment utiliser un robot KUKA avec 3 axes externes supplémentaires pour un usinage robotique. La cellule comprend un bras robotique à 6 axes, un rail à un axe et une table tournante à 2 axes.
En savoir plus sur cet exemple de découpe laser.
Consultez l'exemple d'usinage robotique à 3 axes avec Mastercam pour plus d'informations.
En savoir plus sur cet exemple d'usinage de moules.
Cet exemple montre comment utiliser un robot ABB pour l'ébavurage. Cet exemple comprend une opération de préhension et dépose (pick and place).
En savoir plus sur cet exemple d'ébavurage plastique.
Cet exemple montre comment utiliser un robot KUKA pour le polissage.
En savoir plus sur cet exemple d'ébavurage plastique.
Cette section montre comment préparer un projet RoboDK simple, hors ligne, pour l'usinage robotique. La cellule d'usinage robotique doit comporter au moins un robot, un outil (EOAT) et un système de référence (également appelé système de coordonnées, référence de pièce ou datum). Plus d'informations sur la construction d'une nouvelle station dans RoboDK dans la section premiers pas.

Les étapes suivantes montrent comment préparer une configuration d'usinage robotique avec un robot KUKA KR210 et une broche de fraisage Teknomotor (cet exemple est disponible dans la bibliothèque sous le nom Sample-New-Project.rdk).
1.Sélectionnez un robot :
a.Sélectionnez Fichier
b.Utilisez les filtres pour trouver votre robot par marque, charge utile, ...
Par exemple, sélectionnez le KUKA KR210 R2700 (charge utile de 210 kg, portée de 2,7 m).
c.Sélectionnez Télécharger et le robot devrait apparaître automatiquement sur l'écran principal.
2.Sélectionnez un outil :
a.Depuis la même bibliothèque en ligne, sélectionnez Réinitialiser pour supprimer les filtres et filtrez par TypeOutil.
b.Sélectionnez Télécharger pour charger un outil de type broche tel que la broche Teknomotor ATC71-C-LN.
c.La broche sera automatiquement attachée au robot.
d.Fermez la fenêtre de la bibliothèque en ligne.
3.Ajoutez un système de référence :
a.Sélectionnez le système de référence de base du robot (nommé KUKA KR210 R2700 Base).
b.Sélectionnez Programme
c.Double-cliquez sur la référence et saisissez les coordonnées :
XYZABC = [1500,1000,500,0,0,0] (mm-deg)
d.Renommez le nouveau système de référence en Referénce de Fraisage en saisissant un nouveau nom ou en sélectionnant F2.
4.Ajoutez l'objet que vous utiliserez pour l'usinage robotique (optionnel) :
a.Sélectionnez Fichier
b.Sélectionnez un objet nommé Object Chess Rook.sld depuis la bibliothèque RoboDK :
C:/RoboDK/Library
c.Glissez-déposez l'objet sur la Référence de Fraisage s'il n'y a pas été placé automatiquement (dans l'arborescence de la station)
5.Double-cliquez sur le robot pour afficher le panneau du robot (optionnel). Le panneau du robot affiche l'outil actif et le système de référence actif. En sélectionnant et en mettant à jour l'outil et le système de référence, nous devrions voir les mêmes coordonnées visibles dans le contrôleur du robot. Par défaut, la broche Teknomotor a le TCP à la racine du porte-outil. L'outil (TCP) aura une certaine longueur. Dans cet exemple, nous allons mettre à jour le TCP pour représenter la longueur de la fraise :
a.Mettez à jour la coordonnée X de l'outil (TCP) à 375 mm. Vous verrez le TCP se déplacer le long de l'axe.
b.(optionnel) vous pourriez également créer un second outil et définir un TCP relatif par rapport au premier en ajoutant une translation le long de l'axe Z.
c.Fermez la fenêtre du panneau du robot.

Suivre les étapes ci-dessous pour configurer un nouveau projet d’usinage robot avec un fichier CN généré à l’aide du logiciel FAO (comme G-code ou APT) :
1.Sélectionner Utilitaires➔
Une nouvelle fenêtre va s’ouvrir, tel que montré dans l’image suivante.
2.Sélectionner Sélectionner fichier CN dans la section parcours
3.Renseigner un fichier NC, comme celui de la bibliothèque de RoboDK :
C:/RoboDK/Library/Milling Bowl 3x.nc ou Example-02.c-Robot Machining Bowl.nc
Renommez le projet d'usinage robotique en Machining Settings en faisant un clic droit sur le nouvel élément dans l'arborescence et en sélectionnant Renommer (F2).

Sélectionner le robot, le repère et l’outil en haut à gauche de la fenêtre.

Le parcours outil est affiché en vert et les normales du parcours sont affichées comme des vecteurs blancs. Décocher Parcours d’outil visible pour masquer le parcours outil.
Vous pouvez sélectionner Mettre à jour pour voir si vous pouvez créer un programme d'usinage robotique avec les paramètres par défaut. Si le programme a été généré avec succès, vous verrez une coche verte. Vous pouvez ensuite sélectionner Simuler ou double-cliquer sur le programme généré pour voir la simulation démarrer.

Si vous voyez une croix rouge avec un message d'avertissement, cela signifie que votre programme d'usinage robotique n'est pas réalisable. Vous devrez peut-être modifier certains paramètres tels que l'orientation de l'outil, les paramètres d'optimisation, le point de départ ou l'emplacement de la pièce.
Les sections suivantes fournissent plus d'informations sur la personnalisation des paramètres d'usinage robotique.
L’entrée du parcours permet de sélectionner différentes façons de définir un parcours outils. Le parcours outils peut être défini par :
●Sélectionner fichier NC : Comme un fichier NC (obtenu à l’aide d’un logiciel FAO), tel que décrit dans cette section.
●Sélectionner courbes : Comme une ou plusieurs courbes, tel que décrit dans la section Projet de suivi de courbes.
Il est possible d’importer des courbescomme une liste de coordonnées dans RoboDK.
●Sélectionner points : Un ou plusieurs points, comme décrit dans la section Projet de suivi de Point.
Il est possible d’importer des pointscomme une liste de coordonnées dans RoboDK.
●Impression 3D : Comme un objet pour l’impression 3D. Un trancheur est utilisé pour convertir la géométrie en un parcours outil.


Sélectionnez Événements de programme pour afficher les événements spéciaux à prendre en compte lors de la génération de programmes de robot. Cela inclut le déclenchement d'un changement d'outil, le réglage de la vitesse de la broche en tr/min ou le déclenchement de programmes spécifiques au démarrage ou à la fin du programme.
Vous pouvez spécifier une valeur d'arrondi dans Événements de programme. Cela créera automatiquement une instruction d'arrondi au début de votre programme et aidera à rendre les programmes d'usinage robotique plus fluides, en évitant que le robot ne tremble. Par exemple, sur un robot ABB, cela définira la valeur ZoneData en mm, sur un robot Fanuc, cela définira la valeur CNT en pourcentage, et sur les contrôleurs Universal Robots, cela définira la valeur de blending en mm.
Si vous utilisez des fichiers G-code ou NCI, des codes M personnalisés seront déclenchés par défaut sous forme d'appels de fonction à M_RunCode (le code M est passé en paramètre). Vous pouvez supprimer les appels M personnalisés en supprimant l'appel à M_RunCode.

Déplacez le curseur de votre souris sur le champ correspondant pour obtenir plus d'informations sur la personnalisation de chaque section.
Par exemple, lors du changement d'outil, vous pouvez utiliser la valeur %1 pour représenter l'ID d'outil fourni par votre logiciel CAM. Si vous préférez déclencher des fonctions statiques plutôt que de passer des arguments, vous pouvez remplacer SetTool(%1) par SetTool%1. En utilisant l'outil 2, cela générerait SetTool2 au lieu de SetTool(2).
Vous pouvez personnaliser vos mouvements d'approche et de retrait en haut à droite du menu d'usinage robotique. Par défaut, RoboDK ajoute des mouvements d'approche et de retrait de 100 mm le long de la normale.
Sélectionnez Ajouter pour ajouter un mouvement de retrait supplémentaire. Le parcours vert sera mis à jour en conséquence. Il est possible de choisir entre un déplacement le long d'un axe spécifique, la fourniture de coordonnées, une approche en arc, etc. Vous pouvez également combiner plusieurs mouvements d'approche/retrait en sélectionnant le bouton Ajouter.

Sélectionnez Supprimer pour supprimer un mouvement d'approche ou de retrait spécifique.
La trajectoire de décalage outil permet de modifier l’orientation préférée de l’outil le long du parcours outils. Cette option est principalement utilisée pour faire tourner l’outil autour de l’axe Z du TCP.
Dans le cadre d’un robot 6 axes utilisé pour suivre un programme de fabrication CNC à 3 ou 5 axes, il y a un degré supplémentaire de liberté à définir. Ce degré de liberté est généralement la rotation autour de l’axe Z du TCP.

Par défaut, le parcours de décalage de l’outil affiche une transformation rotz(0). Cette valeur peut être modifiée pour établir l’orientation préférée de l’outil, en modifiant l’orientation autour de l’axe Z du TCP ou en combinaison avec d’autres axes. L’orientation préférée est l’orientation que le robot tentera de conserver tout en suivant le parcours outils.
Par défaut, RoboDK utilise l’algorithme de changement d’orientation minimal. Cela signifie que l’orientation de l’outil est maintenue aussi constante que possible le long du parcours outil. En général, cette option est adaptée aux opérations de fraisage car elle minimise les mouvements de l’articulation du robot.
D’autres algorithmes/méthodes sont disponibles, comme l’orientation de l’outil suivant le parcours (utile pour les applications de coupe), ou le robot tenant l’objet si le parcours outil se passe en pièce portée (par exemple, pour les applications de dépose de produits ou de polissage).

Même avec une orientation privilégiée (préférée), le robot peut avoir une certaine liberté pour tourner autour de l’axe Z de l’outil. Cela permet au robot d’accomplir le programme en évitant les singularités et les contraintes d’axe. Par défaut, RoboDK permet à l’outil de pivoter jusqu’à +/-180 degrés autour de l’axe TCP par incréments de 20 degrés.
Il est recommandé de limiter cette rotation en fonction de l’application. Par exemple, il est possible d’entrer +/-90 degrés pour limiter de moitié la rotation autorisée.
Si certains points du parcours ne sont pas accessibles, il est recommandé de déplacer le repère ou d’être plus permissif avec la rotation de l’outil Z. Le repère peut être déplacé en maintenant la touche Alt enfoncée.

RoboDK sélectionne automatiquement la configuration de départ la plus proche des articulations de départ préférés (joints de départ préférés pour la position de démarrage). À partir de ce moment, le robot suivra les mouvements linéaires, de sorte que la configuration du robot ne change pas.
Un menu déroulant affichera toutes les solutions possibles pour démarrer le programme. Si nécessaire, sélectionner une configuration préférée et sélectionner Update pour recalculer le programme.

Sélectionner Mettre à jour pour obtenir le programme selon les paramètres définis. Une coche verte s’affiche si le programme peut être créé avec succès. Un nouveau programme apparait alors dans la station.

Double-cliquer sur le programme généré 
Faire un clic droit sur le programme et sélectionner Générer programme robot (F6) pour obtenir le programme. Plus d’informations sur la génération de programme dans la section Programme.

Il est possible de garder l’orientation de l’outil constante le long du parcours. Ce comportement est utile pour les applications de coupe ou de soudage par exemple.
Sélectionner l’orientation de l’outil suit le parcours dans le menu déroulant pour recalculer le parcours outils préféré. Les autres réglages sont les mêmes que pour un projet d’usinage avec une orientation d’outil constante.

Il est possible de programmer un robot lorsqu’il maintient une pièce avec l’outil du robot (en pièce portée) pendant la phase de fabrication. Ceci est utile pour les applications de dépose de colle ou de polissage par exemple.
Sélectionner Objet sur le Robot dans le menu déroulant pour placer correctement le parcours outils sur la référence TCP. Les autres réglages sont les mêmes que pour un projet d’usinage avec une orientation d’outil constante.

Il est possible de faire suivre des courbes à un robot dans l'espace 3D à l'aide d'un projet de suivi de courbes (CFP). Les courbes dans RoboDK peuvent être sélectionnées à partir des bords d'objets ou importées comme une liste de points dans des fichiers CSV. Un projet de suivi de courbes est utile pour certaines opérations de fabrication telles que le soudage, l'ébavurage, le polissage ou la peinture robotisés, par exemple.
Pour travailler avec un CFP, suivez cette procédure :
Cliquez sur Utilitaires→Projet de suivi de courbes pour ouvrir les paramètres de suivi de courbes. Ces paramètres sont les mêmes que pour un projet d'usinage robotique, la seule différence est que le Parcours du trajet est prédéfini sur Sélectionner courbe.
Cliquez sur le bouton Sélectionner courbe pour sélectionner la ou les courbes à l'écran.

Sélectionnez les courbes avec un clic gauche de la souris. Sélectionner deux fois la même courbe inversera la direction du mouvement. De plus, un clic droit sur une courbe précédemment sélectionnée permet d'inverser le sens du mouvement, de désélectionner une courbe précédemment sélectionnée ou de sélectionner à nouveau une courbe existante.

Faites un clic droit sur la fenêtre 3D et sélectionnez Terminé, ou appuyez sur la touche Echap pour retourner au menu des paramètres. Vous pouvez également double-cliquer sur un espace vide pour retourner au menu des paramètres. Le parcours vert affichera le mouvement du robot par rapport à l'objet.

Vous pouvez sélectionner Mettre à jour pour voir si vous pouvez créer un programme robot avec les paramètres par défaut. Si le programme a été généré avec succès, vous verrez une coche verte. Vous pouvez ensuite sélectionner Simuler ou double-cliquer sur le programme généré pour voir la simulation démarrer.
Des options supplémentaires sont disponibles en haut à droite des paramètres, telles que la vitesse de l'outil et si les mouvements d'approche/retrait doivent être appliqués pour chaque courbe. Les paramètres par défaut sont affichés dans l'image suivante :

Le programme peut être davantage personnalisé et optimisé à l'aide des mêmes fonctionnalités que celles présentées dans la section d'usinage robotique.
Des courbes peuvent être extraites des caractéristiques d'objets 3D importés dans RoboDK en sélectionnant Outils→Créer des courbes.

Un panneau apparaîtra sur le côté gauche de la fenêtre RoboDK, vous pourrez extraire des courbes tant que ce panneau est actif et que l'option « Extraction automatique des courbes » est activée.

Vous pouvez survoler avec le curseur de la souris l'objet 3D dont vous souhaitez extraire la courbe. Une fine ligne bleu clair apparaîtra pour représenter la courbe. Des flèches blanches à différents points représentent la normale de la courbe, il s'agit de la direction d'approche de l'outil.

Vous pouvez modifier l'orientation des normales de la courbe (direction d'approche) en déplaçant légèrement la souris verticalement ou horizontalement. Le pas par défaut est de 15 degrés et est contrôlé par l'option « Pas d'inclinaison (deg) » du panneau Créer une courbe.
Lorsque vous avez identifié la bonne courbe, cliquez dessus sans déplacer la souris. Répétez l'opération jusqu'à ce que vous ayez sélectionné toutes les courbes que vous souhaitez utiliser dans un projet de suivi de courbes.

RoboDK inclut différents outils pour vous aider à modifier des courbes même après leur extraction. Si vous souhaitez simplement modifier la normale, vous pouvez le faire en allant dans Outils→Modifier les courbes. Cette fonctionnalité vous permet de changer les normales de n'importe quelle courbe précédemment créée.
RoboDK peut créer ou obtenir des courbes à partir de diverses sources. La liste suivante montre des exemples d'outils permettant de créer une courbe utilisable dans un projet de suivi de courbes :
a.Extraire des caractéristiques d'un objet 3D importé dans RoboDK.
b.Importer un fichier CSV contenant la courbe.
c.Importer une courbe à l'aide d'un plugin CAD/CAM.
d.Importer des courbes à partir d'un fichier SVG ou DXF.
e.En utilisant l'application Surface Pattern Generator
f.En utilisant l'API RoboDK pour s'intégrer à des applications externes.
g.En utilisant une sonde manuelle telle que RoboDK TwinTrack
Des courbes peuvent être importées dans RoboDK à partir d'un fichier CSV ou d'un fichier texte en sélectionnant Utilitaires→Importer une courbe. Un nouvel élément apparaîtra dans la station affichant la courbe comme un objet.


Le fichier peut être un fichier texte contenant les coordonnées 3D de chaque point de la courbe. Optionnellement, l'orientation de l'axe Z de l'outil peut être fournie sous la forme d'un vecteur i,j,k. Toutes les coordonnées doivent être relatives au système de coordonnées de la pièce.
Optionnellement, les courbes existantes d'un objet peuvent être exportées sous forme de fichier CSV (clic droit sur une courbe, puis sélectionnez Exporter la courbe), modifiées puis réimportées dans RoboDK.

Plus d'informations et d'exemples sur la personnalisation de l'importation de fichiers CSV ou TXT en tant que courbes ou points sont disponibles dans la section des exemples de l'API RoboDK.
Il est possible de faire en sorte qu’un robot suive des points dans l’espace 3D avec RoboDK. Les points dans RoboDK peuvent être extraits à partir d’objets, de courbes ou importés comme une liste de points dans les fichiers CSV. Cette option est utile pour les applications de soudage par points ou de forage par exemple. La vidéo suivante montre un exemple pour configurer une application de soudage par points: Regarder vidéo.
Sélectionner Utilitaires➔Suivi de points pour ouvrir les paramètres de suivi de points. Ces paramètres sont les mêmes que les Projets d’usinage robot, la seule différence est que l’entrée du parcours est préréglée sur Sélectionner points.

Sélectionner Sélectionner points pour sélectionner les points sur l’écran.

Sélectionner les points avec un clic gauche de la souris. Sélectionner le même point deux fois va changer la direction de l’approche. De plus, un clic droit sur un point permet de sélectionner les points qui suivent en sélectionnant Sélectionner suivant.

Faire un clic droit sur l’écran et sélectionner Terminé ou appuyer sur la touche Echap pour revenir au menu des paramètres. Le parcours vert affiche le mouvement du robot par rapport à l’objet.
Certaines options supplémentaires sont disponibles en haut à droite des réglages, telles que la vitesse de l’outil et la distance d’approche. Les paramètres par défaut sont affichés dans l’image suivante :


Une liste de points peut être importée à partir d’un fichier texte ou d’un fichier CSV en sélectionnant Utilitaires➔ Importer Points. Un nouvel élément apparaîtra dans la station montrant les points comme un objet.


Le fichier peut être un fichier texte avec les coordonnées 3D de chaque point de la courbe. En option, l’orientation de l’axe Z de l’outil peut être définie comme un vecteur i,j,k.
En option, les courbes existantes d’un objet peuvent être converties en points avec un clic droit sur une courbe, puis en sélectionnant Extract curve points.

L’impression 3D ou la fabrication additive est le processus de fabrication d’objets solides tridimensionnels à partir d’un fichier numérique. Les bras robotisés industriels peuvent être utilisés comme imprimante 3D 3 axes ou comme imprimante 3D 5 axes avec RoboDK. La vidéo suivante montre comment configurer l’impression 3D avec RoboDK hors ligne : regarder la vidéo.
L’impression 3D avec des robots est possible de l’une des façons suivantes :
●Convertir directement les programmes G-code (fichier NC) en programmes de robots avec RoboDK, tel que montré dans la section de projet d’usinage robot. Le débit du matériau (directive extrudeuse E) est correctement pris en compte pour chaque mouvement et il peut être intégré dans le programme généré comme un événement de programme. G-code est un type de fichier NC supporté par RoboDK et c’est aussi un format supporté par de nombreuses imprimantes 3D. La plupart des logiciels de découpage peuvent générer du G-code à partir d’un fichier STL.
●Sélectionner Utilitaires➔Projet d’impression 3D pour ouvrir les paramètres d’impression 3D. Ces réglages sont les mêmes qu’un projet d’usinage robot, la seule différence est que l’entrée Parcours est préréglée avec impression 3D. Sélectionner Sélectionner objet pour sélectionner l’objet sur l’écran principal et obtenir automatiquement le parcours outils. Sélectionner les options d’impression 3D pour ouvrir Slic3r



Par défaut, RoboDK transforme la directive E comme un appel de programme vers un programme appelé Extruder et passe la valeur E comme un paramètre. Sélectionner Evénements du Programme pour modifier ce comportement.

La valeur de l’extrudeuse (E) représente la quantité de matériau à extruder avant chaque mouvement. Cette valeur peut être utilisée pour alimenter l’extrudeuse à partir du robot en tenant compte de la vitesse du robot et de la distance entre les points.
Il est aussi possible de calculer l’alimentation de l’extrudeuse à l’aide d’un post-processeur et de générer le code approprié en conséquence. La section suivante donne un exemple.
Cette section montre comment modifier un post-processeur de robot pour calculer la vitesse de l’extrudeur avant d’exécuter une instruction de mouvement pour l’impression 3D. Ces opérations peuvent être faites sur le contrôleur de robot avec l’appel de programme Extruder (commande par défaut pour piloter l’extrudeur).
En personnalisant un post-processeur de robot, il est possible de faciliter l’intégration d’un extrudeur pour l’impression 3D avant d’envoyer le programme au robot. Pour accomplir cette tâche, quelques calculs et du code personnalisé doivent être prévu lorsque le programme est généré dans le post processeur du robot.
La première étape consiste à intercepter les appels d’extrudeur et à lire les nouvelles valeurs d’extrudeur (valeurs E) dans la section Runcode du post-processeur. La section suivante traite tous les appels de programme générés pour un programme :
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)
La valeur Extruder (longueur/E) est enregistrée comme variable PRINT_E_NEW dans le post processeur du robot.
Un appel de fonction nommé new_move doit être déclenché à chaque nouvelle instruction de mouvement linéaire. Cet appel est ajouté au début de la commande MoveL :
def MoveL(self, pose, joints, conf_RLF=None):
"""Add a linear movement"""
# Handle 3D printing Extruder integration
self.new_move(pose)
...
Les variables suivantes doivent être ajoutées dans l’en-tête du post-processeur pour calculer les incréments d’extrudeur :
# 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
Enfin, une nouvelle procédure doit être définie pour générer les commandes d’alimentation d’extrudeur appropriées en fonction de la distance entre les mouvements, la vitesse du robot et l’accélération du robot. Cela suppose que l’alimentation de l’extrudeur est entraînée par une sortie analogique spécifique ou un appel de programme personnalisé.
Le code suivant doit être ajouté avant la définition du programme 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 is Noneor new_pose isNone:
return
# Skip the first move and remember the pose
if self.PRINT_POSE_LAST is None:
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 is Noneor 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
La fabrication additive (ou impression 3D) avec des robots peut être réalisée en préparant les trajectoires d'outil dans un logiciel de découpe tel qu'Ultimaker Cura et en convertissant le G-code généré en programmes robot avec RoboDK.
Cet exemple montre comment utiliser Cura avec RoboDK pour l'impression 3D à grande échelle d'un moule de coque de bateau à l'aide d'un robot ABB IRB 6640, d'une extrudeuse CEAD et d'un rail linéaire ABB IRBT 6004.

L'impression 3D avec Cura et RoboDK est possible de l'une des manières suivantes :
2.Créer une imprimante FFF personnalisée dans Cura correspondant à l'espace de travail du robot.
3.Importer le modèle 3D (fichier STL) dans Cura et appliquer une inclinaison de 45° avant le découpage.
4.Découper le fichier STL incliné et générer un programme G-code.
5.Convertir le G-code de Cura en programme robot dans RoboDK.
6.Simuler le processus d'extrusion incliné dans RoboDK et exporter le code ABB RAPID.
Ouvrez Ultimaker Cura → Paramètres → Imprimante → Ajouter une imprimante, puis sélectionnez Personnalisé → Imprimante FFF personnalisée.

Définissez le volume de fabrication pour correspondre au robot et au rail :
7.X : 6000 mm
8.Y : 2500 mm
9.Z : 2000 mm
Désactivez les contrôles de chauffage car l'extrudeuse CEAD gère le chauffage en externe.

Le modèle STL doit être incliné de 45° dans Cura avant le découpage.
10.Sélectionnez l'objet.
11.Utilisez l'outil de rotation de Cura pour incliner la pièce de 45°.
12.Découpez le fichier STL incliné.


Après avoir incliné le modèle, découpez-le dans Cura et enregistrez le programme sous forme de fichier .gcode.
Dans RoboDK, sélectionnez Utilitaires → Convertir un programme NC et choisissez le fichier Cura.

Dans la boîte de dialogue d'importation NC :
13.Sélectionnez le robot ABB IRB 6640.
14.Ajoutez le rail ABB IRBT 6004 en tant qu'axe externe.
15.Sélectionnez l'extrudeuse CEAD comme outil.
16.Définissez le système de référence (plateforme de la coque du bateau).
Par défaut, RoboDK traduit la directive E de Cura en un appel de programme vers un programme nommé Extruder, en passant la valeur E en paramètre.
Cela peut être modifié dans Outils → Options → Événements de programme.

Lorsque le G-code de Cura est importé, RoboDK simule le processus d'extrusion incliné :
17.L'ABB IRB 6640 suit la trajectoire d'outil de Cura.
18.L'extrudeuse CEAD est synchronisée avec le mouvement du robot.
19.L'orientation de l'outil reflète l'inclinaison de 45° appliquée dans Cura.