Seite 3 von 9

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 07:52
von druckttoll
Moin!

Was ich mir wünsche:
Per G-Code Z = 0,3 mm einstellen und Z = 0,3 mm bekommen. Mit eingeschalteter Z-Kompensation über das ganz Druckbett.
Das wäre so geil! ;)

Eine erfolgreiche Restwoche und möglichst viel Spaß bei der Arbeit!
Ciao for now
Jörg

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 08:35
von RF1000
Hallo Jörg,

Per G-Code Z = 0,3 mm einstellen und Z = 0,3 mm bekommen. Mit eingeschalteter Z-Kompensation über das ganz Druckbett.
Und wenn es per G-Code bis Z = 100 mm gehen würde dann soll die Höhe auch über das ganze Druckbett exakt 100 mm sein, auch wenn das bedeuten kann dass die Z-Kompensation während dem gesamten Druck aktiv bleiben muss und die oberste Schicht dann auch nicht eben ist (sondern genauso uneben wie das Druckbett)?

Wir werden jetzt dein Testplättchen durch unsere RF1000 jagen und melden uns dann später dazu :-)


mfG
RF1000

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 12:09
von rf1k_mjh11
Jörg/drucktnich,

In den ersten 1-3 Layern spielt auch die Betttemperatur eine gewisse Rolle. Wie viel, weiß ich nicht. Aber die Temperaturen könnten gerade in den Ecken von der eingestellten abweichen.
Nicht unbedingt die Ursache, aber ein Beitrag?

mjh11

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 16:24
von druckttoll
Hallo RF1000,

Danke für die Ausdauer und die schnellen Antworten. Echt klasse!

Das Grundprinzip, die erste Schicht exakt, dann Unebenheiten ausgleich und dann ab 3 mm einen nicht verzogenen planen Druck abliefern, finde ich gut! So ist dann nur die Unterseite so "schief" wie das Druckbett, der Rest passt dafür perfekt. Prima Lösung!

Die optimale Konfiguration des Slicers war mit der .48er Firmware einfacher, weil die erste und der letzte Schicht ähnlichen bis gleichen Optimierungsbedarf hatten. Entweder wurde für beide zu viel, genau richtig, oder zu wenig Material aufgetragen. Extrusion Width und Multiplier wirkten sich auf beide Schichten gleich aus. Alles gut.
Seit der .51er Firmware tue ich mich schwer bei der Slicer-Konfiguration. Die erste Schicht bekommt viel zu viel Material und die oberste nicht. Hier kann ich mit der Extrusion Width und dem Z-Offset jonglieren, was leider nicht so gut funktioniert.

Was ist mir aufgefallen? Die .48 druckte die erste Schicht dicker als vorgegeben, die .55 druckt sie dünner als vorgegeben - auf meinem Drucker. Bei gleichem Materialfluss ergeben sich daraus die bekannten Druckbilder. Das ist das, was mir aufgefallen ist. Würde es gelingen, die Stärke für die erste Schicht genau einzuhalten, müsste alles gut sein. So meine Annahme und mein Wunsch.

Was ich nicht beurteilen kann ist, ob das nur bei mir so ist. Vielleicht ist ja auch etwas anderes mit meinem Drucker nicht in Ordnung? Wenn ich also etwas prüfen kann / soll - sehr gerne!

Vielen lieben Dank!
Ciao for now
drucktnich

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 16:34
von riu
Also bei meiner .55 ist das auch so. Die erste Schicht ist zu dünn. Ich muss immer korrigieren. Wahrscheinlich nimmt der Drucker die maximale Tiefe des Ergebnisses des Headbescans und addiert darauf den ersten Layer. Dann kann es bei unseren krummen Keramikplatten schon sein das es meist nicht passt.

Ist nur eine Vermutung. Aber ich sehe ja bei der Z-Tiefe werte die nicht dem ersten Layer entsprechen, daher die Vermutung.

Ich habe mit 0,1 Layerdicke gedruckt 0,3mm Düse und erster Layer 0,2. Aber in Z steht bei der Vorpumpspur 0,05 mm und es kommt auch kaum was auf dem Druckbett an.

Mein Vorschlag: 0,0 mm einstellen und von da an die Matrix einbeziehen. Über eine Layerdicke von mximal 1 mm. 3 mm ist zuviel. Oder das Ganze optional konfigurierbar zu machen.

Gruß,
Udo

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 19:24
von RF1000
Hallo,


ich habe im Anhang einen ganz einfachen G-Code abgelegt, der ein Quadrat und ein Doppelkreuz über fast die gesamte Druckplatte erzeugt. Dabei wird definitiv immer nur exakt 1 Linie gezogen. Dieses "Testobjekt" kann daher zeigen, wie groß der Abstand zwischen Heizplatte und Extruder ist, und zwar für alle angefahrenen x/y-Positionen (bei den Tests mit gefüllten Flächen ist das ja nicht so einfach weil sich das Material zwischen zwei gedruckten Linien auftürmen kann). Die dazu nötigen Schritte sind:

- RF1000 einschalten
- G-Code drucken (dauert keine 5 Minuten)
- die Dicke der erzeugten Linien messen

Der G-Code bzw. die verwendeten Temperaturen sind für PLA gedacht, die Temperaturen können aber natürlich auch ganz einfach für ABS (oder andere Materialien) angepasst werden. Der G-Code ist auch für die 0,5 mm Düse gedacht, wenn eine andere verwendet wird sollte sich aber nur die Linienbreite (und nicht die Linienhöhe) verändern.

Der G-Code setzt den Offset über "M3006 S0" auf 0 und stellt Z auf 0,3 mm ein, d.h. auch die Höhe der gedruckten Linien sollte 0,3 mm sein. Wenn das auch auf eurem Drucker klappt dann sollte man davon ausgehen können, dass die Firmware den Abstand zwischen Extruder und Heizbett korrekt (= exakt entsprechend dem G-Code) einstellt. Während dem Drucken kann man auf dem Display des RF1000 auch immer schön sehen wie die Z-Kompensation arbeitet (und man kann auch sehen/fühlen, dass sich die Spindeln leicht bewegen).

Im Anhang sind zwei G-Code Dateien, eine die 1 mm Filament pro 40 mm Bewegung in XY-Richtung verwendet und eine, die 1 mm Filament pro 20 mm Bewegung in XY-Richtung verwendet. Die zweite Datei erzeugt also breitere Linien, die Höhe der Linien ist aber identisch.
Wenn jemand will kann er zum Spaß einmal die Zeile mit M3001 auskommentieren, sodass die Z-Kompensation nicht aktiviert wird ... danach möchte ich aber keine Beschwerden darüber bekommen, dass die Schichthöhe nicht passt :-)

Da wir nun überprüft haben wie die Firmware G-Codes in Schichthöhen umsetzt können wir feststellen: Wenn es beim Füllen von Objekten bei der ersten Schicht dazu kommt, dass zu wenig oder zu viel Material vorhanden ist, dann muss es an den Slicer-Einstellungen liegen. Wobei man "etwas zu viel" Material bei der ersten Schicht ja normalerweise ja sogar haben will, damit die Haftung zwischen dem Druckbett und der 1. Schicht besser ist. Die bei "etwas zu viel" Material entstehenden Schichten bei der 1. Schicht verschwinden ja bei den darüber liegenden Schichten (so soll es zumindest sein).

Wir werden morgen noch ein Beispiel mit 9 über den Heiztisch verteilten Quadraten machen, die mit SketchUp gezeichnet und mit Slic3r geslict worden sind. Das entspricht dann auch den Beispielen von drucktnich.

Derweil habe ich noch die folgenden Fragen an Udo:
Ich muss immer korrigieren.
Wie korrigierst du?
Wahrscheinlich nimmt der Drucker die maximale Tiefe des Ergebnisses des Headbescans und addiert darauf den ersten Layer.
.

Nein das macht er nicht :-) Nach dem Heizbettscan weiß die Firmware den minimalen Abstand zwischen Extruder und Heizbett an der Z-Position, wo der Z-Min Endschalter auslöst. Das ist der Offset der zusammen mit der Heizbettmatrix ausgegeben wird. Für jede beliebige XY-Position kann ebenfalls der exakte Abstand zwischen Extruder und Heizbett ausgerechnet werden (wiederum für die Z-Position, wo der Z-Min Endschalter auslöst). Solange die tiefste Stelle des Heizbetts weniger als HEAT_BED_Z_COMPENSATION_MAX_MM vom Auslösen des Z-Min Endschalters weg ist (Default = 3 mm) sollten der Scan und die spätere Kompensation funktionieren - und ich gehe einmal davon aus, dass keine der verwendeten Keramikplatten derart krumm ist.
Aber ich sehe ja bei der Z-Tiefe werte die nicht dem ersten Layer entsprechen ...
Wo siehst du die? Im Display des RF1000? Der dort angzeigte Z-Wert ist der Abstand von der Z-Position, wo der Z-Min Endschalter ausgelöst hat. Dieser Wert muss daher vom durch den G-Code gewünschten Z-Abstand abweichen, solange die Z-Kompensation aktiv ist.
Mein Vorschlag: 0,0 mm einstellen und von da an die Matrix einbeziehen. Über eine Layerdicke von mximal 1 mm. 3 mm ist zuviel. Oder das Ganze optional konfigurierbar zu machen.
Den Teil verstehe ich nicht. Wo soll 0,0 mm eingestellt werden? Über welche Z-Höhe kompensiert werden soll hängt ein bisschen vom Druckbett ab - wenn das z.B. um 1 mm hängt dann sollte die Z-Kompensation zumindest auf den ersten 2 mm (laut G-Code) arbeiten damit der Unterschied ausgeglichen werden kann. Und der Wirkungsbereich der Z-Kompensation ist bereits jetzt einstellbar, zumindest in Configuration.h:
- Solange der G-Code eine Z-Höhe von weniger als HEAT_BED_Z_COMPENSATION_MIN_MM (Default = 0,2 mm) vorgibt passiert keine Kompensation - in dem Z-Bereich fährt die Firmware den Extruder lediglich parallel zum Heizbett auf und ab.
- Wenn der G-Code eine Z-Höhe von mehr als HEAT_BED_Z_COMPENSATION_MAX_MM (Default = 3mm) erreicht hat soll die Z-Kompensation aufhören. Bis zu dieser Höhe muss die Kompensation/der Ausgleich also fertig sein. Ab dieser Höhe steht dann im Display des RF1000 als Z-Wert also exakt das, was der G-Code haben will und auch die Z-Achse wird nur mehr durch die G-Codes bewegt.
Die Z-Kompensation würde auch funktionieren (und sollte dabei keine schlechteren Ergebnisse produzieren) wenn man HEAT_BED_Z_COMPENSATION_MAX_MM auf z.B. 100 mm stellen würde - in dem Fall wäre die Anpassung pro Schicht viel kleiner und die Z-Kompensation müsste viel länger arbeiten. Ich sehe keinen Grund dafür, dass man HEAT_BED_Z_COMPENSATION_MAX_MM auf einen noch kleineren Wert als 3 mm stellen sollte.


mfG
RF1000

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 19:26
von rf1k_mjh11
Udo/riu,

Die Z-Kompensation schon bei 1mm Abschließen lassen ist auch nur sinnvoll wenn die Layer-Höhe, wie bei dir (z.B. 0.1mm), recht klein ist.
Hätte einer eine 0.8er Düse, mit einer Layerhöhe von 0.5 oder 0.6, wäre schon nach dem zweiten Layer Schluß. Auch bei 0.5 mit 0.4 Layerhöhe ist nach dem dritten Layer vorbei.
Besser wäre statt einer vorgegebenen Höhe, eine vorgegebene Layer Anzahl, als Beispiel 6 oder 12 Layern. Wobei auch hier dieser Wert von dem Maximalunterschied (höchster Punkt zu tiefstem Punkt) abhängig sein sollte. Hätte einer das Glück, ein fast ebenes Bett sein eigen zu nennen, könnte die Kompensation nach nur 6 Layern aufhören , hat er ein stärker verzogenes Bett, wird die Firmware mehr Layer brauchen um den Unterschied 'aufarbeiten' zu können - ohne allzugroße Sprünge verwenden zu müssen.

mjh11

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 19:53
von riu
Hallo mjh.

Ich korrigiere mit den Tasten am Drucker. Auch die Z Position entnehme ich dem Display am Drucker.

0 mm ist da wo der Endschalter auslöst. Das sollte im Regelfall 0,2 mm über dem Druckbett sein. Nun hat der Headbescan eine Matrix erzeugt die ja von dem definierten 0 Punkt (Endschalter) aus erstellt wird. Warum wird der dann nicht benutzt?

Beispiel:
Postition X 100 und Y 100 hat in der Matrix z.B. -0,03 mm Wenn ich nun einen 0,2 mm Layer darüber abfahren will muss die Düse real 0,37 mm über dem Druckbett sein weil das Druckbett ja dort 0,03 mm unter definiert 0 liegt und die Düse am Endschalter 0,2 mm über dem Druckbett steht. + und - kannst du auch vertauschen, weiss nicht wie der RF1000 rechnet.

Die 0,2 mm der Düse über dem Bett beim auslösen des Endschalters kannst du auch auf die Matrix rechnen. Das Ergebnis bleibt das Gleiche.

Das ist ja nicht so schwer. Wenn ich einen Scan gemacht habe und die Düse so nah über dem Druckbett ist das kaum noch Filament raus kommt stimmt da ja wohl was nicht oder???

Gruß,
Udo

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 20:04
von RF1000
Hallo Udo,

Wenn ich einen Scan gemacht habe und die Düse so nah über dem Druckbett ist das kaum noch Filament raus kommt stimmt da ja wohl was nicht oder???
Da stimme ich dir natürlich zu. Wobei man mit dem Test-G-Code von meinem vorigen Beitrag ja sehen sollte, dass der Abstand zwischen Düse und Heizbett auf exakt den Wert eingestellt wird, den der G-Code vorgibt. Kannst du einmal probieren, ob dieser G-Code bei dir die gewünschten Linien mit einer Höhe von 0,3 mm erzeugt? Wenn nein dann würde mich noch interessieren ob das Verhalten nach einem erneuten Heizbettscann immer noch gleich bleibt. Wenn ja dann könnte bei deinen bisherigen G-Codes ein M3006 enthalten sein, das den Abstand zwischen Heizbett und Düse verringert.

Die Firmware könnte theoretisch natürlich die vorhandene Matrix hernehmen um die aktuelle Z-Position dort mit 0 anzuzeigen, wo die Düse das Heizbett trifft. Aber diese 0 ist auf jeder X/Y Position woanders, d.h. der Z-Wert würde sich ändern wenn man in X- und Y-Richtung fährt (und Z gleichzeitig NICHT fährt). Ich weiß nicht ob diese Art der Darstellung so viel verständlicher wäre.
Zusätzlich würde ein derartiger Z-Wert im Display auch noch rauf- und runterlaufen wenn die Z-Kompensation gar nicht mehr aktiv ist ... und das wäre auch nicht wirklich sinnvoll.

Ungeachtet dessen würde die geänderte Dastellung im Display des RF1000 ja nichts am tatsächlichen Abstand zwischen Düse und Heizbett ändern :-)


mfG,
RF1000

Re: 0.91.55 (53) Thema mit der ersten Schicht (Layer)

Verfasst: Do 26. Mär 2015, 20:05
von riu
Die Z-Kompensation würde ich Linear ausklingen lassen wenn es nach mir ginge. Nicht einfach an und im nächsten Layer aus, sondern so früh es über geht. Das lässt dich anhand der Layer und der aktuellen Matrixwerte die angefahren werden errechnen. 3 mm sind einfach mal zuviel finde ich. Das bedeutet immer in dieser Höhe gibt es Störungen in der Geometrie. Es sollte in 2-3 Layern ausklingen. Sobald die Kompensation nicht mehr benötigt wird ist dann wenigstens die Geometrie in Z korrekt. X und Y sollte das ja nicht tangieren (ausser in der Perimeterbreite).

Ich denke diese buckeligen Keramikplatten sind echt ein Witz. Wir haben hier einen Drucker mit einer Zauflösung kleiner 10 Mikron aber Druckbetten die mal eben 1 mm durchhängen. Das ist aberwitzig.

Gruß,
Udo

PS: Sorry kann sein das ich auch zuviel erwarte.