Multi-Toolhead

cnc
experimentell
ultimaker
#1

Ein kleines Projekt, um verschiedene Werkzeuge in einen 3D-Drucker einzuspannen.
Dafür habe ich mir eine universelle Montiermöglichkeit gebastelt:
Multi-Toolhead

image
An diesen Sockel können nun diverse Adapter für verschiedene Werkzeuge geschraubt werden,
natürlich auch das ursprüngliche Original-Hotend für den 3D-Druck:

image

Zum “Fräsen” von DXF-Konturen benutze ich das Tool DXF2GCode; es ist leicht zu bedienen und open Source, zudem verfügt es über automatische Radienkompensation.

Die Einrichtung ist relativ simpel: Man fährt den Drucker (hier Ultimaker: Herr Fugbaum) per Controller -> Prepare -> Auto Home auf Null und senkt dann das Werkzeug bis auf die MDF-Opferplatte ab. Dies ist dann Z=0.

Anschließend wird die Materialstärke des Werkstückes (hier Stahl 1.6mm) in die Software eingegeben.
Es können mehrere Durchgänge (aka. Zustellungen, Infeed Depth) gefräst werden, bis die gewünschte Endtiefe erreicht ist (Final Mill Depth). Hier wird nur einmal 0.1mm tief zugestellt und nach dem Durchgang ist schluss, also Infeed Depth: -0.1 und Final Mill Depth 1.5

Zuletzt exportiert man den Maschinencode und speichert diesen auf eine SD-Karte. Diesen kann man dann wie einen normalen Druckjob über den Controller an der Maschine starten.

DXF2gcode_Settings

Oben kann man außerdem Werkzeuge auswählen, die man vorher einrichten kann. Hier wurde das Werkzeug nr. 42 mit 1.0mm Durchmesser ausgewählt. Die Spindelgeschwindigkeit steht auf 0.0, weil der verwendete Dremel nur ON/OFF kennt und nicht von der Software gesteuert werden kann. Man schaltet ihn einfach ein, bevor man den Job startet.

Bislang ist es nicht möglich, aus der Software direkt den Vorschub (die Fräsgeschwindkeit) zu steuern. Möglicherweise ist dort im Code ein LineBreak zuviel:

G0 Z   2.600 
F1200

eigentlich sollte die Zuweisung in der selben Zeile passieren und wie folgt aussehen:

G0 Z 2.600 F1200
2 Likes

#2

Nachtrag: Verdammt, die Zuweisung ist leider das Problem. Man muss also nach dem Export aus DXF2gcode die datei nochmal mit dem Texteditor öffnen und die Stellen finden, wo eine Zeile mit Fxxx (z.B. F600) anfängt und sie ans Ende der darüber liegenden Zeile verschieben:

G64 (Default cutting) G17 (XY plane) G40 (Cancel radius comp.) 
G49 (Cancel length comp.)
G0 Z   5.000 (<<< hier! könnte bereits die G0 Fxxx Zuweisung erfolgen.)

(*** LAYER: 0 ***)
T666 M6    S0
(* SHAPE Nr: 1 *)
G0 X  55.831 Y  63.004  
M3 M8 (Spindel AN / Kühlmittel AN)
G0 Z   3.000 
F600 (<<< hier!)
G1 Z   2.800
F800  (<<< hier!)
G2 X  58.023 Y  65.196 I   1.096 J   1.096
G2 X  55.831 Y  63.004 I  -1.096 J  -1.096
F600  (<<< hier!)

Wie man sieht, kann der GCode (je nach DXF-Datei?) durchaus mehrere Fxxx Befehle enthalten und die will man ja nicht alle suchen, finden und verschieben müssen. Hmm. Auffällig ist jedenfalls, dass die rapid moves (G0) in der gleichen feed rate gefahren werden wie die arc moves (G2), während die “normalen” Fräsungen (G1) eine andere andere Geschwindigkeit haben. Keine Ahnung, warum. Aus meiner Sicht sind rapid moves (aka. Positionierfahrten) schnell zu fahren und alles andere sind eben Fräsbahnen, also langsamer zuzustellen. Naja. Vielleicht sollte man daher zunächst die Feed Rates für XY und Z gleich setzen.

Wir können jedenfalls davon ausgehen, dass alle F-Befehle in ihrer Ursprungs-Formatierung (zumindest für den Ultimaker) ungültig sind und daher vom Controller ignoriert werden. Das bedeutet, wir brauchen nur die ersten G0, G1, G2 und G3-Zuweisungen, die wir finden, zu ändern und lassen den Rest einfach liegen:

G64 (Default cutting) G17 (XY plane) G40 (Cancel radius comp.) 
G49 (Cancel length comp.)
G0 Z   5.000 F600  (<<< hier!)

(*** LAYER: 0 ***)
T666 M6     S0
(* SHAPE Nr: 1 *)
G0 X  55.831 Y  63.004  
M3 M8 (Spindel AN / Kühlmittel AN)
G0 Z   3.000 
G1 Z   2.800    F800  (<<< hier!)
G2 X  58.023 Y  65.196 I   1.096 J   1.096  F600  (<<< hier!)
G2 X  55.831 Y  63.004 I  -1.096 J  -1.096

Nun geht es wenigstens schonmal, hoffentlich krieg ich das es eines Tages automatisch behoben. Ich werde mal mit dem PostProcessor rumspielen (Es lebe OpenSource…)

Postprocessor

0 Likes

#4

… Nachtrag zum Nachtrag:
Der Postprocessor kann leider nicht ausgetrickst werden (zumindest nicht von mir).
Aber wenn man in der Postprocessor configuration unter Software config in dem Feld Startup: folgendes hinzufügt, kann man schon besser damit arbeiten:

G0 F400 (set travel speed)
G1 F400 (set work speed)
G2 F400 (set CW arc speed)
G3 F400 (set CCW arc speed)

Man muss jetzt die Datei vor dem Fräsen nicht mehr händisch mit dem Texteditor korrigieren. Leider muss man aber für eine Änderung der Geschwindigkeit die besagten Zeilen der Postprocessor Config ändern und kann es nicht bequem über das normale Eingabefeld machen. Naja. Immerhin.

ppconf

0 Likes

#5
1 Like