Formelsammlung zum 3D-Druck – Teil 1
Stephan und ich hatten es die Tage davon, daß man mal ein paar mathematisch-physikalische Herleitungen für wichtige Werte im 3D-Druck im Blog veröffentlichen könnte. Na dann…
Viele werden sich sicher schon gefragt haben, wo die oft krummen Werte z.B. bei den Tips zum Kalibrieren herkommen. Das sind eigentlich nur ganz simple Berechnungen aus physikalisch vorgegebenen Werten. Die will ich hier mal etwas aufdröseln…
Vorwort:
Die Angabe der Steps/mm benötigt Marlin, da es nichts von den Eigenschaften der Steppertreiber weiß, also auf wieviele Mikroschritte die eingestellt sind und erst recht nicht, wieviele Schritte der Motor pro Umdrehung benötigt.
Die Steps sind also die Anzahl an Impulsen, die das Mainboard an die Steppertreiber-Chips geben muss, damit die Achsen einen gewissen Weg (1 mm) fahren.
1. Schritte pro mm in Z:
- Die Trapezgewinde-Spindeln haben meist 8 mm Durchmesser, das ist jetzt aber irrelevant, außer für die Steigung. Diese beträgt bei einer eingängigen Spindel (nur 1 Rille) normalerweise 2 mm.
- Verbreitet sind aber eher die 4-gängigen Spindeln (4 Rillen), die dann 8 mm Steigung haben.
-> Eine Umdrehung der Spindel ergibt also 8 mm linearen Vorschub.
- Die Stepper-Motoren drehen meist 1,8 ° pro Schritt.
- Eine ganze Umdrehung benötigt also: 360 ° / 1,8 °/Schritt = 200 Schritte.
- Da wir aber den Wert für 1 mm Vorschub brauchen teilen wir das durch 8.
-> 1 mm linearer Vorschub benötigt also 25 Schritte.
Aber: die Steppertreiber auf den Boards sind meistens auf 1/16 Mikroschritte eingestellt.
Also muss die Firmware 16 Impulse erzeugen, bis ein ganzer Schritt vollzogen ist.
-> Daher müssen wir also die 25 Schritte/mm mit 16 multiplizieren, was 400 Schritte/mm ergibt.
In Marlin also: M92 Z400
2. Schritte pro mm in X und Y:
X und Y werden normalerweise über Zahnriemen und Zahnriemenscheiben angetrieben.
Üblich sind GT2 Riemen, also ein Zahnabstand von 2 mm. Die Breite ist hier irrelevant.
Meist hat Y eine Zahnriemenscheibe mit 20 Zähnen.
-> Das ergibt also 40 mm Weg pro Umdrehung der Motorachse, auf der die Zahnriemenscheibe befestigt ist.
Wir nehmen wieder die 1,8 ° Stepper, was 200 Schritte / Umdrehung ergibt.
-> Also sind 200 Schritte / 40 mm dann 5 Schritte / mm.
Und wir haben wieder die 1/16 Mikroschritte.
-> Also 16 * 5 Schritte/mm = 80 Schritte/mm.
In Marlin also: M92 Y80
Auf X werden oft Zahnriemenscheiben mit 16 Zähnen verwendet.
Das ergibt dann 32 mm/Umdrehung, also 6,25 Schritte/mm.
-> Im Endeffekt dann 16 * 6,25 Schritte/mm = 100 Schritte/mm.
In Marlin also: M92 X100
3. Schritte pro mm in E:
Beim Extruder könnte es mit den Schritten / mm jetzt ganz wild werden, wenn man mit den Wirkkreisen der Vorschub-Ritzel zu rechnen anfangen würde. Ich lasse das aber mal sein und verweise auf die technischen Daten der Extruder-Hersteller.
Ein paar Richtwerte bei 1,8 ° Steppern:
- MK8 Extruder: 93 Schritte / mm
- Titan Extruder: 393 Schritte / mm
- BMG Extruder: 415 Schritte / mm
Aber das kann je nach Hersteller / Charge durchaus um ein paar Prozent variieren.
In Marlin für den BMG also: M92 E415
Zusammengefasst in der Marlin Configuration.h:
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 80, 400, 415 }
Womit wir bei der
4. Kalibrierung der Extruder-Schritte
wären, was das Ausgangsthema von Stephan und mir war. Die Vorgehensweise hat er hier ausführlich beschrieben.
Bei dieser Kalibrierung werden zum Test 100 mm Filament eingezogen und dann nachgemessen, ob der Drucker das auch korrekt gemacht hat.
Wie berechnet sich nun aber die korrekte Geschwindigkeit des Vorschubs beim Kalibrieren?
Es ist ja wichtig, daß die Vorschub-Geschwindigkeit beim Test der beim Drucken entspricht. Bei letzterem wird diese aber über die Fahrgeschwindigkeit des Kopfes und den zurückgelegten Weg definiert, beim Test steht der Kopf jedoch still. Also muss das erstmal berechnet werden.
Der Wert den die Slicer in die G1 Befehle hinter E schreiben ist die Länge des einzuziehenden Filaments. Extrudiert wird aber natürlich in Linienbreite mal Schichthöhe.
Wir nehmen also mal an:
- 0,40 mm Linienbreite
- 0,20 mm Schichthöhe
- 60 mm/s Druckgeschwindigkeit (3600 mm/min)
- 1 s Druckdauer
- -> 60 mm gedruckter Weg
-> Das ergibt dann ein Volumen von 0,4 mm * 0,2 mm * 60 mm = 4,8 mm³
Dann gehen wir mal von Filament mit 1,75 mm Durchmesser aus.
-> Das ergibt einen Flächeninhalt von (1,75 mm / 2)² * Pi = 2,40… mm².
Um auf die 4,8 mm³ Volumen zu kommen, muss der Extruder also 2 mm Filament fördern, egal wie schnell gerade gefahren wird. Wir haben oben 60 mm/s also 3600 mm/min festgelegt.
-> Der Druckbefehl wäre also: G1 X60 E2 F3600
Wir wollen aber nicht 2 mm sondern 100 mm fördern.
Da wir ja nicht tatsächlich den Kopf fahren lassen, können wir den X-Wert weglassen und könnten den Befehl einfach 50 mal wiederholen. Das macht aber keinen Sinn, wir wollen ja einen konstanten Vorschub über die ganzen 100 mm.
Also müssen wir die Geschwindigkeit an die gewünschte Länge anpassen, also 1/50 Geschwindigkeit bei 50-facher Länge:
-> 3600 mm/min / 50 = 72 mm/min.
Der Befehl für 100 mm Filamentvorschub lautet also:
G1 E100 F72
Der Vorschub von 100 mm Filament dauert also ca. 83 s (100 mm / (72 mm / 60 s)).
Wenn Ihr höhere Geschwindigkeiten als meine angenommenen 60 mm/s verwendet, z.B: beim Infill, solltet Ihr die F72 natürlich entsprechend erhöhen, also z.B. bei 90 mm/s auf F108. Der Test soll ja die Praxiswerte möglichst exakt nachbilden.
Dasselbe trifft natürlich auch bei anderen Linienbreiten, Schichtdicken oder Düsendurchmessern zu.
Bei einer 0,8 mm Düse müsste man das also mit 4 multiplizieren, siehe dazu auch Teil 2 der Formelsammlung, Link weiter unten.
(Edit, 23.05.2021: Denkfehler und damit Ergebnis korrigiert, Rechenweg verdeutlicht…)
Übrigens:
Hier treten nirgends in den Ergebnissen Nachkommastellen auf, erstens kommen hier immer Ganzzahlen heraus und zweitens ist das m.E. Hokuspokus. Beim simplen, nicht untersetzten Mk8 Extruder kann ich eine Kommastelle ja noch verstehen.
Und zu den krummen Schichthöhen auf x Nachkommastellen, die andere Quellen propagieren: wir haben oben hergeleitet, daß die meisten Z-Achsen exakt 25 Schritte / mm machen.
Das ergibt also ganzzahlige Vielfache von 0,04 mm als Schichthöhen. Die Mikroschritte sind nicht physikalisch vorgegeben. Die einzige fixe Größe ist die Gradzahl der Stepper, die sich aus der Anzahl seiner Elektro- und Permanentmagneten ergibt.
Oh – muss ich meine 0,25er Schichten nochmals überdenken? 😉
Nö, muss ich nicht, da leider nicht sicher ist, daß Z=0 auf die Position eines vollen Schrittes passt, sondern doch die Mikroschritte relevant sind. Also 0,0025 mm oder 1/400 mm, man kann Schichthöhen also feiner als in Hundertstel Millimeter abstufen, was aber keine Qualitätssteigerung bewirkt.
Eventuell könnte man die Druckqualität dadurch optimieren, daß man den Steppertreiber für Z auf volle Schritte konfiguriert, die Z-Steps entsprechend anpasst und dann doch Vielfache von 0,04 mm als Schichthöhe nimmt. Muss ich mal testen…
Wir stellen also fest, daß unsere 3D-Drucker schon in der fast statischen Z-Achse keine Präzisionsmaschinen wie beispielsweise industrielle CNC-Fräsen sind. Dafür sind sie aber glücklicherweise doch etwas billiger.
Und jetzt noch was zu Linienbreite und Schichthöhe in Bezug zum Düsendurchmesser.
Wir gehen wieder von einer Düse mit einem Lochdurchmesser von 0,4 mm aus.
Also kommt aus der Düse kommt eine runde Wurst mit einem Durchmesser von 0,4 mm heraus.
Gedruckt wird jedoch eine dicke Linie, idealisiert hat diese einen rechteckigen Querschnitt.
Die Fläche eines Kreises ist r² * Pi, r ist der halbe Durchmesser.
Hier also 0,2 mm ^2 * Pi = 0,12566… mm²
Die Fläche eines Rechteckes ist a*b. Hier ist a die Linienbreite, also 0,4 mm, b die Schichthöhe. Um die maximal sinnvolle Schichthöhe auszurechnen, müssen wir den Betrag der Kreisfläche als den des Rechtecks setzen und durch die Linienbreite teilen.
Hier also (0,2 mm ^ 2 * Pi) / 0,4 mm = 0,1 mm * Pi = 0,314… mm.
-> Also ist das Verhältnis der maximalen Schichthöhe zur Linienbreite genau Pi / 4 (0,314 / 0,4) , bzw. grob 75 %.
Die Linienbreite auf exakt den Düsendurchmesser zu setzen ist übrigens unserer Meinung am sinnvollsten. Schmaler oder breiter kann die Öffnung ja nicht werden, das wird nur versucht durch die Fördermenge anzupassen, was logischerweise aber unpräzise ist.
Hier gibt es eine Fortsetzung:
https://drucktipps3d.de/formelsammlung-zum-3d-druck-teil-2/
Ich hab das Genöle mal entfernt. Kommentarfunktion ist hier erst mal zu.
Danke für die ausführliche Herleitung.
Dass durch eine 0,4er Düse nur ne 0,4er Wurst gedrückt wird ist so aber eher untypisch für Polymere, Stichwort „Strangaufweitung nach der Düse“. Das hat mit der Struktur der Polymerketten zu tun.
Mit der Expansion hast Du sicher recht, das sieht man ja, wenn man in die Luft extrudiert.
Bei max. 0,3 mm Schichthöhe, Geschwindigkeiten zwischen 30 und 60 mm/s und sofortiger Abkühlung durch den Bauteillüfter dürfte der Effekt aber zu vernachlässigen sein. Sonst würde das Drucken ja nicht funktionieren, weil das von den Slicern und der Firmware sicher nicht mit eingerechnet wird.
Du darfst im Forum aber gerne ausführlich was dazu schreiben, wenn Du Dich da auskennst, ich habe das nicht studiert. 😉
Streit unter den Mods? Nein! Tatsächlich haben Alfrank und ich gestern genau über das Thema gegrübelt. Ich hatte schon einen Beitrag zum Thema fertig als hier der 4Max Pro auftauchte und ich den Beitrag dann doch zurückgehalten habe. Das ist bislang der erste Drucker bei mir, der dieses so deutlich zeigt.
Beim Druck ist alles wie Alex geschrieben hat! 0,4mm Linie mit 0,4mm Düse und wenn ich die Breite im Slicer etwas größer wähle auch mal 0,5mm. Bei anderen Druckern kann ich in die Luft extrudieren und die Wurst messen. Die Wurst hat den Düsendurchmesser. Bei meinem 4max Pro kommt ein fetter Knüppel aus der 0,4mm Düse. Also geb ich Dir beim Stichwort „Strangaufweitung nach der Düse“ recht aber nur beim freien Extrudieren. Beim Druck stimmen die Aussagen von Alex wieder.
Ah das Wort habe ich schon gesucht.. „Strangaufweitung nach der Düse“ also. Thx 🙂
Moin,
die Strangaufweitung entsteht aber nur, wenn in den „freien“ Raum extrudiert wird.
Das heißt, Nozzle in der Luft und Extruder gibt Attacke.
Wenn ich das Material aber Ablege und es anhaftet / ablege (Druckbett; 2ter Layer), kann ich es mittels der Druckgeschwindigkeit beliebig strecken.
Dann gehen auch LW unter 0,4mm. Man muß nur mit dem Flow unter 100% runtergehen.
Dazu muss man sich aber bis ins kleinste in die Extrusion reindenken inklusive von MFI (Moldflowindex), Volumenstrom und Kapilarwirkung..
Macht dann Sinn, wenn man Stringing und Blobs nicht mehr mit einer Temperatursenkung beikommt.
Für den „normalen“ Anwender also absolut irrelevant.
@alfrank; sehr schöner Beitrag
Danke! … sehr hilfreich!
Danke für den Beitrag!