Peter Hofbauer’s private Homepage
Selbstbauprojekte eigene Entwicklungen
Impressum Letzte Änderung: 08.Juli 2013 Copyright: frei! Impressum Letzte Änderung: 23.August 2020 Copyright: frei!

CNC-Maschine mit 3D- und Laser Zusatz (2 / 3)

H o m e Nach Oben Nächste Seite H o m e CNC mit 3D und Laser Seite 1 (3) CNC mit 3D und Laser Seite 2 (3) CNC mit 3D und Laser Seite 3 (3)

Der 3D-Zusatz

Eigentlich ist es keine gute Idee, eine Portalfräse zum 3D-Drucken verwenden. Die XY-Achsen sind viel zu langsam, nur die Z-Achse ist geeignet. Warum mache ich das trotzdem? Wegen Platzmangel! Meine Werkstatt für mechanische Arbeiten ist zu klein für noch eine Maschine. Bisher habe ich einen kleinen 3D-Drucker verwendet. Den musste ich im Nebenraum parken und nur bei Bedarf holen und anschließen. Dieser 3D- Drucker kann nur bis etwa 100x100mm drucken, ich benötige aber einen Größeren. Solche 3D-Drucker sind inzwischen sehr preiswert. Nur leider kann ich so einen wegen der äußeren Abmessungen nicht in vorhandene Regale unterbringen. Der 3D-Teil besteht aus einer separaten Y-Achse und einer separaten X-Achse für eine Fläche von max. 220x220. Die Z-Achse wird von der CNC verwendet. Leider musste ich mich für Z auf eine Höhe von max. 100mm beschränken. Der Umbau auf 3D-Betrieb sollte unbedingt sehr einfach und schnell gehen. Die Y-Achse wird ohne Verschrauben auf die Nutenplatte gelegt und in 2 diagonale Bohrungen eingerastet. Die X-Achse wird auf zwei M5x10-Gewindestifte an den oberen Säulen in der CNC-Z-Aufnahme eingehängt und mit zwei M5 Schrauben in den beiden unteren Säulen verschraubt. Dann die beiden Leitungen mit den Sub-D-Steckern an der Front stecken. Das alles dauert nicht einmal eine Minute. Danach muss noch das Filament eingefädelt werden, aber das ist ja auch bei jeden anderen 3D-Drucker etwas fummelig. Die Z-Platte der CNC wurde mit 4 Säulen zur Aufnahme der 3D-X-Achse versehen. Die obere mit 10mm langes M5 Aussengewinde bestückt, die untere mit M5 Innengewinde. Damit wird die 3D-X-Achse über die beiden Seitenwände der Z-Platte angehoben. Diese Teile bleiben permanent montiert. Brauchen für die CNC- Spindel und alle sonstigen Anbauten nicht entfernt werden. Der 3D-Teil wird über eine originale Hard- und Software von Anet mit Firmware Marlin SkynetV3.2.3 gesteuert. Alle 4 Schrittmotoren, also auch der größere von der CNC-Z-Achse, werden von der Anet- Platine gesteuert. Die werden leider nur mit 12V betrieben, was die Ansprüche auf hohe Druck- Geschwindigkeit herunter stutzt. Die Datenübergabe erfolgt mit einer SD-Karte. Via USB soll es auch funktionieren, habe ich aber noch nicht ausprobiert.

Ein billiger 3D-Bausatz als Teile- und Informations- Lieferant

Statt die Teile einzeln zu bestellen habe ich einen billigen Bausatz bestellt: Anet A8 mit Rahmen aus Sperrholz. Den habe ich zuerst komplett zusammen gebaut. Die Beschreibungen waren auf der mitgelieferten CD sehr gut. Ich wollte damit nicht drucken sondern die Funktionen studieren und wenn ich damit durch bin wollte ich die elektronischen und mechanischen Teile für meine eigene Konstruktion verwenden. Der zusammen gebaute A8 machte einen ziemlich jämmerlichen Eindruck. Man könnte mit den Kerl Mitleid bekommen. Da war alles was irgend mögliche war, eingespart worden. Die Führungen und Lager entsprachen nicht den Abbildungen im Netz. Die Lager bestanden aus 10mm langen Blechhülsen (wie Hohlnieten) und waren in die Lagergehäuse mit irgendwas eingeklebt. Die Linearwellen waren Rohre. Der Durchmesser war statt 8,0mm nur 7,8mm und damit nicht zu verwenden. Die Druckplatte (Heizbett) war aus Stahl 220x220mm, aber die darunter geklebte Heizung war nur 100x100mm, also auch unbrauchbar. Die elektrische Ausrüstung (Hauptplatine, Motoren, Endschalter) war OK, die konnte ich weiter verwenden. Bevor ich den 3D-Drucker wieder demontierte zwecks Teilegewinnung wurden diverse Versuche gemacht. Im Netz sind unter den Suchbegriff “Anet A8” viele Berichte und Videos zu finden. Zum Beispiel wird öfter die Firmware von Marlin, SkynetV3.2.3 mit einer Grafik-LCD empfohlen. Das Projekt SkynetV3.2.3 besteht aus 227 Dateien und ein Verzeichnis mit Geräte-spezifischen Dateien (für A2, A6, A8). Die Datei Configuration.h darin ist wichtig. Hier muss man einige Daten für den 3D-Drucker eintragen. Man benötigt die Arduino-IDE zum compilieren. Eigentlich sollte man die Firmware via USB übertragen können. Das hat bei mir nicht funktioniert. Stattdessen habe ich das mit meinen JTAGICE_MK2 gemacht. Die dazu benötigte Hex-Datei erzeugt die Arduino-IDE wenn man die Übertragung per USB abschaltet. Wo die hex dann versteckt wurde, wird nach dem Compilieren in den unteren Zeilen der abschließenden Meldungen angezeigt. Mach einigen Versuchen gelang es mir endlich die neue Firmware zum laufen zu bringen. Dazu war eine Bedieneinheit nötig, die den Drehknopf neben(!) das Display hat. Die Einheit mit den Drehknopf darunter funktionierte nicht, auch nicht durch veränderten Anschluss wie im Netz behauptet. Beim 3D-Druck muss das Druckbett im Abstand von genau 0,2mm unter der Düse (bei Z-Position = 0,0) eingestellt sein. Das wird beim Original mit 4 Schrauben eingestellt. Diese nervige Arbeit wollte ich meiner Konstruktion vermeiden durch  “auto-bed-leveling”. Das ist in der Firmware vorgesehen. Dabei tastet ein Sensor die Fläche in 9 Positionen ab und berücksichtigt Abweichungen beim Drucken. Wie das genau verwaltet wird konnte ich nicht in Erfahrung bringen. Vermutlich funktioniert das nur wenn die Abweichungen nicht über die Höhe einer Lage hinausgehen. Meine Y-Achse mit den Druckbett liegt fest parallel zur Nutenplatte der CNC. Abweichungen zur Bahn der 3D-Düse darf nie über 0,2mm liegen. Diese geringe Abweichung kann problemlos vom “auto-bed-leveling” korregiert werden. Nachdem ich alle mechanischen und elektrischen Funktionen kontrollieren konnte wird der 3D-Drucker wieder zerlegt. Seine Aufgabe ist beendet.

Die Y-Achse fürs 3D-drucken

Die Y-Achse soll in der CNC flach auf die Nutenplatte liegen. Besteht aus 12mm-Linearführungen, vorn und hinten mit Alu-Winkel verschraubt. Die Winkel sind zusammen auf der CNC gefertigt. Die beiden 12mm-Linearwellen sind exakt parallel angeordnet. Als Träger für das geheizte Druckbett dient eine Platte aus 4mm Dibond. Die wird mit einen Abstand von nur 5mm über die CNC-Nutenplatte geführt. Das geheizte Druckbett besteht aus einer Heizplatte aus Alu mit darauf geklebter Glasplatte 220x220mm. Die Oberfläche der Glasplatte ist nicht höher wie die vier Lagergehäuse: 30mm über die Dibond-Platte. Unter der Heizplatte sind 25mm, die ich mit Material zur Wärme-Dämmung gefüllt habe. Damit diese Material dort bleibt (es fasert) wurde rundherum eine 10mm hohe Wand aus 4mm- Dibond geklebt. Zusätzlich noch mit 20mm Silikon- Klebestreifen. Wird die Dibond-Platte zu heiß? Die Temperatur der Dibond-Platte wurde nach einer Stunde Heizbetrieb  mit 110°C überprüft. Auf der Oberfläche wird es nur 2° über Raumtemperatur, die Höchste war unter der Dibond in der Mitte auf 8° über Raumtemperatur. Ist also OK! Angetrieben wird die Y-Achse mit 2 Motoren. Die waren bei der A8 an der Z-Achse. Später habe hier vorsichtshalber die größere Sorte wie an der X-Achse verschraubt. Beide Motoren sind parallel geschaltet. Der Y-Treiber ist auf einen Strom von 0,74A eingestellt. Das habe ich geändert auf 1,7A. Dazu muss der R17 (100k) gegen einen 33k getauscht werden. Im anschließenden Dauerbetrieb wurde der Treiber zu heiß. Die Temperaturüberwachung des ICs wurde aktiv. Ein Lüfter (60 x60 mm) im Abstand von 20mm über den Treiber hat das Problem behoben. Hinten am Winkel ist ein selbst gedrucktes Gehäuse als Übergang zum Anschlusskabel mit 15- poligen Sub-D-Stecker. So etwas vereinfacht die Verdrahtung und Inbetriebnahme. Die grauen Teile in den Fotos sind mit meinen kleinen 3D-Drucker gefertigt. Probleme mit den Führungen Die Y-Achse lief beim verschieben mit der Hand teilweise schwer und ruckweise. Das kann so nicht bleiben. Das schaffen die Motoren mit den kleinen Treibern nicht. Nach einigen Versuchen auch mit anderen Lagern stand fest: die Achse der Lager ist gegen die Achse der Linearwelle gering abweichend. Alle Bemühungen brachten kein Erfolg. Dann habe ich die Lager  auf eine ungewöhnliche Art ausgerichtet: mit Klebstoff! Der Klebstoff: RK1300 (oder RK1500) mit Aktivator. Der mechanische Teil muss richtig montiert und ausgerichtet sein. Die Dibond-Platte von den Lagern abschrauben. Der ungefähre Ablauf: 1. Den Aktivator auf die Dibond-Platte auftragen 2. Mindesten 5 Minuten ablüften lassen 3. Die Fläche des Lagergehäuses mit Kleber versehen, nur 0,1 bis 0,2mm 4. An den äußeren Enden der Lager eine(!) Schraube nur ein paar Milimeter einschrauben damit die Lager an der richtigen Stelle bleiben 5. Die Dibond-Platte auf die Lager leicht auflegen, mit Gefühl leicht hin und her schieben damit sie sich ausrichten. Die Platte muss auf den Kleber “schwimmen” Weil der Kleber sofort reagiert muss man sehr schnell arbeiten! Nach einen Tag ist der Kleber ausgehärtet. Danach konnte die Platte sehr leicht und ohne ruckeln bewegt werden. Die Aktion war ein voller Erfolg! Das selbe habe ich dann noch bei der X-Achse gemacht.
Die X-Achse fürs 3D-drucken Die X-Achse ist auf 3mm-Alublech montiert. Die Einheit wird auf die Z-Achse der CNC geschraubt. Die Z-Achse der CNC ist auch für den 3D-Druck zuständig.  Der Extruder wird mit einen Magneten auf eine Halteplatte aus 3mm Alublech gehalten. Der Extruder ist der originale vom A8. Er sitzt auf einen Winkel aus Stahl. Die Leitungen vom Extruder sind alle mit Steckverbinder von der Halteplatte trennbar.  Damit die Belastung auf die magnetische Befestigung durch die Zuführung des Filaments entfällt wurde auf der Halteplatte ein 6mm-Stecker für einen Schlauch montiert. Das Filament wird über diesen Schlauch zugeführt.   Diese Halteplatte wird mit 4 Lager geführt. Die Lagergehäuse stammen vom A8. Die sind zwar aus Plastik, haben aber die richtigen Abmessungen und sind mit neuen Kugelumlauflager bestückt. Diese Lager habe ich mit den selben Verfahren wie bei der Y-Achse auf die Halteplatte ausgerichtet.   Die 8mm-Linearwellen sind nicht vom A8. Die waren nicht zu gebrauchen weil nur 7,8mm Durchmesser.  Rechts am Alublech ist ein selbst gedrucktes Gehäuse als Übergang zum Anschlusskabel mit 25-poligen Sub-D-Stecker. So etwas vereinfacht die Verdrahtung und Inbetriebnahme.             X-Achse von hinten Extruder-Halteplatte Extruder Z-Sensor Extruder-Anschlüsse Der Extruder Verwendet wird der originale Direkt-Extruder vom A8. Dessen Konstruktionsprinzip ist einfach und funktioniert. Allerdings nicht ohne ein paar Änderungen.  •	Der Extrudermotor blockierte, das Loch im Kühlkörper musste vergrößert werden  •	Es war fast unmöglich das Filament ein zu fädeln. Der Anstand vom Transport-Zahnrad zum Düsenhals war zu groß. Habe einen längeren Düsenhals eingebaut, der bis auf 1mm ans Zahnrad reicht.  •	Das Plastik kam nicht nur aus der Düse sondern auch oben aus den Heizblock. Das war schwer dicht zu bekommen. Den Heizblock (20x20x10mm) habe ich gegen einen (20x16x12mm) mit etwas längeren M6-Innengewinde ausgetauscht. Die Flächen am Düsenhals und an der Düse wurden auf der Drehbank plan gedreht damit es besser abdichtet. Nach der Montage wurde aufgeheizt und im heißen Zustand alles nochmal angezogen.  •	Der mechanische Teil für den Filament-Antrieb besteht aus ein feinzahniges Ritzel auf der Welle des Schrittmotors und ein Hebel mit darauf gelagerter Andruckrolle. Dazwischen wird das Filament eingeklemmt. Der Hebel drückt mit Hilfe einer Feder die Andruckrolle aufs Filament. Die Lagerung dieses Hebels bestand nur aus einer M3-Schraube, die lose war und auch nicht angezogen werden durfte. Hier fehlte ein stabiles Lager. Das habe ich in Form einer Buchse (di=3, da=4.5) eingebaut. Das Filament wird jetzt präziser geführt. Vorher hatte es sich beim herausziehen an dieser Stelle verkantet.  Die Wärme vom Heizblock/Düse darf nicht bis nach oben reichen, deshalb wird mit Kühlkörper und Lüfter dort gekühlt. Vorsichtshalber habe ich mal den Temperaturverlauf gemessen. Bei einer Raumtemperatur von 20°.  Bei abgeschraubter Düse und auf 200° aufgeheizt habe ich einen Temperatursensor von unten 23mm in den Düsenhals geschoben, dort waren zwischen 73° und 88°. Das kommt darauf an was der Sensor gerade berührt.  Die Messungen zeigen: alles im grünen Bereich. Das kann auch daran liegen, das der U-förmige Stahlwinkel ebenfalls als Kühlkörper dient und der liegt im Betrieb ohne Spalt (sonst wirkt der Magnet nicht genug) am 3mm-Extruder-Halteblech.  Der Z-Sensor  Für das automatische Bett-Leveling und als Z-Endlagenschalter ist ein Sensor nötig. In der der Datei “Configuration.h” muss die Position des Sensors (besser: wann er Signal gibt) relativ zur Düse eingetragen sein. Bei mir sind es X-38, Y-37 und Z-2. Der Wert für Z kann auch über die Bedieneinheit eingesehen und editiert werden.  Zuerst habe ich wie im Netz empfohlen einen 18mm kapazitiven Näherungsschalter verwendet. Die Halterung dazu habe ich aus einen Aluwinkel gefräst.  Der kapazitiven Näherungsschalter war leider sehr unzuverlässig. Auf unterschiedliches Material reagiert er mit anderen Abstand. Er gibt an der Schwelle kein eindeutiges Signal sondern Impulse aus.  Deshalb habe ich einen Sensor mit Lichtschranke gebaut. Die Abtastung erfolgt mechanisch mit einen Taststift. Das funktioniert auf einen hundertstel mm genau.           Taststift          Lichtblende           Sperrhebel  Der Sensor muss ansprechen bevor die Düse das Druckbett berührt. Sind hier etwa um 2mm. Vorm drucken muss sich der Taststift soweit nach oben ziehen damit er sicher über die Plastiklagen schwebt. Das kann mit einen Motor geschehen wie auch in der Firmware vorgesehen. Leider fehlt eine nötig Leitung in meiner Verdrahtung. Ich muss es manuell mit einen Sperrhebel machen.  Zum “Homen” muss der Taststift frei gegen werden, dann das automatische Bett-leveling starten, dann den Taststift mit den Sperrhebel anheben., dann den Druck starten. Im G-Code muss unbedingt der Befehl G28 (Home) entfernt sein.  Die grauen Teile für den Sensor wurden mit meinen kleinen 3D-Drucker gemacht. Der Stift und die Lichtschranke stammen aus ein altes CD-Laufwerk. Die kleine Platine habe ich übrigens mit den Laserkopf hergestellt.  Temperatur-Fehler  Beim Drucken kam es vor, das mitten drin der Kontroller mit einer Temperaturfehler-Meldung den Vorgang abbricht.  Die Ursache: der Lüfter kühlt den Heizblock mit Düse zu weit herunter. Abhilfe: ein Blech zwischen Heizblock und Luftauslass leitet den Luftstrom daran vorbei.  200° 100° 68° 26° Kühlkörper 24° 20°

Test: 3D-Drucken

Es waren viele Versuche nötig bis alle Fehler erkannt und behoben werden konnten. Ich benötige 3D-Plastikteile für meine technischen Konstruktionen. Dafür will ich nur ABS (nicht PLA) verwenden wegen der höheren Temperaturbeständigkeit und der besseren Stabilität. Mein alter 3D-Drucker Angefangen habe ich vor einiger Zeit (2016) mit einen kleinen 3D-Drucker “UP! mini”. Der ist etwa so groß wie eine Kaffeemaschine und hat einen geschlossenen Druckraum was für ABS günstig ist. Der wurde mit einer Rolle ABS-Filament geliefert. Das ganze war komplett mit einer passenden PC-Software. Zuerst hab ich mit einigen Experimenten und Ratschlägen aus dem Netz gearbeitet. Das war eigentlich Unsinnig! Dann habe ich das ganze einfach so gemacht wie der Hersteller es vorgesehen hatte und es war OK. Gedruckt wurde auf eine Epoxyd- Lochplatte. Sobald sich die Löcher alle mit Plastik gefüllt hatten war auch das gefürchteten Warping kein Problem mehr. Solange eine Seite des Models nicht über 80mm war. Zuerst druckt der 3D-Drucker ein Sockel (”Raft”), der sich mit den Plastik in den Löcher verschmilzt, und darauf das gewünschte Model. Das Model muss mit einer scharfen Spachtel vom Sockel gelöst werden. Es gab keine Probleme, einfach starten und warten. Auch die Bedienung der dazu gehörenden Software war simpel. Habe zwei Testwürfel 20x20x20 mit zwei verschiedenen ABS-Filamenten gedruckt: hellgraues ABS (Zaper) empfohlene Temperaturen 190° bis 230° dunkelgraues ABSnext empfohlene Temperaturen 240° bis 260° Die vom Hersteller empfohlene Düsentemperatur war sehr unterschiedlich. Seltsam, das der Drucker trotzdem beide Testwürfel einwandfrei gedruckt hat obwohl man keine verschiedene Temperaturen einstellen kann. Der Drucker legt los sobald die Düse 260° erreicht. Mein neuer selbst gebauter 3D-Drucker auf der CNC Die G-Kode-Datei erzeuge ich mit Cura V4.6. Den G-Kode dann auf eine SD-Karte laden. Auf der Frontplatte ist eine Öffnung für diese Karte vorhanden. Man kann die Datei aber auch ohne SD-Karte via USB übertragen. Mit der Software Repetier. Damit kann der Drucker auch manuell einzeln bewegt werden, das ist etwas besser zu bedienen als mit der Einknopf-Bedienung der Marlin-Firmware. Außerdem können Daten eingesehen und G-Kode Befehle einzeln gesendet werden. Im Netz sind einige Test-Modelle zu finden, zum Beispiel dieser Temperatur-Turm. Viel sagt das aber nicht aus, eigentlich sind die Ergebnisse bei allen Temperaturen (260 bis 220°) etwa identisch. Mit Zentrumskreuz mit Rahmen 190x190mm wurde die Funktion der ABL (Auto Bed Leveling) getestet. Das Modell ist nur 1 Layer hoch. Nach einen Haufen Tests habe ich ein Gehäuse für ein geplantes Projekt gedruckt. Soll später oben auf die Z- Achse der CNC. Der 3D-Druck auf der CNC (+3D-X und 3D-Y) funktioniert inzwischen gut und kann ohne Sichtkontrolle z.B. über Nacht laufen. Das soll auch so sein weil`s sehr lange dauert. Das Gehäuse oben dauerte fast 8 Stunden, allerdings mit geringer Geschwindigkeit (50mm/s). Für das hellgraue ABS verwende ich folgende Einstellungen in Cura: Düsentemperatur für die ersten Lagen 260°, danach 240° Bett Temperatur permanent 110°, (leider kosten das kWh, werde später noch mit 100° > 90° testen) Rückzug (wird in Cura Einzug genannt) 1,5mm, weil kurzer Abstand (Düse > Motor) im Direkt-Extruder Lüfter zuerst 0%, dann bis 60% steigend Geschwindigkeit: 60mm/s Das Warping-Problem Drucken auf meine Glasplatte und Versuche mit verschiedenen Epoxyd-Platten als Druckbett hatten alle nicht das gewünschte Ergebnis. Warping war bei größeren Modellen immer vorhanden. Die Erfahrungsberichte im Netz kann ich nicht bestätigen. Ich werde es mit diversen Klebern im Laufe der Zeit mal testen. Als Ersatz fürs ABS wird PETG empfohlen, das soll sich besser drucken lassen. Werde ich alles testen sobald ich ein größeres Teil benötige.

Update: Erfahrungen

Inzwischen funktioniert der 3D-Drucker auf der CNC sehr gut. Verwendetes Material: PETG, mit den von Cura vorgeschlagenen Daten, Geschwindigkeit auf 80mm/s erhöht. Druckplatte: 1mm Pertinax mit Klammern auf der Glasplatte befestigt. Ergebnisse: kein Warping, alles richtig und Maße genau, Drucken von 11 Stunden über Nacht läuft problemlos. Das Umrüsten von CNC auf 3D geht schnell. Ebenso einfädeln des Filaments geht jetzt sofort. Vorher muss aber die Düse auf 245° sein. Das automatische Bett-Leveling (ABL) mache ich nach aufspannen der Pertinaxplatte sobald das Bett auf 90° ist. Die Abweichungen korregiert die Firmware auf allen Lagen bis zur obersten Lage. Das Bett sollte nicht zu stark abweichen. Bei meiner Konstruktion ist eine mechanische Korrektur nicht möglich und auch nicht vorgesehen. Weil die aber nicht über +/-0,1mm ist kann das mit ABL gut ausgeglichen werden. Die “ein-Knopf-Bedienung” der Marlin-Firmware gefällt mir überhaupt nicht! Ein 3D-Drucker ist eine CNC-gesteuerte Maschine. Und bei einer Maschine gehören mindestens 2 richtige(!) Tasten mit der Aufschrift “START” und “STOPP”. Und wenn man da drauf drückt muss sofort(!) genau das passieren was auf der Taste steht. Damit man anhalten kann um zum Beispiel ungewolltes Filament von der Platte zu entfernen bevor das über das Modell verschoben wird. Danach muss ein Starten an genau der selben Stelle möglich sein. Ob das an der Stelle zu verantworten ist oder nicht ist eine Sache des Bedieners und nicht der Firmware! Die Funktionen “Pause”, “Weiter” und “Abbruch” sind mit den Drehknopf nicht schnell genug erreichbar. Und sind nicht Fehlerfrei. Man muß dann notgedrungen den Netzschalter bemühen.

 

Temp-Tower 260-220°
Loch-Muster 1 bis 25mm
CNC mit 3D und Laser Seite 2 (3) CNC mit 3D und Laser Seite 2 (3)