Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
As far as I can see in the code,
block->millimeters
and therebyinverse_millimeters
does not include extruder steps (see this code). Usinginverse_millimeters
to normalizeunit_vec
will therefore lead to incorrect results for non-travel moves and causejunction_cos_theta
to be incorrect as well. This PR fixes that by correctly normalizingunit_vec
in case the extruder moves.Note: I'm not too familiar with the Marlin codebase, so please have a good look at this to make sure I'm not missing something. If I'm wrong and
block->millimeters
does include extruder steps, please let me know and I'll close this.Benefits
unit_vec
will actually be a unit vector after normalization.junction_cos_theta
will be correct for non-travel moves.Related Issues
Might affect #17920, because the incorrect normalization should result in a further reduced
limit_sqr
. The effect might be too small to notice, though.