Commit | Line | Data |
---|---|---|
fff1e42d | 1 | #include "CoreXZSolution.h" |
807b9b57 | 2 | #include "ActuatorCoordinates.h" |
3b0cf08f JJ |
3 | #include "ConfigValue.h" |
4 | #include "checksumm.h" | |
fff1e42d | 5 | |
728f1037 | 6 | #define x_reduction_checksum CHECKSUM("x_reduction") |
fff1e42d JJ |
7 | #define z_reduction_checksum CHECKSUM("z_reduction") |
8 | ||
9 | CoreXZSolution::CoreXZSolution(Config* config) | |
10 | { | |
771a26cf | 11 | x_reduction = config->value(x_reduction_checksum)->by_default(1.0f)->as_number(); |
3b0cf08f | 12 | z_reduction = config->value(z_reduction_checksum)->by_default(3.0f)->as_number(); |
fff1e42d JJ |
13 | } |
14 | ||
807b9b57 | 15 | void CoreXZSolution::cartesian_to_actuator(const float cartesian_mm[], ActuatorCoordinates &actuator_mm ){ |
728f1037 JJ |
16 | actuator_mm[ALPHA_STEPPER] = (this->x_reduction * cartesian_mm[X_AXIS]) + (this->z_reduction * cartesian_mm[Z_AXIS]); |
17 | actuator_mm[BETA_STEPPER ] = (this->x_reduction * cartesian_mm[X_AXIS]) - (this->z_reduction * cartesian_mm[Z_AXIS]); | |
fff1e42d JJ |
18 | actuator_mm[GAMMA_STEPPER] = cartesian_mm[Y_AXIS]; |
19 | } | |
20 | ||
807b9b57 | 21 | void CoreXZSolution::actuator_to_cartesian(const ActuatorCoordinates &actuator_mm, float cartesian_mm[] ){ |
728f1037 | 22 | cartesian_mm[X_AXIS] = (0.5F/this->x_reduction) * (actuator_mm[ALPHA_STEPPER] + actuator_mm[BETA_STEPPER]); |
3b0cf08f | 23 | cartesian_mm[Z_AXIS] = (0.5F/this->z_reduction) * (actuator_mm[ALPHA_STEPPER] - actuator_mm[BETA_STEPPER]); |
fff1e42d JJ |
24 | cartesian_mm[Y_AXIS] = actuator_mm[GAMMA_STEPPER]; |
25 | } |