From 9bf1cf1b22aa53b6b441854a6b17c0d58b470993 Mon Sep 17 00:00:00 2001 From: Nicolas Rossi Date: Tue, 30 Jul 2013 14:09:21 +0200 Subject: [PATCH] Pre-calculate diagonal rod length squared --- Marlin/Configuration.h | 3 +++ Marlin/Marlin_main.cpp | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 158214a64..9f6065f26 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -107,6 +107,9 @@ #define DELTA_TOWER3_X 0.0 // back middle tower #define DELTA_TOWER3_Y DELTA_RADIUS +// Diagonal rod squared +#define DELTA_DIAGONAL_ROD_2 pow(DELTA_DIAGONAL_ROD,2) + //=========================================================================== //=============================Thermal Settings ============================ //=========================================================================== diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 800cc8ae2..c2fb9a728 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2254,15 +2254,15 @@ void clamp_to_software_endstops(float target[3]) #ifdef DELTA void calculate_delta(float cartesian[3]) { - delta[X_AXIS] = sqrt(sq(DELTA_DIAGONAL_ROD) + delta[X_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2 - sq(DELTA_TOWER1_X-cartesian[X_AXIS]) - sq(DELTA_TOWER1_Y-cartesian[Y_AXIS]) ) + cartesian[Z_AXIS]; - delta[Y_AXIS] = sqrt(sq(DELTA_DIAGONAL_ROD) + delta[Y_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2 - sq(DELTA_TOWER2_X-cartesian[X_AXIS]) - sq(DELTA_TOWER2_Y-cartesian[Y_AXIS]) ) + cartesian[Z_AXIS]; - delta[Z_AXIS] = sqrt(sq(DELTA_DIAGONAL_ROD) + delta[Z_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2 - sq(DELTA_TOWER3_X-cartesian[X_AXIS]) - sq(DELTA_TOWER3_Y-cartesian[Y_AXIS]) ) + cartesian[Z_AXIS];