|
@@ -76,17 +76,17 @@ void recalc_delta_settings();
|
76
|
76
|
#endif
|
77
|
77
|
|
78
|
78
|
// Macro to obtain the Z position of an individual tower
|
79
|
|
-#define DELTA_Z(T) raw[Z_AXIS] + _SQRT( \
|
80
|
|
- delta_diagonal_rod_2_tower[T] - HYPOT2( \
|
81
|
|
- delta_tower[T][X_AXIS] - raw[X_AXIS], \
|
82
|
|
- delta_tower[T][Y_AXIS] - raw[Y_AXIS] \
|
83
|
|
- ) \
|
|
79
|
+#define DELTA_Z(V,T) V[Z_AXIS] + _SQRT( \
|
|
80
|
+ delta_diagonal_rod_2_tower[T] - HYPOT2( \
|
|
81
|
+ delta_tower[T][X_AXIS] - V[X_AXIS], \
|
|
82
|
+ delta_tower[T][Y_AXIS] - V[Y_AXIS] \
|
|
83
|
+ ) \
|
84
|
84
|
)
|
85
|
85
|
|
86
|
|
-#define DELTA_RAW_IK() do { \
|
87
|
|
- delta[A_AXIS] = DELTA_Z(A_AXIS); \
|
88
|
|
- delta[B_AXIS] = DELTA_Z(B_AXIS); \
|
89
|
|
- delta[C_AXIS] = DELTA_Z(C_AXIS); \
|
|
86
|
+#define DELTA_IK(V) do { \
|
|
87
|
+ delta[A_AXIS] = DELTA_Z(V, A_AXIS); \
|
|
88
|
+ delta[B_AXIS] = DELTA_Z(V, B_AXIS); \
|
|
89
|
+ delta[C_AXIS] = DELTA_Z(V, C_AXIS); \
|
90
|
90
|
}while(0)
|
91
|
91
|
|
92
|
92
|
void inverse_kinematics(const float raw[XYZ]);
|