Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-07-08 12:19:48 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-07-08 12:20:19 +0300
commit8182f9442c766e70311086822b7e36958770bef1 (patch)
treebaba28b4daff914b28f40d49dea85a38abe9996d /src
parent79af5b3a66d8aa84b8cb877a93ca69583e56eca4 (diff)
Fix for rotational-only movement with Penta Axis kinematics
Diffstat (limited to 'src')
-rw-r--r--src/Movement/DDA.cpp26
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())
{