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:54 +0300 |
commit | 80adc441d72440b60e393ef700c81427d301f3d3 (patch) | |
tree | 2fb7731e459993e530e320ff6ca1f48179fcf050 | |
parent | d253bb7b92326761b2c764aff264c8fa7eae02cd (diff) |
Fix for rotational-only movement with Penta Axis kinematics
-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()) { |