Устраняем раздражающие моменты Marlin
Сразу хочу предупредить - то о чем пойдет речь возможно когда то и кем то рассматривалось и решалось, но я почему то это упустил, так что если что не пинайте. В любом случае повторить не будет лишним.
Собственно к теме.
Принтер у меня где то полгода. Печатаю не очень часто, но уже изрядно выбешивает один, на первый взгляд пустяковый, аспект - отсутствие элементарного пункта в меню принтера 'Плохой старт' (забегая вперед, я его так назвал).
Запуская печать иногда происходит [нужное вставить] и нужно прекратить печать что бы быстренько исправить что нужно и запустить печать повторно, но в реальности эта спокойная, на первый взгляд, операция превращается в раздражитель нервов.
Отмена печати => Возврат домой => Исправление => Запуск повторной печати => Ожидание - время всего этого можно сократить парой строчек кода.
В данной теме мы допилим Marlin 1.1.9 , но то же самое можно проделать и со старшими версиями, код если и будет отличаться, то незначительно.
Для начала зайдем в language_en.h и добавим имя для пункта
Вставить можно в любое место списка, я вставил после 659 строчки:
#ifndef BAD_STARTЕсли пользуетесь только английским языком то пропускайте следующий пункт, если нет смотрим дальше.
#define BAD_START _UxGT('Bad start')
#endif
В language_ru.h или любом другом добавляем:
#define BAD_START _UxGT('Плохой старт')Теперь основное. В ultralcd.cpp после 864 строки добавляем новую функцию:
void bad_start_stop() {Которая останавливает только печать, а не завершает все процессы. Выполняет последовательность команд (подчеркнуты) которые вы можете задать сами. Пишите что хотите, но я советую в конце всегда дописывать M84 (если кому будет интересно напишу в коменты почему). И выводит статус о завершении печати.
wait_for_heatup = wait_for_user = false;
card.stopSDPrint(
#if SD_RESORT
true
#endif
);
enqueue_and_echo_commands_P(PSTR('G91
G1 F1800 E-5
G1 F3000 Z10
G90
G0 Y220
G28 X0
M84 '));
lcd_setstatusPGM(PSTR(MSG_PRINT_ABORTED), -1);
lcd_return_to_status();
}
Теперь собственно осталось только добавить еще один пункт к меню.
После 1122 строки добавляем:
if (axis_known_position&&card.sdprinting) MENU_ITEM(function, BAD_START, bad_start_stop);Проверяем что известны координаты (что бы не выйти за границы) и то что идет печать. Все - пункт будет появляться в меню только когда идет непосредственно печать.
При желании можете добавить такую же последовательность действий при полной отмене печати - допишите:
enqueue_and_echo_commands_P(PSTR('G91В функцию lcd_sdcard_stop()
G1 F1800 E-5
G1 F3000 Z10
G90
G0 Y220
G28 X0
M84 '));
void lcd_sdcard_stop() {Все! В подобном виде прошивкой пользуюсь где то полгода и каждый раз когда нужно прервать печать хвалю себя!Пользуйтесь!
wait_for_heatup = wait_for_user = false;
abort_sd_printing = true;
enqueue_and_echo_commands_P(PSTR('G91
G1 F1800 E-5
G1 F3000 Z10
G90
G0 Y220
G28 X0
M84 '));
lcd_setstatusPGM(PSTR(MSG_PRINT_ABORTED), -1);
lcd_return_to_status();
}
Еще больше интересных статей
Подсветка для Ender 3 и Sprite Extruder с обдувом K3D
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Попросили меня подробнее написать про подсветку на моем Ender 3....
duet web control не регулируются обороты вентилятора обдува детали на BTT SKR V1.4
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
принтер у меня самодельно переделанный из ки...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Тоже почти ничего в этом не по...
Каркас сомнительная штука. рем...
ох... берете за 2 уголка(с одн...
привет всем, нашел модель и ни...
Друзья, пятый медведь. Cura 5....
Буквально сейчас столкнулся с...
В общем вчера писал что надо с...