From bb89947e1263016f4bcfe4c2c40527bcb932b99a Mon Sep 17 00:00:00 2001 From: Adrian Bowyer Date: Sat, 14 Sep 2013 00:14:37 +0100 Subject: [PATCH] Z probing movements all implemented, but Z values not yet recorded. --- Move.cpp | 13 + Move.h | 2 +- Release/RepRapFirmware.bin | Bin 122464 -> 123216 bytes Release/RepRapFirmware.map | 3866 ++++++++++++++++++------------------ 4 files changed, 1956 insertions(+), 1925 deletions(-) diff --git a/Move.cpp b/Move.cpp index f3f126b..43ca22d 100644 --- a/Move.cpp +++ b/Move.cpp @@ -549,6 +549,19 @@ void Move::InverseTransform(float move[]) move[2] = move[2] - (aX*move[0] + aY*move[1] + aC); } +void Move::SetProbedBedPlane() +{ + float x, y, z; + for(int i = 0; i < NUMBER_OF_PROBE_POINTS; i++) + { + if(!reprap.GetGCodes()->GetProbeCoordinates(i, x, y, z)) + platform->Message(HOST_MESSAGE, "Attempt to set bed plane when probing is incomplete!\n"); + } + aX = 0.0; + aY = 0.0; + aC = 0.0; +} + // FIXME // This function is never normally called. It is a test to time diff --git a/Move.h b/Move.h index fd36f55..2259e40 100644 --- a/Move.h +++ b/Move.h @@ -338,7 +338,7 @@ inline void Move::HitLowStop(int8_t drive, LookAhead* la) { if(drive = Z_AXIS) { - //lastZHit = xxx; + lastZHit = 0.0; } la->SetDriveZeroEndSpeed(0.0, drive); } diff --git a/Release/RepRapFirmware.bin b/Release/RepRapFirmware.bin index e57b52400858d25a79fd0ad8527b18bc2c7788d2..c8f095776f63298a24ce4c97a11b40fc8d82b4a5 100755 GIT binary patch delta 15589 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 delta 14978 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 g;K9#XTd-x?75a&#@)H_X6MdEH