2.0 IDEX Independent z offset and other fixes (#11862)

* Add Formbot Raptor board

Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>

* Add a second Z probe Z offset

Co-Authored-By: InsanityAutomation <insanityautomation@users.noreply.github.com>

* Modify method to utilize live adjustment of hotend z offset

Should probably move config option to babystepping and rename as it may now apply to all multiextruder systems

* Move config item and catchup other code to current method
This commit is contained in:
InsanityAutomation
2018-09-24 10:40:48 -04:00
committed by Roxy-3D
parent 217e0efd20
commit 1104054d73
13 changed files with 290 additions and 38 deletions

View File

@ -1317,15 +1317,35 @@ void lcd_quick_feedback(const bool clear_buttons) {
const float new_zoffset = zprobe_zoffset + planner.steps_to_mm[Z_AXIS] * babystep_increment;
if (WITHIN(new_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX)) {
thermalManager.babystep_axis(Z_AXIS, babystep_increment);
zprobe_zoffset = new_zoffset;
#if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
if (active_extruder == 0)
{
thermalManager.babystep_axis(Z_AXIS, babystep_increment);
zprobe_zoffset = new_zoffset;
} else {
thermalManager.babystep_axis(Z_AXIS, babystep_increment);
hotend_offset[Z_AXIS][active_extruder] -= (planner.steps_to_mm[Z_AXIS] * babystep_increment);
}
#else
zprobe_zoffset = new_zoffset;
#endif
lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
}
}
if (lcdDrawUpdate) {
lcd_implementation_drawedit(PSTR(MSG_ZPROBE_ZOFFSET), ftostr43sign(zprobe_zoffset));
#if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
if (active_extruder == 0) {
lcd_implementation_drawedit(PSTR(MSG_ZPROBE_ZOFFSET), ftostr43sign(zprobe_zoffset));
} else {
lcd_implementation_drawedit(PSTR(MSG_IDEX_Z_OFFSET), ftostr43sign(hotend_offset[Z_AXIS][active_extruder]));
}
#endif
#if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY)
_lcd_zoffset_overlay_gfx(zprobe_zoffset);
if (active_extruder == 0) {
_lcd_zoffset_overlay_gfx(zprobe_zoffset);
}
#endif
}
}

View File

@ -46,6 +46,7 @@
#include "../module/motion.h" // for active_extruder
#endif
void lcd_return_to_status();
bool lcd_hasstatus();
void lcd_setstatus(const char* message, const bool persist=false);
void lcd_setstatusPGM(const char* message, const int8_t level=0);