Прошивка Marlin 2.0.9.1 для X5SA: Ошибка компиляции MM_PER_ARC_SEGMENT
У меня есть принтер Tronxy X5SA, на который я хочу установить последнюю версию прошивки Marlin v2.0.9.1.
Я беру пример конфигурации на GitHub для принтера X5SA и изменяю строки в configuration.h
, как рекомендовано в руководстве (см. Этот URL-адрес).
В коде Visual Studio при компиляции я получаю следующую ошибку :
Marlin\src\gcode\motion\G2_G3.cpp: In function 'void plan_arc(const xyze_pos_t&, const ab_float_t&, bool, uint8_t)':
Marlin\src\gcode\motion\G2_G3.cpp:154:7: error: 'MM_PER_ARC_SEGMENT' was not declared in this scope
MM_PER_ARC_SEGMENT
^~~~~~~~~~~~~~~~~~
Marlin\src\gcode\motion\G2_G3.cpp:154:7: note: suggested alternative: 'MAX_ARC_SEGMENT_MM'
^~~~~~~~~~~~~~~~~~
MAX_ARC_SEGMENT_MM
Compiling .pio\build\chitu_f103\src\src\gcode\sd\M20.cpp.o
*** [.pio\build\chitu_f103\src\src\gcode\motion\G2_G3.cpp.o] Error 1
========================================================================================= [FAILED] Took 71.95 seconds =========================================================================================
Environment Status Duration
------------- -------- ------------
chitu_f103 FAILED 00:01:11.945
==================================================================================== 1 failed, 0 succeeded in 00:01:11.945 ====================================================================================
PS D:\TRONXY\Marlin-2.0.9.1\Marlin-2.0.9.1> echo "done" >C:\Users\myUser\AppData\Local\Temp\ipc
PS D:\TRONXY\Marlin-2.0.9.1\Marlin-2.0.9.1>
Вот код в G2_G3.cpp
на линии 154, но мне нужна помощь, чтобы понять, почему это неправильно и как исправить...
// Начать с номинальной длины сегмента
float seg_length = (
#ifdef ARC_SEGMENTS_PER_R
constrain(MM_PER_ARC_SEGMENT * radius, MM_PER_ARC_SEGMENT, ARC_SEGMENTS_PER_R)
#elif ARC_SEGMENTS_PER_SEC
_MAX(scaled_fr_mm_s * RECIPROCAL(ARC_SEGMENTS_PER_SEC), MM_PER_ARC_SEGMENT)
#else
MM_PER_ARC_SEGMENT // LINE 154 HERE!!
#endif
);
// Разделить общее количество поездок на номинальную длину сегмента
uint16_t segments = FLOOR(mm_of_travel / seg_length);
NOLESS(segments, min_segments); // По крайней мере, некоторые сегменты
seg_length = mm_of_travel / segments;
Я попытался успешно скомпилировать версию исправления ошибок, но, к сожалению, версия исправления ошибок не работает должным образом с моим принтером (я не могу заставить стол подняться к зонду. Я открыл еще одно сообщение о проблеме с исправлением версии).
@Julo0sS, 👍1
1 ответ
Лучший ответ:
Компилятор не может видеть определение MM_PER_ARC_SEGMENT
. Найдите файл, в котором он объявлен, и убедитесь, что этот файл включен в команду компиляции как include (#include
) или путь или что-то еще.
Если посмотреть текущую Конфигурацию_adv.h
в репозитории Marlin Github, определение находится в Строке 2033 в разделе в строках 2028-2041
//
// G2/G3 Arc Support
//
#define ARC_SUPPORT // Отключите эту функцию, чтобы сохранить ~3226 байт
#if ENABLED(ARC_SUPPORT)
#define MM_PER_ARC_SEGMENT 1 // (мм) Длину (или минимальную длину) каждого сегмента дуги
//#define ARC_SEGMENTS_PER_R 1 // Максимальная длина сегмента, MM_PER = Мин
#define MIN_ARC_SEGMENTS 24 // Минимальное количество сегментов в полном круге
//#define ARC_SEGMENTS_PER_SEC 50 // Используйте скорость подачи для выбора длины сегмента (с минимальным значением MM_PER_ARC_SEGMENT)
#define N_ARC_CORRECTION 25 // Количество интерполированных сегментов между исправлениями
//#define ARC_P_CIRCLES // Включить параметр 'P' для указания полных окружностей
//#define CNC_WORKSPACE_PLANES // Разрешить G2/G3 работать в плоскостях XY, ZX или YZ
//#define SF_ARC_FIX // Включить только при использовании Скейнфорджа с процедурой скругления "Точка дуги"
#endif
Убедитесь, что у вас включена поддержка ARC_SUPPORT - нет комментария в следующей строке (2031):
#define ARC_SUPPORT
- Tronxy X5SA не работает должным образом после установки прошивки Marlin
- Платы Tronxy Marlin (две из них) перезагружаются, когда их просят нагреть стол
- Указание смещения Z в прошивке Marlin
- Как добавить параметры меню в жидкокристаллическое меню (прошивка Marlin)?
- Есть ли способ изменить направление двигателя с помощью GCode вместо встроенного ПО в Marlin
- Что такое защита теплового побега?
- Обновление прошивки Marlin - Пошаговое руководство
- Как правильно установить смещения дома и ручные определения дома в Marlin?