|
@@ -1951,29 +1951,30 @@ constexpr float sanity_arr_1[] = DEFAULT_AXIS_STEPS_PER_UNIT,
|
1951
|
1951
|
sanity_arr_2[] = DEFAULT_MAX_FEEDRATE,
|
1952
|
1952
|
sanity_arr_3[] = DEFAULT_MAX_ACCELERATION;
|
1953
|
1953
|
|
1954
|
|
-static_assert(COUNT(sanity_arr_1) >= XYZE, "DEFAULT_AXIS_STEPS_PER_UNIT requires 4 (or more) elements.");
|
|
1954
|
+#define _ARR_TEST(N,I) (sanity_arr_##N[MIN(I,COUNT(sanity_arr_##N)-1)] > 0)
|
|
1955
|
+
|
|
1956
|
+static_assert(COUNT(sanity_arr_1) >= XYZE, "DEFAULT_AXIS_STEPS_PER_UNIT requires X, Y, Z and E elements.");
|
1955
|
1957
|
static_assert(COUNT(sanity_arr_1) <= XYZE_N, "DEFAULT_AXIS_STEPS_PER_UNIT has too many elements. (Did you forget to enable DISTINCT_E_FACTORS?)");
|
1956
|
|
-static_assert(sanity_arr_1[0] > 0 && sanity_arr_1[1] > 0 && sanity_arr_1[2] > 0
|
1957
|
|
- && (XYZE_N <= 3 || sanity_arr_1[3] > 0) && (XYZE_N <= 4 || sanity_arr_1[4] > 0)
|
1958
|
|
- && (XYZE_N <= 5 || sanity_arr_1[5] > 0) && (XYZE_N <= 6 || sanity_arr_1[6] > 0)
|
1959
|
|
- && (XYZE_N <= 7 || sanity_arr_1[7] > 0) && (XYZE_N <= 8 || sanity_arr_1[8] > 0),
|
1960
|
|
- "DEFAULT_AXIS_STEPS_PER_UNIT values must be positive.");
|
|
1958
|
+static_assert( _ARR_TEST(1,0) && _ARR_TEST(1,1) && _ARR_TEST(1,2)
|
|
1959
|
+ && _ARR_TEST(1,3) && _ARR_TEST(1,4) && _ARR_TEST(1,5)
|
|
1960
|
+ && _ARR_TEST(1,6) && _ARR_TEST(1,7) && _ARR_TEST(1,8),
|
|
1961
|
+ "DEFAULT_AXIS_STEPS_PER_UNIT values must be positive.");
|
1961
|
1962
|
|
1962
|
|
-static_assert(COUNT(sanity_arr_2) >= XYZE, "DEFAULT_MAX_FEEDRATE requires 4 (or more) elements.");
|
|
1963
|
+static_assert(COUNT(sanity_arr_2) >= XYZE, "DEFAULT_MAX_FEEDRATE requires X, Y, Z and E elements.");
|
1963
|
1964
|
static_assert(COUNT(sanity_arr_2) <= XYZE_N, "DEFAULT_MAX_FEEDRATE has too many elements. (Did you forget to enable DISTINCT_E_FACTORS?)");
|
1964
|
|
-static_assert(sanity_arr_2[0] > 0 && sanity_arr_2[1] > 0 && sanity_arr_2[2] > 0
|
1965
|
|
- && (XYZE_N <= 3 || sanity_arr_2[3] > 0) && (XYZE_N <= 4 || sanity_arr_2[4] > 0)
|
1966
|
|
- && (XYZE_N <= 5 || sanity_arr_2[5] > 0) && (XYZE_N <= 6 || sanity_arr_2[6] > 0)
|
1967
|
|
- && (XYZE_N <= 7 || sanity_arr_2[7] > 0) && (XYZE_N <= 8 || sanity_arr_2[8] > 0),
|
1968
|
|
- "DEFAULT_MAX_FEEDRATE values must be positive.");
|
|
1965
|
+static_assert( _ARR_TEST(2,0) && _ARR_TEST(2,1) && _ARR_TEST(2,2)
|
|
1966
|
+ && _ARR_TEST(2,3) && _ARR_TEST(2,4) && _ARR_TEST(2,5)
|
|
1967
|
+ && _ARR_TEST(2,6) && _ARR_TEST(2,7) && _ARR_TEST(2,8),
|
|
1968
|
+ "DEFAULT_MAX_FEEDRATE values must be positive.");
|
1969
|
1969
|
|
1970
|
|
-static_assert(COUNT(sanity_arr_3) >= XYZE, "DEFAULT_MAX_ACCELERATION requires 4 (or more) elements.");
|
|
1970
|
+static_assert(COUNT(sanity_arr_3) >= XYZE, "DEFAULT_MAX_ACCELERATION requires X, Y, Z and E elements.");
|
1971
|
1971
|
static_assert(COUNT(sanity_arr_3) <= XYZE_N, "DEFAULT_MAX_ACCELERATION has too many elements. (Did you forget to enable DISTINCT_E_FACTORS?)");
|
1972
|
|
-static_assert(sanity_arr_3[0] > 0 && sanity_arr_3[1] > 0 && sanity_arr_3[2] > 0
|
1973
|
|
- && (XYZE_N <= 3 || sanity_arr_3[3] > 0) && (XYZE_N <= 4 || sanity_arr_3[4] > 0)
|
1974
|
|
- && (XYZE_N <= 5 || sanity_arr_3[5] > 0) && (XYZE_N <= 6 || sanity_arr_3[6] > 0)
|
1975
|
|
- && (XYZE_N <= 7 || sanity_arr_3[7] > 0) && (XYZE_N <= 8 || sanity_arr_3[8] > 0),
|
1976
|
|
- "DEFAULT_MAX_ACCELERATION values must be positive.");
|
|
1972
|
+static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
|
|
1973
|
+ && _ARR_TEST(3,3) && _ARR_TEST(3,4) && _ARR_TEST(3,5)
|
|
1974
|
+ && _ARR_TEST(3,6) && _ARR_TEST(3,7) && _ARR_TEST(3,8),
|
|
1975
|
+ "DEFAULT_MAX_ACCELERATION values must be positive.");
|
|
1976
|
+
|
|
1977
|
+#undef _ARR_TEST
|
1977
|
1978
|
|
1978
|
1979
|
#if ENABLED(CNC_COORDINATE_SYSTEMS) && ENABLED(NO_WORKSPACE_OFFSETS)
|
1979
|
1980
|
#error "CNC_COORDINATE_SYSTEMS is incompatible with NO_WORKSPACE_OFFSETS."
|