diff options
author | David Crocker <dcrocker@eschertech.com> | 2021-07-08 12:19:48 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2021-07-08 12:20:19 +0300 |
commit | 8182f9442c766e70311086822b7e36958770bef1 (patch) | |
tree | baba28b4daff914b28f40d49dea85a38abe9996d /src | |
parent | 79af5b3a66d8aa84b8cb877a93ca69583e56eca4 (diff) |
Fix for rotational-only movement with Penta Axis kinematics
Diffstat (limited to 'src')
-rw-r--r-- | src/Movement/DDA.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/Movement/DDA.cpp b/src/Movement/DDA.cpp index 1ff3fa12..645b31e3 100644 --- a/src/Movement/DDA.cpp +++ b/src/Movement/DDA.cpp @@ -289,11 +289,23 @@ bool DDA::InitStandardMove(DDARing& ring, const RawMove &nextMove, bool doMotorM if (drive < numVisibleAxes) { + const float positionDelta = endCoordinates[drive] - prev->GetEndCoordinate(drive, false); + if (positionDelta != 0.0) + { + if (reprap.GetPlatform().IsAxisRotational(drive)) + { + rotationalAxesMoving = true; + } + else + { + linearAxesMoving = true; + } + } + int32_t delta; if (doMotorMapping) { delta = endPoint[drive] - positionNow[drive]; - const float positionDelta = endCoordinates[drive] - prev->GetEndCoordinate(drive, false); directionVector[drive] = positionDelta; if (positionDelta != 0.0 && (Tool::GetXAxes(nextMove.tool).IsBitSet(drive) || Tool::GetYAxes(nextMove.tool).IsBitSet(drive))) { @@ -308,20 +320,12 @@ bool DDA::InitStandardMove(DDARing& ring, const RawMove &nextMove, bool doMotorM directionVector[drive] = (float)delta/reprap.GetPlatform().DriveStepsPerUnit(drive); } +#if 0 // debug only if (delta != 0) { -#if 0 // debug only stepsRequested[drive] += labs(delta); -#endif - if (reprap.GetPlatform().IsAxisRotational(drive)) - { - rotationalAxesMoving = true; - } - else - { - linearAxesMoving = true; - } } +#endif } else if (LogicalDriveToExtruder(drive) < reprap.GetGCodes().GetNumExtruders()) { |