Roboterbearbeitung/CNC Fertigung ist ein Prozess, bei dem ein Rohmaterial durch kontrolliertes Materialentfernen, unter Verwendung eines Roboterarms, in eine gewünschte endgültige Form und Größe geschnitten wird. Die Bearbeitung umfasst Techniken wie Fräsen, Bohren, Anfasen und Entgraten. Diese werden typischerweise von automatisierten Werkzeugmaschinen (CNC) durchgeführt. Industrieroboter können mit RoboDK wie eine Werkzeugmaschine (3-Achs oder 5-Achs-CNC) eingesetzt werden.
Um dieselben oder bessere Ergebnisse wie bei CNC-Maschinen zu erzielen, benötigen Industrieroboter fortschrittliche Offline-Programmiersoftware wie RoboDK, um CNC-Maschinenprogramme in Roboterprogramme umzuwandeln.
Die Teiledimensionen werden unter Verwendung von Computer-Aided-Design (CAD)-Software definiert und dann in Herstellungsprogramme (wie G-Code) durch Computer-Aided-Manufacturing (CAM)-Software übersetzt. Die Fertigungsprogramme können dann mithilfe der Offline-Programmiertools von RoboDK in Roboterprogramme umgewandelt werden.
Zusätzliche Achsen wie ein Drehtisch oder auch eine Linearachse können mit dem Roboter synchronisiert werden, um den Arbeitsbereich zu erweitern.
Dieser Abschnitt zeigt einige Beispiele für die Roboterbearbeitung. Einige dieser Beispiele verwenden ein Plug-in, um zu zeigen, wie die CAM-Werkzeugbahn generiert wird. Sie können jedoch auch jede generische 5-Achsen-Werkzeugbahn in RoboDK laden, z. B. APT-, NC- oder G-Code-Dateien.
Erfahren Sie mehr über Beispielprojekte im Abschnitt Beispiele.
Besuchen Sie den Abschnitt CAM-Add-Ins unserer Dokumentation für weitere Beispiele zu Projekten der Roboterbearbeitung, wie Mastercam, MecSoft/RhinoCAM, Inventor, FeatureCAM oder Fusion 360.
Dieses Beispiel hilft Ihnen, die Grundlagen der Roboterbearbeitung in RoboDK zu verstehen und wie Sie einen 3-Achsen-Bearbeitungsauftrag in eine Robotersimulation und ein Roboterprogramm umwandeln.
Erfahren Sie mehr über dieses Beispiel zur Roboterbearbeitung.
Dieses Beispiel hilft Ihnen zu verstehen, wie Sie die Einstellungen für die Roboterbearbeitung in RoboDK konfigurieren können und wie Sie einen 5-Achsen-Bearbeitungsauftrag in eine Robotersimulation und ein Roboterprogramm umwandeln.
Dieses Beispiel hilft Ihnen außerdem, sichere Anfahrts-/Rückzugsbewegungen zwischen verschiedenen Bearbeitungsvorgängen zu erstellen.
Erfahren Sie mehr über dieses Beispiel.
Dieses Beispiel zeigt, wie ein KUKA-Roboter mit 3 zusätzlichen externen Achsen für die Roboterbearbeitung eingesetzt wird. Die Zelle besteht aus einem 6-Achsen-Roboterarm, einer 1-Achsen-Linearachse und einem 2-Achsen-Drehtisch.
Weitere Informationen finden Sie im Abschnitt RhinoCAM-Beispiele. Die Integration zwischen RhinoCAM und RoboDK lädt APT-Dateien automatisch von RhinoCAM nach RoboDK.
Dieses Beispiel zeigt, wie ein Yaskawa/Motoman-Roboter für eine Laserschneidanwendung eingesetzt wird. Der Schneidpfad des Roboters wird mit dem RoboDK Add-In für Autodesk Fusion definiert.
Erfahren Sie mehr über dieses Beispiel zum Laserschneiden.
Dieses Beispiel zeigt, wie ein Yaskawa/Motoman-Roboter für die Roboterbearbeitung und das RoboDK Add-In für Mastercam eingesetzt wird. RoboDK unterstützt das automatische Laden von NCI- oder NC-Dateien, die mit Mastercam erzeugt wurden.
Weitere Informationen finden Sie im Beispiel 3-Achsen-Roboterbearbeitung mit Mastercam.
Erfahren Sie mehr über dieses Beispiel zur Formenbearbeitung.
Dieses Beispiel zeigt, wie ein ABB-Roboter zum Entgraten eingesetzt wird. Dieses Beispiel beinhaltet einen Pick-and-Place-Vorgang.
Erfahren Sie mehr über dieses Beispiel zum Entgraten von Kunststoff.
Dieses Beispiel zeigt, wie ein KUKA-Roboter zum Polieren eingesetzt wird.
Erfahren Sie mehr über dieses Beispiel zum Entgraten von Kunststoff.
In diesem Kapitel wird erklärt, wie Sie eine simple RoboDK-Station für die Roboterbearbeitung offline vorbereiten. Eine RoboDK-Station enthält alle Roboter, Werkzeuge, Referenzrahmen, Objekte, sowie sämtliche Einstellungen. Weitere Informationen zum Erstellen einer RoboDK-Station finden Sie im Abschnitt Erste Schritte.
Es ist erforderlich, einen Roboter mit einem Werkzeug für die maschinelle Bearbeitung einzurichten. Das 3D Objekt muss dabei in einem eigenen Bezugssystem sein:
1-Wählen Sie einen Roboter:
a.Wählen Sie Datei➔
b.Verwenden Sie Filter um Ihren Roboter nach Marke, Nutzlast, ... zu suchen und zu finden
Wählen Sie zum Beispiel den ABB IRB 2600-20 / 1.65 (20 kg Nutzlast, 1,65 m Reichweite).
c.Wählen Sie Download. Der Roboter erscheint automatisch auf dem Hauptbildschirm.
2-Wählen Sie ein Werkzeug:
a.Ebenfalls aus der Online Bibliothek; filtern Sie nach Typ➔Tool
b.Laden Sie das Spindel Werkzeug herunter
c.Das Werkzeug sollte automatisch am Roboter angebracht werden
Sobald das Werkzeug geladen ist, kann die Online-Bibliothek geschlossen werden
3-Fügen Sie ein Bezugssystem hinzu
a.Wählen Sie Programm➔
b.Wählen Sie das neue Bezugssystem in der Baumstruktur und verwenden Sie F2, um ihn in Fräsreferenz umzubenennen
4-Fügen Sie ein Objekt hinzu:
a.Wählen Sie Datei➔
b.Wählen Sie das Objekt mit dem Namen Object wooden bowl.sld
c.Ziehen Sie das Objekt per Drag & Drop auf die Fräsrenferenz (im Stationsbaum)

Befolgen Sie diese Schritte, um ein neues Roboter Fertigungsprogramm für die maschinelle Bearbeitung einzurichten. Diese Schritte gelten, wenn eine NC-Datei mit einer CAM-Software (z. B. G-Code oder APT) erstellt wurde:
1.Wählen Sie Dienstprogramme➔
Ein neues Fenster wird angezeigt, wie im Bild gezeigt.
2.Wählen Sie im Abschnitt Pfadeingabe eine NC Datei auswählen
3.Geben Sie eine NC-Datei ein, z. B. eine aus der RoboDK-Standardbibliothek:
C:/RoboDK/Library/Milling Bowl 3x.nc

Wählen Sie den Roboter, das Bezugssystem und das Werkzeug im oberen linken Bereich des Menüs, wie in der folgenden Abbildung gezeigt:

Die Werkzeugbahn wird in Grün angezeigt, die Pfadnormalen werden als weiße Vektoren angezeigt. Deaktivieren Sie den sichtbaren Werkzeugweg, um diesen auszublenden
Die Pfadeingabe ermöglicht die Auswahl verschiedener Arten, den Werkzeugweg zu erhalten. Der Werkzeugweg kann definiert werden durch:
●NC-Datei auswählen: Als eine NC-Datei (von der CAM-Software erhalten), wie in diesem Abschnitt beschrieben.
●Kurve auswählen: Als eine oder mehrere Kurven, wie im Abschnitt Kurvenverfolgung beschrieben.
Es ist möglich, Kurven als eine Liste von Koordinaten in RoboDK zu importieren.
●Punkte auswählen: Einen oder mehrere Punkte, wie im Abschnitt Punktverfolgung beschrieben.
Es ist möglich, Punkte als eine Liste von Koordinaten in RoboDK zu importieren.
●3D Druck Objekte: Als Objekt für 3D-Druck. Ein Slicer wird verwendet, um die Geometrie in eine Werkzeugbahn zu konvertieren.


Wählen Sie Programm-Ereignisse aus, um spezielle Ereignisse anzuzeigen, die bei der Erstellung von Roboterprogrammen berücksichtigt werden müssen. Dazu gehören das Auslösen eines Werkzeugwechsels, das Einstellen der Spindeldrehzahl in U/min oder das Auslösen bestimmter Programme beim Programmstart oder Programmende.
Sie können einen Rundungswert in den Programm-Ereignissen angeben. Dadurch wird automatisch eine Rundungsanweisung am Anfang Ihres Programms erzeugt, die dazu beiträgt, die Roboterbearbeitungsprogramme gleichmäßiger zu gestalten und ein Ruckeln des Roboters zu verhindern. Bei einem ABB-Roboter wird dadurch beispielsweise der ZoneData-Wert in mm festgelegt, bei einem Fanuc-Roboter der CNT-Wert als Prozentsatz und bei Universal-Robots-Steuerungen der Blending-Wert in mm.
Wenn Sie G-Code- oder NCI-Dateien verwenden, werden benutzerdefinierte M-Codes standardmäßig als Funktionsaufrufe an M_RunCode ausgelöst (der M-Code wird als Parameter übergeben). Sie können die benutzerdefinierten M-Aufrufe entfernen, indem Sie den Aufruf von M_RunCode löschen.

Bewegen Sie den Mauszeiger über das entsprechende Feld, um weitere Informationen zur Anpassung des jeweiligen Abschnitts zu erhalten.
Wenn Sie zum Beispiel das Werkzeug wechseln, können Sie den Wert %1 verwenden, um die von Ihrer CAM-Software bereitgestellte Werkzeug-ID darzustellen. Wenn Sie es vorziehen, statische Funktionen auszulösen, anstatt Argumente zu übergeben, können Sie SetTool(%1) durch SetTool%1 ersetzen. Bei Verwendung von Werkzeug 2 würde dies SetTool2 anstelle von SetTool(2) erzeugen.
Die Anfahrt/Rückzug Bewegungen, werden im Menü oben rechts zur Verfügung gestellt.

Wählen Sie Hinzufügen, um eine zusätzliche Bewegung hinzuzufügen. Der grüne Pfad wird entsprechend aktualisiert. Es kann zwischen einer normalen Bewegung (entlang der weißen Normalen), einer Tangente (entlang des Grünen Pfads) oder entlang bestimmter Achsen in Bezug auf den Teil gewählt werden

Doppelklicken Sie auf einen Wert, um die Länge zu ändern, oder wählen Sie Entfernen, um eine bestimmte Bewegung zu entfernen
Der Werkzeug – Bahn Abstand ermöglicht das Ändern der bevorzugten Ausrichtung des Werkzeugs entlang der Werkzeugbahn. Diese Option wird hauptsächlich verwendet, um das Werkzeug um die Z-Achse des TCP zu drehen.

Standardmäßig zeigt der Werkzeug – Bahn Abstand eine rotz(0) Transformation an. Dieser Wert kann geändert werden, um die bevorzugte Ausrichtung des Werkzeugs festzulegen. Dabei wird die Ausrichtung um die Z-Achse des TCP oder in Kombination mit anderen Achsen geändert. Die bevorzugte Ausrichtung ist die Ausrichtung, die der Roboter zu halten versucht, während er dem Werkzeugweg folgt.
RoboDK verwendet standardmäßig den Algorithmus der minimalen Änderung der Werkzeugorientierung. Dies bedeutet, dass die Ausrichtung des Werkzeugs entlang des Werkzeugweges so konstant wie möglich gehalten wird. Im Allgemeinen ist diese Option für Fräsoperationen geeignet, da sie die Robotergelenkbewegungen minimiert. Alternativ stehen andere Algorithmen / Methoden zur Verfügung, z. B. die Werkzeugausrichtung anhand der Werkzeugbahn(nützlich für Schneidanwendungen) oder Roboter hält Objekt, wenn die Werkzeugbahn mit dem Roboterwerkzeug verknüpft werden muss (z. B. zum Dosieren oder Polieren).

Bei einer bevorzugten Ausrichtung kann der Roboter eine gewisse Restfreiheit haben, innerhalb welcher er um die Z-Achse des Werkzeugs drehen kann. Dies ermöglicht es dem Roboter, das Programm auszuführen, wobei Robotersingularitäten und Achsenbeschränkungen vermieden werden. Standardmäßig lässt RoboDK das Werkzeug um bis zu +/- 180 Grad um die TCP-Achse in Schritten von 20 Grad rotieren.
Es wird empfohlen, diese Drehung abhängig von der Anwendung zu beschränken. Zum Beispiel ist es möglich, +/- 90 Grad einzugeben, um die zulässige Drehung um die Hälfte zu beschränken.
Wenn einige Punkte des Pfades nicht erreichbar sind, empfiehlt es sich, das Bezugssystem zu verschieben oder mit der Z-Drehung des Werkzeugs toleranter zu sein. Das Bezugssystem kann mit der Alt-Taste bewegt werden.

RoboDK wählt automatisch die Startkonfiguration, die nah an den bevorzugten Startachswinkeln liegt (Bevorzugte Achswinkel für den Startpunkt). Von diesem Punkt aus wird der Roboter linearen Bewegungen folgen, so dass sich die Roboterkonfiguration nicht ändert.
Ein Dropdown-Menü zeigt alle möglichen Lösungen zum Starten des Programms an. Wählen Sie bei Bedarf eine bevorzugte Konfiguration und wählen Sie Aktualisieren, um das Programm neu zu berechnen

Wählen Sie aktualisieren, um das Programm gemäß den bereitgestellten Einstellungen zu erhalten. Ein grünes Häkchen wird angezeigt, wenn das Programm erfolgreich erstellt werden kann. Sie werden anschließend ein neues Programm in der Station sehen.

Doppelklicken Sie auf das erstellte Programm 
Klicken Sie mit der rechten Maustaste auf das Programm und wählen Sie Roboterprogramm erstellen (F6), um das Programm zu erhalten. Weitere Informationen zur Programmgenerierung finden Sie im Abschnitt Programm.

Es ist möglich, die Orientierung des Werkzeugs entlang der Bahn konstant zu halten. Dieses Verhalten ist zum Beispiel beim Fräsen oder Schweißen von Nutzen.
Wählen Sie Werkzeugausrichtung folgt Pfad im Dropdown-Menü Algorithmus auswählen, um den bevorzugten Werkzeugpfad neu zu berechnen. Die anderen Einstellungen sind dieselben wie bei einem Bearbeitungsprojektmit konstanter Werkzeugausrichtung.

Es ist möglich, einen Roboter so zu programmieren, dass er eine Objekt/Werkzeubahn mit dem Werkzeug während des Herstellungsvorgangs hält. Dies ist zum Beispiel für Polieranwendungen oder beim Auftragen von Klebstoff nützlich.
Wählen Sie Roboter hält Objekt in der Dropdown-Liste Algorithmus auswählen, um den Werkzeugweg ordnungsgemäß auf das TCP Bezugssystem zu platzieren. Die restlichen Einstellungen sind dieselben wie bei einem Bearbeitungsprojektmit einer konstanten Werkzeugausrichtung.

Mit RoboDK kann ein Roboter Kurven im 3D-Raum abfahren. Kurven in RoboDK können aus Objektkanten ausgewählt oder als Liste von Punkten in CSV-Dateien importiertwerden. Diese Option ist beispielsweise für Roboterschweißanwendungen nützlich.
Wählen Sie Dienstprogramme➔Kurvenverfolgung Projekt, um die Einstellungen für die Kurvenverfolgung zu öffnen. Diese Einstellungen sind mit denen eines Roboter Bearbeitungsprojekts identisch. Der einzige Unterschied besteht darin, dass die Pfadeingabe auf Kurve auswählen eingestellt ist.
Wählen Sie Kurve auswählen, um die Kurve(n) auf dem Bildschirm auszuwählen.

Wählen Sie die Kurven mit der linken Maustaste aus. Durch zweimaliges Auswählen derselben Kurve wird die Bewegungsrichtung umgeschaltet. Wenn Sie mit der rechten Maustaste auf eine zuvor ausgewählte Kurve klicken, können Sie auch die Richtung wechseln oder eine zuvor ausgewählte Kurve abwählen

Klicken Sie mit der rechten Maustaste auf den Bildschirm und wählen Sie Fertig oder drücken Sie die Esc-Taste, um zum Einstellungsmenü zurückzukehren. Der grüne Pfad zeigt die Roboterbewegung in Bezug auf das Objekt an.
Einige zusätzliche Optionen sind oben rechts in den Einstellungen verfügbar, z. B. die Werkzeuggeschwindigkeit und ob die Anfahrts-/Rückzugsbewegungen für jede Kurve angewendet werden müssen. Die Standardeinstellungen werden im nächsten Bild angezeigt:

Kurven können aus Merkmalen von in RoboDK importierten 3D-Objekten extrahiert werden, indem Sie ExtrasKurven erstellen auswählen.
Auf der linken Seite des RoboDK-Fensters wird ein Panel angezeigt. Solange dieses Panel aktiv und die Option „Kurven automatisch extrahieren“ aktiviert ist, können Sie Kurven extrahieren.
Sie können den Mauszeiger über das 3D-Objekt bewegen, aus dem Sie die Kurve extrahieren möchten. Eine dünne, hellblaue Linie erscheint, die die Kurve darstellt. Weiße Pfeile an verschiedenen Punkten stellen die Normale der Kurve dar – dies ist die Richtung, aus der sich das Werkzeug nähern wird.
Sie können die Ausrichtung der Kurvennormalen (Anfahrtsrichtung) ändern, indem Sie die Maus leicht vertikal oder horizontal verschieben. Die Standard-Schrittweite beträgt 15 Grad und wird über die Option „Neigungsschritt (Grad)“ im Panel Kurve erstellen gesteuert.
Wenn Sie die richtige Kurve gefunden haben, klicken Sie darauf, ohne die Maus zu verschieben. Wiederholen Sie diesen Vorgang, bis Sie alle Kurven ausgewählt haben, die Sie in einem Kurvenverfolgungsprojekt verwenden möchten.
RoboDK bietet verschiedene Werkzeuge, mit denen Sie Kurven auch nach dem Extrahieren noch bearbeiten können. Wenn Sie nur die Normale ändern möchten, können Sie dies über ExtrasKurven bearbeiten tun. Mit dieser Funktion können Sie die Normalen jeder zuvor erstellten Kurve ändern.
Kurven können in RoboDK aus einer CSV-Datei oder einer Textdatei importiert werden, indem Sie Dienstprogramme➔Kurven importieren auswählen. In der Station wird ein neuer Gegenstand angezeigt, der die Kurve als Objekt anzeigt.

Die verwendete Datei kann eine Textdatei mit den 3D-Koordinaten jedes Punktes der Kurve sein. Optional kann die Orientierung der Z-Achse des Werkzeugs als ein i, j, k-Vektor bereitgestellt werden.
Optional können bestehende Kurven eines Objekts als CSV-Datei exportiert werden (Rechtsklick auf eine Kurve, dann Kurve exportieren), modifiziert und wieder in RoboDK importiert werden.

Kurven können in RoboDK aus einer CSV-Datei oder einer Textdatei importiert werden, indem Sie DienstprogrammeKurve importieren auswählen. In der Station erscheint ein neues Element, das die Kurve als Objekt darstellt.


Die Datei kann eine Textdatei mit den 3D-Koordinaten jedes Punktes der Kurve sein. Optional kann die Ausrichtung der Werkzeug-Z-Achse als i,j,k-Vektor angegeben werden. Alle Koordinaten müssen relativ zum Koordinatensystem des Teils angegeben werden.
Optional können vorhandene Kurven eines Objekts als CSV-Datei exportiert (Rechtsklick auf eine Kurve, dann Kurve exportieren auswählen), bearbeitet und wieder in RoboDK importiert werden.

Weitere Informationen und Beispiele zur Anpassung des Imports von CSV- oder TXT-Dateien als Kurven oder Punkte finden Sie im Beispielabschnitt der RoboDK API.
Es ist möglich, dass ein Roboter mit Hilfe von RoboDK Punkten im 3D-Raum folgt. Punkte in RoboDK können aus Objekten und Kurven extrahiert oder als Liste von Punkten in CSV-Dateien importiert werden. Diese Option ist zum Beispiel für Punktschweiß- oder Bohranwendungen nützlich. Das folgende Video zeigt ein Beispiel zum Einrichten einer Punktschweißanwendung: Video anschauen.
Wählen Sie Dienstprogramme➔Punktverfolgung Projekt, um die Punktfolgeeinstellungen zu öffnen. Diese Einstellungen entsprechen denen einer Roboterbearbeitung. Der einzige Unterschied besteht darin, dass der Pfad Eingang auf Punkte auswählen eingestellt ist.
Wählen Sie Punkte auswählen, um Punkte auf dem Bildschirm auszuwählen.

Wählen Sie die Punkte mit der linken Maustaste aus. Wenn Sie denselben Punkt zweimal auswählen, wird die Richtung umgeschaltet. Wenn Sie mit der rechten Maustaste auf einen Punkt klicken, können Sie auch die folgenden Punkte auswählen, indem Sie nächstes Auswählen verwenden.

Klicken Sie mit der rechten Maustaste auf den Bildschirm und wählen Sie Fertig oder drücken Sie die Esc-Taste, um zum Einstellungsmenü zurückzukehren. Der grüne Pfad zeigt die Roboterbewegung in Bezug auf das Objekt an.
Einige zusätzliche Optionen sind oben rechts in den Einstellungen verfügbar, z. B. die Werkzeuggeschwindigkeit oder die Annäherungsentfernung. Die Standardeinstellungen werden im nächsten Bild angezeigt:

Eine Liste von Punkten kann aus einer Textdatei oder einer CSV-Datei importiert werden, indem Sie Dienstprogramme➔Punkte importieren auswählen. In der Station erscheint ein neuer Gegenstand, der die Punkte als Objekt zeigt.

Die Datei kann eine Textdatei mit den 3D-Koordinaten jedes Punktes der Kurve sein. Optional kann die Orientierung der Z-Achse des Werkzeugs als ein i, j, k-Vektor bereitgestellt werden.
Optional können vorhandene Kurven eines Objekts in Punkte konvertiert werden, indem Sie mit der rechten Maustaste auf eine Kurve klicken und dann Kurvenpunkte extrahieren auswählen.

Der 3D-Druck oder die additive Fertigung ist der Herstellungsprozess dreidimensionaler fester Objekte aus einer digitalen Datei. Industrieroboterarme können hierzu als 3-Achs-3D-Drucker oder als 5-Achs-3D-Drucker mit RoboDK verwendet werden. Das folgende Video zeigt eine Übersicht über das Einrichten des 3D-Drucks mit RoboDK offline: Video anschauen.
3D-Druck mit Robotern ist auf eine der folgenden Arten möglich:
●Konvertieren Sie G-Code-Programme (NC-Datei) direkt in Roboterprogramme mit Hilfe von RoboDK. Dies wurde im Projekt Roboter maschinelle Bearbeitung gezeigt. Die Materialflussrate (Extruder-Anweisung E) wird bei jeder Bewegung richtig berücksichtigt und kann als Programm Ereignis in das generierte Programm integriert werden. G-Code ist eine Art von NC-Datei, die von RoboDK unterstützt wird und auch von vielen 3D-Druckern unterstützt wird. Die meisten Slicer Programme können ebenfalls G-Code mit einer STL-Datei erzeugen.
●Wählen Sie Dienstprogramme➔3D Projekt drucken, um die 3D-Druckeinstellungen zu öffnen. Diese Einstellungen sind mit denen eines Roboter maschinelle Bearbeitungidentisch. Der einzige Unterschied besteht darin, dass die Pfad Eingabe als 3D-Druckobjekt voreingestellt ist. Wählen Sie Objekt auswählen, um das Objekt auf dem Hauptbildschirm auszuwählen und automatisch den Werkzeugweg zu erhalten. Wählen Sie 3D-Druckoptionen, um Slic3r zu öffnen.


Standardmäßig übersetzt RoboDK die E-Direktive als Programmaufruf in ein Programm namens Extruder und übergibt den E-Wert als Parameter. Wählen Sie Programm-Ereignisse, um dieses Verhalten zu ändern.

Der Extruder-Wert (E) gibt an, wie viel Material vor jeder Bewegung extrudiert werden muss. Dieser Wert kann verwendet werden, um die Extruderzufuhr vom Roboter, abhängig von Robotergeschwindigkeit und Abstand der Punkte, zu steuern.
Alternativ ist es möglich, die Beschickung des Extruders mit einem Postprozessor zu berechnen und entsprechend Code zu generieren. Der folgende Abschnitt enthält ein Beispiel.
Dieser Abschnitt beschreibt, wie ein Roboter Postprozessorbearbeitet werden muss, um die Zufuhr des Extruders, vor der jeweiligen Bewegung, zu berechnen. Alternativ können diese Berechnungen auch auf dem Roboter Controller gemacht werden.
Der erste Schritt besteht darin, die Extruder-Aufrufe abzufangen und die neuen Extruder-Werte (E-Werte) aus dem RunCode-Abschnitt im Postprozessor zu lesen:
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.NEW_E_LENGTH = float(code[9:-1])
# Skip the program call generation
return
else:
self.addline(code + "()")
else:
# Output program code
self.addline(code)
Der Extruder-Wert wird als NEW_E_LENGTH-Variable gespeichert. Anschließend muss man ein neues Verfahren definieren, das Extruder-Vorschubbefehle entsprechend dem Abstand zwischen den Bewegungen, der Robotergeschwindigkeit und der Roboterbeschleunigung erzeugt. Dies setzt voraus, dass die Extruderzufuhr durch eine spezifische analoge Ausgabe von der Robotersteuerung (in diesem Beispiel den analogen Ausgang Nummer 5) angetrieben wird
def new_move(self, pose1, pose2):
if pose1 isNone:
return
def Calculate_Time(Dist, Vmax, Amax):
'''Calculate the time to move Dist with Amax acceleration and Vmax speed'''
tacc = Vmax/Amax;
Xacc = 0.5*Amax*tacc*tacc;
if Dist <= 2*Xacc:
# Vmax is not reached
tacc = sqrt(Dist/Amax)
Ttot = tacc*2
else:
# Vmax is reached
Xvmax = Dist - 2*Xacc
Tvmax = Xvmax/Vmax
Ttot = 2*tacc + Tvmax
return Ttot
add_material = self.NEW_E_LENGTH - self.LAST_E_LENGTH
self.LAST_E_LENGTH = self.NEW_E_LENGTH
if add_material > 0:
distance_mm = norm(subs3(pose1.Pos(), pose2.Pos()))
# calculate movement time in seconds
time_s = Calculate_Time(distance_mm, self.SPEED_MMS, self.ACCEL_MMSS)
# add material
self.setDO(5, (add_material/time_s))
else:
# DO not add material
self.setDO(5,0)
Schließlich müssen wir den Befehl new_move mit jeder neuen Bewegungsinstruktion ausführen. Wir können diesen Aufruf am Anfang des MoveL-Befehls hinzufügen:
def MoveL(self, pose, joints, conf_RLF=None):
"""Add a linear movement"""
self.new_move(self.LAST_POSE, pose) # used for 3D printing
Additive Fertigung (oder 3D-Druck) mit Robotern kann realisiert werden, indem Werkzeugbahnen in einem Slicer wie Ultimaker Cura vorbereitet und der erzeugte G-Code mit RoboDK in Roboterprogramme umgewandelt wird.
Dieses Beispiel zeigt, wie Cura zusammen mit RoboDK für den großformatigen 3D-Druck einer Bootsrumpfform mit einem ABB IRB 6640-Roboter, einem CEAD-Extruder und einer ABB IRBT 6004-Linearachse eingesetzt wird.

Der 3D-Druck mit Cura und RoboDK ist auf eine der folgenden Arten möglich:
1.Erstellen Sie in Cura einen benutzerdefinierten FFF-Drucker, der zum Arbeitsbereich des Roboters passt.
2.Importieren Sie das 3D-Modell (STL-Datei) in Cura und wenden Sie vor dem Slicen eine 45°-Neigung an.
3.Slicen Sie die gedrehte STL-Datei und erzeugen Sie ein G-Code-Programm.
4.Wandeln Sie den Cura-G-Code in RoboDK in ein Roboterprogramm um.
5.Simulieren Sie den geneigten Extrusionsprozess in RoboDK und exportieren Sie ABB-RAPID-Code.
Öffnen Sie Ultimaker Cura → Einstellungen → Drucker → Drucker hinzufügen und wählen Sie dann Benutzerdefiniert → Benutzerdefinierter FFF-Drucker.

Stellen Sie das Bauvolumen passend zum Roboter und zur Linearachse ein:
1.X: 6000 mm
2.Y: 2500 mm
3.Z: 2000 mm
Deaktivieren Sie die Heizungssteuerung, da der CEAD-Extruder die Beheizung extern verwaltet.

Das STL-Modell muss vor dem Slicen in Cura um 45° gedreht werden.
1.Wählen Sie das Objekt aus.
2.Verwenden Sie das Drehwerkzeug von Cura, um das Teil um 45° zu neigen.
3.Slicen Sie die gedrehte STL-Datei.


Nachdem Sie das Modell geneigt haben, slicen Sie es in Cura und speichern Sie das Programm als .gcode-Datei.
Wählen Sie in RoboDK DienstprogrammeNC-Programm konvertieren und wählen Sie die Cura-Datei aus.

Im Dialogfeld für den NC-Import:
1.Wählen Sie den Roboter ABB IRB 6640 aus.
2.Fügen Sie die Linearachse ABB IRBT 6004 als externe Achse hinzu.
3.Wählen Sie den CEAD-Extruder als Werkzeug aus.
4.Definieren Sie das Bezugssystem (Bootsrumpf-Plattform).
Standardmäßig übersetzt RoboDK die E-Anweisung von Cura als Programmaufruf an ein Programm namens Extruder, wobei der E-Wert als Parameter übergeben wird.
Dies kann unter ExtrasOptionenProgramm-Ereignisse geändert werden.

Wenn der Cura-G-Code importiert wird, simuliert RoboDK den geneigten Extrusionsprozess:
1.Der ABB IRB 6640 folgt der Cura-Werkzeugbahn.
2.Der CEAD-Extruder wird mit der Roboterbewegung synchronisiert.
3.Die Werkzeugausrichtung entspricht der in Cura angewendeten 45°-Neigung.