[FFF] [Marlin] Control -> Filament -> E in mm3

Awatar użytkownika
FlameRunner
Zasłużony
Postów w temacie: 2
Posty: 6568
Rejestracja: 15 kwie 2016, 21:26
x 2056

[FFF] [Marlin] Control -> Filament -> E in mm3

Post autor: FlameRunner »

====================
Tl;dr: jeśli przy "kalibracji ekstrudera" wychodzi Ci, że podaje około 41,6 mm na zadane 100 mm i że należałoby zwiększyć liczbę kroków do około 240% pierwotnej wartości, to wiedz, że coś się dzieje.
====================


W gcode podawane są "gołe liczby", bez jednostek, przykładowo:

Kod: Zaznacz cały

G1 X50 Y50 E20
G1 X60 Y50 E21
Żeby je zinterpretować, trzeba przyjąć kilka założeń, na przykład:
  • pozycje są bezwzględne (zawsze względem pozycji "0" - w przeciwieństwie do pozycjonowania względnego, czyli względem pozycji poprzedniej)
  • pozycje X, Y i Z są podawane w milimetrach
  • E to jest długość nitki materiału, która ma być przepchnięta przez ekstruder
Przy takich założeniach, powyższe dwie linie zinterpretować należy jako:
1. Pojedź do punktu X = 50 mm, Y = 50 mm przesuwając w trakcie filament do pozycji E = 20 mm.
2. Pojedź do punktu X = 60 mm, Y = 50 mm przesuwając w trakcie filament do pozycji E = 21 mm, czyli: przesuń X o +10 mm przesuwając w trakcie nitkę filamentu o +1 mm.

Użyta jednostka jest kwestią czysto umowną, można na przykład przyjąć, że jednostką będzie wielokrotność szerokości ludzkiego kciuka i to też będzie działać pod warunkiem, że i slicer przy generowaniu g-code, i drukarka przy interpretowaniu będą korzystać z tego samego założenia. Problem pojawia się, gdy inne założenia są wykorzystane w slicerze przy generowaniu g-code, a inne przez drukarkę przy jego interpretowaniu.

Tutaj docieramy do opcji z tytułu wątku.

Włączenie "E in mm3" powoduje, że drukarka liczbę występującą w g-code przy parametrze E trakuje nie jako długość filamentu w jednostce mm, a jako objętość filamentu w jednostce mm^3 i sama przelicza to na długość filamentu korzystając z podanej w "Fil. Dia." średnicy filamentu. Jeśli i w slicerze będzie zaznaczone coś w stylu "volumetric extrusion", to problemu nie będzie. Jeśli jednak slicer będzie generował g-code z założeniem, że liczba przy E ma być długością, a drukarka będzie ją interpretować jako objętość, to będzie problem i nawet można policzyć, jak duży.

1 mm nitki filamentu o średnicy 1,75 mm to jest 1*3,14*(1,75/2)^2=~2,4 mm^3 materiału.
1 mm^3 materiału to jest 1/(1*3,14*(1,75/2)^2)=~0,416 mm nitki filamentu o średnicy 1,75 mm .

Slicer będzie miał na myśli "wysuń 1 mm nitki filamentu", a drukarka z włączonym "E in mm3" zrozumie to jako "wypluj 1 mm^3 materiału, czyli ~0,416 mm nitki filamentu".
dragonn, Pjoter, dziobu, Adinfo, Abys, 1kamil, Cosik, Norbert
Awatar użytkownika
FlameRunner
Zasłużony
Postów w temacie: 2
Posty: 6568
Rejestracja: 15 kwie 2016, 21:26
x 2056

Re: [FFF] [Marlin] Control -> Filament -> E in mm3

Post autor: FlameRunner »

Wskazówki praktyczne:
  • Opcja "E in mm^3" powinna być wyłączona - chyba że wiesz, co robisz i w slicerze też włączysz volumetric extrusion.
  • Jeśli przy włączonym "E in mm^3" zrobiłeś (niepotrzebną) kalibrację ekstrudera i zwiększyłeś liczbę kroków ekstrudera do około 240% pierwotnej wartości, to po wyłączeniu tej opcji musisz oczywiście przywrócić pierwotną liczbę kroków. Przy gotowych drukarkach takich jak Ender-3 fabrycznie ustawiona liczba kroków dla ekstrudera powinna być dość poprawna, w grę powinno wchodzić co najwyżej precyzyjne dostrojenie o nie więcej niż kilka, góra kilkanaście, procent.
JGFTW
ODPOWIEDZ

Wróć do „Baza wiedzy, poradniki”