Brücken und Überhänge

Aus RF1000 Wiki
Zur Navigation springen Zur Suche springen

Ich habe an mehreren Stellen den Eindruck gewonnen, dass einige Forumsmitglieder Probleme mit Überhang und Brücken haben.

Daher poste ich meine Erfahrungen und Überlegungen zu gewissen Slicer-Einstellungen, die einen nachträglichen Einfluss auf Überhang und Brücken haben können. Diese Überlegungen beziehen sich in meinem Fall primär auf Slic3r, könnten aber sicherlich auch auf andere Slicer-Programme übertragen werden.

Ich habe diesen Beitrag jetzt zum dritten Mal umgeschrieben, da ich jedes mal anders lautende Beiträge im Internet gefunden habe, zum Teil widersprüchlich. Daher warne ich schon vorab: hier handelt es sich um meine Überlegungen. Macht damit was ihr wollt.

Mit meinen Einstellungen kann ich Überhänge von 40° von der Horizontalen weg (50° von der Vertikalen weg) drucken. Und Brücken bis zu einer Länge von 80mm schaffe ich auch (siehe Testobjekt auf https://www.youmagine.com/designs/the-tomtest).

Das wird richtig langatmig dieses Mal. Holt euch sicherheitshalber eine Kanne Kaffee oder eine Kiste Bier (samt Öffner), oder so.

So, seid ihr so weit? Entspannt, Bier, etc., bereits in der Hand? Gut. Los geht’s.

Meiner Erfahrung nach wird bei Problemen mit Überhängen und besonders Brücken, zu viel Material gefördert. Hier meine Erklärung.

Fangen wir ganz von vorne an. Das Druckverfahren, dass wir hier mit dem RF1000 verwenden, beruht auf das wiederholte schichtweise Aufbringen von (geschmolzenen) Kunststoffraupen, bis das gewünschte Objekt fertig ist. Eine Slicer-Software berechnet diese Raupen und erstellt die entsprechenden Befehle, den sogenannten GCode, für den Drucker.

Für diese Berechnung der Raupen benötigt die Slicer-Software einige Informationen: Layerhöhe, Durchmesser des Filament-Rohmaterials, (gewünschte) Raupenbreite, Anzahl der Perimeter, Füllungsgrad und die Umrisse des Objekts selbst (und Düsendurchmesser). Weitere Parameter sind noch zur Erstellung des fertigen GCodes notwendig, wie z.B. Temperaturen, Geschwindigkeiten, gewisse Abmaße des Druckers und optionale weitere Parameter.

Als erstes teilt die Slicer-Software (ab jetzt kurz SSW genannt) das Objekt in Schichten, die der Layerhöhe entsprechen. Die jeweiligen Umrisse der entsprechenden Schicht ergeben eine oder mehrere Flächen, die es zu füllen gilt. Die SSW teilt diese Fläche(n) in zwei Bereiche ein: Umrisse (=Perimeter) und Füllung (=Infill).

Und jetzt wird es zum ersten Mal interessant:

Raupengeometrie

Um die Trennung zwischen Perimeter-Bereich und Füllungs-Bereich zu berechnen, und alleine schon um alle Perimeter in ihrer Lage und Länge richtig zu berechnen, braucht die SSW eine Raupenbreite. Diese kann vom User direkt oder indirekt vorgegeben sein oder von der SSW selbst bestimmt werden (aus der Luft gesaugt?).

Diese Raupenbreite, zusammen mit der Layerhöhe, ergibt den Raupenquerschnitt. Raupenquerschnitt mal Raupenlänge ergibt das Raupenvolumen. Die SSW errechnet sich anhand dieses Raupenvolumens die nötige Filamentförderlänge aus dem Filamentdurchmesser aus.

Einmal abgesehen davon, wer oder wie die theoretische (Soll-)Raupenbreite bestimmt wurde, klären wir einmal ab, wie die Ist-Raupenbreite beim Drucken entsteht.

Die SSW sendet Verfahrbefehle an den Drucker, inklusive solche für den Extruder. Der Verfahrweg, als Kombination einer X- und Y-Bewegung entspricht einer Länge. Der 'Verfahrweg' des Extruderschrittmotors entspricht einer Länge des Filaments. Diese Filamentlänge entspricht einem Volumen (Filamentquerschnitt mal geförderter Länge).

{Dieses Volumen, geteilt durch den X/Y Verfahrweg und durch die Layer-Höhe, ergibt die theoretische Ist‑Raupenbreite.}

Zur Erklärung ein Beispiel mit ein paar angenommenen Zahlen:

Filamentdurchmesser D = 2.986mm
Layerhöhe LH = 0.3mm
Verfahrweg VW = 28mm
(Selbst-) Spezifizierte Raupenbreite = 0.75mm
Extruderweg EW = 0.9mm


Das geförderte Volumen ist D² * Pi / 4 * EW = 6.3mm³
Die resultierende Raupenbreite ist 6.3mm³ / VW / LH = 0.75mm

Damit ist diese Raupe ein (theoretischer) länglicher Quader, 0.75 breit, 0.3 hoch und 28mm lang. In Wirklichkeit ist der Querschnitt kein Rechteck. Über das Aussehen des Querschnitts gibt es verschiedene Ansichten/Theorien. Hier ein paar Links:

Wie Slic3r den Raupenquerschnitt sieht.

Wo evtl. der dimensionale Fehler herkommt.

Wie Slic3r die Raupe und den Materialfluss berechnet.


Und auch meine Ansicht:

Fehler beim Erstellen des Vorschaubildes: Datei fehlt


In diesem Bild sieht man wie die (gewollte) Überlappung der Raupen zu einer (ungewollten?) seitlichen Abweichung führt. Diese Abweichung führt zu einer kleinen maßlichen Ungenauigkeit.


Abhilfe: Perimeter als erstes drucken, da die Abweichung erst ab der zweiten Raupe beginnt (Perimeter als erstes hat aber auch gewisse Nachteile – ist eine andere Story…)


[Vielleicht ist es aufgefallen, dass bei der ganzen Berechnung der Düsendurchmesser gar keine Rolle spielt. Wenn der Durchmesser ‚scheinbar‘ keine Rolle spielt, wieso muss man ihn beim Slicer angeben?]

Außerdem funktioniert diese „Layerhöhe-mal-Raupenbreite“-Sache nur, wenn unter der Düse eine Fläche existiert. Entweder das Druckbett, oder eine vorherige Schicht, damit die (entstehende) Raupe auf die Layerhöhe eingrenzt und damit auf die Raupenbreite ‚breitquetscht‘ werden kann.

In der SSW geschieht dieser Vorgang der Volumensermittlung nicht auf diesem Weg (glaube ich), sondern, umgekehrt, die SSW errechnet den Extruderweg (EW), also das geförderte Filamentvolumen, basierend auf eine Raupenbreite. (Wo sich Slic3r die Raupenbreite herholt, falls sie nicht spezifiziert wurde, ist mir ein Rätsel - ist aber ein anderes Thema.)

Und jetzt zum häufig auftretenden Problem beim Drucken von Brücken

Gehen wir eine Brücke gedanklich einmal durch. Mit „Brücke“ ist so eine 3D-Drucksituation gemeint, wo zwischen zwei (erhöhten) Punkten eine Raupe 'freischwebend' gezogen wird, ähnlich wie eine Hängebrücke. Da in so einem Fall die darunterliegende Schicht fehlt, gibt es nichts außer der Düse selbst, welches die Raupe in eine 'Layerhöhe' zwingen und zu einer (errechneten) Breite führen könnte. Die Düse ist rund, folglich wird die Raupe rund (annähernd).

Nehmen wir weiter an, die Düse hätte 0.5mm Durchmesser. Damit wäre der

               Raupenquerschnitt = 0.5 * 0.5 * Pi / 4 = 0.1964mm²

Müssten wir eine Brücke von 28mm spannen (das ist dieselbe Länge wie im vorherigen Beispiel) ergäbe das ein notwendiges Volumen von

               Volumen = Raupenquerschnitt * Länge = 5.497mm³

Aufmerksame sehen vielleicht schon das Problem: im ersten Beispiel hatten wir ein gefördertes Volumen von 6.3mm³, bei der Brücke bräuchten wir aber nur 5.5mm³ Material. Es wird also fast 15% mehr Material gefördert als benötigt wird.

Ergebnis: Die Brücke wird zu einer Hängebrücke, da sie ORDENTLICH durchhängt. Damit eine Brücke halbwegs klappt, müssen die Raupen leicht gespannt sein, wie Hängebrückenseile. Es sollten nur ca. 5-10% weniger Volumen, als theoretisch nötig, gefördert werden, damit eine Spannung entsteht.

Ich konnte bisher in Slic3r nur eine Einstellung finden, die explizit für die geförderte Materialmenge bei Brücken gedacht ist. Unter "Print Settings", "Advanced" und "Bridge flow rate" kann man der Hängebrücke zu Leibe rücken. Im obigen Beispiel müsste man einen Faktor von kleiner als 87% eintragen, falls man die überschüssige Menge (meiner Theorie nach) kompensieren möchte. Einen fixen Kompensationsfaktor kann man nur dann sinnvollerweise festlegen, falls man auch weiß, mit welchem Wert sich der Faktor multipliziert.

Ich vermute, Slic3r multipliziert den Kompensationsfaktor mit der Fördermenge, die sich aus einem der drei folgenden Raupenbreiten errechnen lässt: der Standard-Raupenbreite („Default extrusion width:“), der Umriss-Raupenbreite („Perimeters:“) oder vielleicht der Raupenbreite für 100% Füllung („Solid infill:“). Diese drei Werte sind alle unter „Print Settings“ und „Advanced“, unter „Extrusion Width“ zu finden.

Hat man, dummerweise, keines dieser Extrusionsbreiten explizit spezifiziert, weiß man im Voraus nicht, welchen Wert Slic3r verwenden wird - dann wird es ein Glücksspiel und die Brücken könnten hängen (und was für die Brücke schlecht ist, ist für einen Überhang auch nicht unbedingt gut).

Die Standard-Einstellungen für Slic3r, wie sie für den RF1000 auf der SD-Karte mitgeliefert werden, spezifizieren weder eine "Default extrusion width:", noch eine für „Perimeters:“ oder "Solid infill:“. Das sind genau die drei Werte von denen ich der Meinung bin, sie würden sich als Basis für den (Brücken-) Kompensationsfaktor anbieten. Wie soll man da eine ordentliche Brücke schlagen, wenn man nicht weiß, wie lang die Seile sind?

Andererseits könnte es sein, dass die SSW sehr wohl weiß, dass es sich um eine Brücke handelt, und daher selbsttätig die Fördermenge reduziert.

Bei meiner eigenen Nachrechnung mittels bestehenden GCode von Slic3r habe ich keinen Unterschied gefunden (erst in der 5. Nachkommastelle, vermutlich durch Rechen-/Rundungsfehler). Ich nahm die extrudierte Länge pro Millimeter Fahrweg von einer Perimeter-Raupe und verglich diese mit dem Wert einer Brücken-Raupe. Bei mir, mit meinen Einstellungen, macht Slic3r keinen Unterschied zwischen der Fördermenge für eine Perimeterraupe oder einer Brücke.

ACHTUNG - diese Werte sind alle abhängig von den Einstellungen im Slicer. Unter Umständen gibt es eine Kombination von Einstellungen, die zu einem anderen Ergebnis führen würde.

Ich habe im Forum schon mehrfach (mein persönliches?) Problem aufgebracht, dass Slic3r sich die Raupenbreite irgendwo herholt. Ich habe bei allen Feldern unter „Advanced“ mittlerer weile den Düsendurchmesser eingetragen. Eine Zeitlang hatte ich bei einigen Feldern 100% eingetragen, in der irrigen Meinung dass es sich auf den Düsendurchmesser bezieht. Da lag ich falsch! Aus irgendeinem Grund nimmt Slic3r die Layerhöhe als Maßstab her. Jetzt steht bei mir überall der Düsendurchmesser. Seither weiß ich immer genau, wie viele Perimeter bei einer dünnen Wand sich ausgehen sollten, meine Überhänge sind annehmbar, und Brücken bis an die 100mm gelingen. Bei einer sehr langen Brücke kann die Qualität nicht überragend sein, da der unterste Layer ‚freischwebend‘ in der Luft gedruckt wurde. Es sind 5 oder mehr Layer nötig, bis der ‚Untergrund‘, das ‚Fundament‘ sozusagen, fest genug ist, damit die darüber liegenden Raupen korrekt auf Layerhöhe ‚gequetscht‘ werden können. Erst wenn sie richtig ‚gequetscht‘ wurden, haben sie auch die Raupenbreite mit der die SSW gerechnet hat, berühren sich seitlich auch wie erwartet, und bekommen die erwartete Festigkeit und das Aussehen.

Wenn Slic3r sich eine Raupenbreite zurechtlegt, die mehr Material erfordert als eine freischwebende Raupe benötigt, dann muss das Material irgendwo hin. Bei einer Brücke geschieht dies in der Form des Durchhängens. Bei einem Überhang wird natürlich auch mehr Material als nötig gefördert. Dieses Material, zur Vergrößerung der Raupenbreite gedacht, wird in einem größeren Maß bei der ‚Überhangseite‘ hinausgequetscht, weil der darunterliegende, stellenweise überhängende Layer durch den Materialdruck nach unten gedrückt wird – alles nicht gut für Form und Qualität.

Man kann sich die Arbeit antun und sich die theoretischen Raupenquerschnittsflächen ausrechnen, basierend darauf auch den Kompensationsfaktor ermitteln und diesen in der SSW eintragen. Diesen Wert muss man je Layer-Höhe und Düsendurchmesser einmal ermitteln. Es könnten Einflüsse durch das Material entstehen, jedoch kaum innerhalb einer Materialklasse (PLA vs ABS, als Beispiel), eventuell kann man bei schrumpfenden Materialien (z.B. ABS, ca. 2%) den Faktor um den Betrag anpassen.

Um sich die Arbeit zu vereinfachen, habe ich eine kleine Excel-Tabelle gemacht. Diese rechnet anhand der Raupenbreite, Layer-Höhe und Düsendurchmesser die Querschnitte aus, sowie das Verhältnis dieser Querschnitte. Das ergibt einen Anhaltspunkt für den ‚Brücken-Korrekturfaktor‘ den man in Slic3r eintragen kann. Damit man die Raupenbreite findet, falls man keine spezifiziert hat, sucht man ganz am Anfang des GCodes, bzw. ganz am Ende. Da sind (fast?) alle Variablen deklariert.

Dieselbe Excel-Datei kann auch zur tatsächlichen Volumens-Vergleichsmessung herhalten. Dabei wird nicht das echte Volumen ausgerechnet, sondern bloß die geförderte Filamentmenge zwischen einer Brücken-Raupe und einer Perimeter-Raupe verglichen. Dazu benötigt man ein Objekt mit einer Brücke.

Brücken-Test-Datei

Ich habe eine einfache Datei (*.stl) erstellt, um damit grob das Materialförderproblem beim Brückenschlagen deutlich zu machen. Das dargestellte Objekt ist nur ungefähr 2.5mm hoch und hat eine 100mm lange Brücke. Es eignet sich recht gut für das einfache Nachrechnen als auch für einen schnellen Druckversuch. Die Datei stelle ich in den Download-Bereich. Link hier.

Um einfach mal rechnerisch eine Überprüfung durchzuführen sind folgende Schritte durchzuführen (leider kenne ich die Begriffe nur für Slic3r und Skeinforge, falls Cura, Simplify3D, oder sonst eine Slicer-Software verwendet wird, müsst ihr euch selbst die richtigen Begriffe/Einstellungen suchen, leider):

  • 1. Objekt mit folgenden Vorgaben slicen: 0% Füllung, Layerhöhe 0.3 oder 0.4mm, („Solid Layers“ min. 1 bei „Bottom“). Die 0% Füllung macht die Datei kleiner, und das spätere Auffinden der Brücke viel leichter.
  • 2. Die entstandene GCode-Datei im Repetier-Host laden
  • 3. Unter der „Preview“-Lasche, unter „Preview“, wählt man „Show Single Layer“
  • 4. Mittels dem ‚Schiebeknopf' kann man die einzelnen Layer anwählen. Mindestens ein Layer sollte vorhanden sein, dass ungefähr so aussieht:


Hier in diesem Layer ist nur der Umriss plus die Brücke zu sehen. Man sieht, dass die unterste Raupe im Bild, ein Umriss, beinahe exakt so lang ist wie eine der Brückenraupen. Diesen Layer angezeigt lassen.


  • 5. Unter der „Preview“-Lasche, unter „G-Code Editor“ muss dieser Bereich gefunden werden. Als Hilfe kann man auf die Farbe der Zeilennummern achten. Bei jedem Layerwechsel ändert sich die Farbe. Die ersten 4-5 Farbwechsel kann man überspringen. Danach sollte man kurz nach dem ‚Layerwechsel‘ mehrere Zeilen anwählen und schauen, ob irgendwas in Gelb hervorgehoben wird, wie hier im Bild



Dann hat man den richtigen Bereich gefunden.





  • 6. Mit der Maus oder den Cursor-tasten so lange eine einzelne Zeile anwählen, bis man nur die unterste Linie in Gelb hervorgehoben sieht. Dies ist eine Umrissraupe, eine Perimeter-Raupe.
  • 7. Die zuletzt davor verwendeten X-, Y- und E-Werte (vor der gewählten Zeile) in die X1-, Y1- und E1-Felder der Excel-Tabelle eintragen (im Abschnitt: „Fördervolumenvergleich“, auf der ‚Perimeter-Raupen‘-Seite).
Hinweis: Beim E-Wert kann dieser gelegentlich in einer anderen Zeile als X & Y stehen. Ebenso kann er manches Mal 0 sein, falls er zurückgesetzt wurde (z.B. mittels „G92 E0“).
  • 8. Anschließend die X-, Y- und E-Werte aus der gewählten Zeile in die X2-, Y2- und E2-Felder eintragen. Der Verfahrweg und die geförderte Filamentmenge werden errechnet.
  • 9. Mit der Maus, oder den Tasten, eine der Brückenraupen auswählen. Aber nicht die oberste Linie! Diese wird als Perimeter-Raupe gehandelt. Wie hier im Bild, zum Beispiel:

Fehler beim Erstellen des Vorschaubildes: Datei fehlt


  • 10. Hier wird dasselbe mit den X-, Y- und E-Werte gemacht, wie unter Punkt 7, bloß auf der ‚Brückenraupe‘-Seite. Der Verfahrweg und die geförderte Filamentmenge werden errechnet.

Unter Differenz sollte ein Wert herauskommen, der in etwa dem „Bridge flow ratio“ in Slic3r entspricht.

  • 11. Diesen Wert in die SSW eintragen (z.B. bei Slic3r, unter „Bridge flow ratio“)
  • 12. Die Brücken-Test-Datei nochmals slicen und einen Probedruck versuchen.
  • 13. Hoffen
  • 14. Jubeln (hoffentlich)


Will man sich die Berechnung ersparen, kann man den Wert empirisch ermitteln und folgendes versuchen:
  • Mit der Maus, oder der Tastatur, die erste Brückenraupe finden (Im GCode von oben beginnen!). Unmittelbar vor der ersten gefundenen Brücken-Raupen-Zeile muss eine Zeile mit dem M221‑Befehl geschrieben werden. Mit dem dafür notwendigen Parameter beeinflusst man die Fördermenge. Also, vor der Brücken-Raupen-Zeile wird eine Zeile mit „M221 S95“ eingefügt (damit wird die geförderte Menge um 5% reduziert).
  • Vor der nächsten Brücken-Zeile kommt dann „M211 S90“.
  • Vor der dritten Zeile ein „M221 S85“, und so weiter, bis alle Brücken-Raupen-Zeilen davor eine Modifikationszeile stehen haben.
  • Nach der letzten Brücken-Raupen-Zeile fügt man eine Zeile ein, wo wieder die Standard-Fördermenge eingestellt wird. Also „M221 S100“ in eine eigene Zeile schreiben, damit wieder die normale Menge gefördert wird.
  • Das Objekt mit dem geänderten GCode drucken und während des Druckvorgangs, in der ‚Brückenbauphase‘ achten, ob sich bei einer der Raupen schon eine Verbesserung zeigt.
  • Mit dem „M221-Wert“ der entsprechenden Raupe wird dann in Slic3r (oder der Slicing-Software) der Korrekturfaktor für Brücken angepasst.
Als Beispiel: Beim Druck wäre die dritte Brücken-Raupe, mit „M221 S85“ davor, schon ganz gut. In der Slicing-Software steht schon beim „Brückenkorrekturfaktor“ (bei Slic3r ist das „Bridge flow ratio“) ein Wert von 0.9 (=90%). Damit wäre der neue Wert 0.85 * 0.9 = 0.765 (=77%).
  • Das Objekt mit dem geänderten Wert nochmals slicen und ausdrucken.


Hoffentlich klappt die Brücke, ansonsten den Korrekturfaktor nochmals mit 0.95 multiplizieren und Schritt 13 wiederholen.

Man kann mit dem 'Spannen' der Brücke auch übertreiben, das heißt, bei einer zu starken Reduzierung der Fördermenge kann es zum Reißen der Raupen kommen. Ebenso führt ein zu starkes Spannen zu Problemen beim Überhang.

Überhänge

Damit komme ich zum Problem des Überhangs. Da Slic3r nur für die Brücke einen Korrekturfaktor anbietet, nicht für den Überhang, muss man einen anderen Weg beschreiten. Meiner Meinung nach geht es nur durch eine (erzwungene) Reduzierung der Raupenbreite. Dadurch entsteht auf die darunter liegende Lage weniger Druck beim Extrudieren, dadurch wird die Lage weniger nach unten weggedrückt, und auch weniger Material weicht dort ungewollt aus.

Folglich muss man die Raupenbreite spezifizieren. Wird dadurch der Überhang noch immer nicht akzeptable, muss man mit der Breite noch weiter zurück (aber nicht weniger als der Düsendurchmesser!).

Ein letzter Hinweis: Je geringer die Layerhöhe desto besser kann man Überhänge meistern. Geringe Layerhöhen bedeuten aber längere Druckzeit.

Hoffentlich hilft diese Anleitung beim Brückenbau und dem Meistern der Überhänge.

mjh11