Auf den richtigen Absatz bin ich gekommen: V 0.91.59 motion.h Zeile 320:
Code: Alles auswählen
if(isZNegativeMove() && Printer::isZMinEndstopHit())
{
Com::printFLN( PSTR( "isZNegativeMove() && Printer::isZMinEndstopHit() 3333" ) ); // bei homing, bei Z0.05, nicht bei 1. Layer mit Z0.1!
setZMoveFinished();
}
Code: Alles auswählen
if ( ( isZNegativeMove() && Printer::isZMinEndstopHit() && Z-Kompensation aktiv && aktuelle Z Position <= Wert HeatBedMatrix bei momentanen X,Y + selbst fesgelegten offset ) || ( isZNegativeMove() && Printer::isZMinEndstopHit() && Z-Kompensation nicht aktiv ) || ( isZNegativeMove() && Printer::isZMinEndstopHit() && aktuell ein home ausgeführt wird ) )...
wenn eine negative Z Bewegung (heizbett nach oben) und der Z-Min-Endschalter betätigt wird und die Z-Kompensation aktiv ist und die aktuelle Z-Position kleiner als der Wert der HeatBedMatrix bei momentanen X,Y Wert + selbst festgelegten offset z.b. 0,05mm
oder
eine negative Z Bewegung (heizbett nach oben) und der Z-Min-Endschalter betätigt wird und die Z-Kompensation nicht aktiv ist
oder
eine negative Z Bewegung (heizbett nach oben) und der Z-Min-Endschalter betätigt wird und ein home ausgeführt wird
Dann würde auch der Z-Wert im Display auch die tatsächliche reale Position entsprechen, solange der offset nicht unterfahren wird. Der offset ist nötig um zu verhindern dass die Düse übers Heizbett kratzt.