#276 fix klipper dual extruder problem

small voron config fix
This commit is contained in:
supermerill 2020-06-08 00:17:09 +02:00
parent 03d1ae21c5
commit 6ff5cd523c
3 changed files with 23 additions and 4 deletions

View File

@ -235,12 +235,12 @@ printer_model = Voron_v2_250_aferburner
printer_notes = Unoffical profile, for now.\nE3DV6 printer_notes = Unoffical profile, for now.\nE3DV6
[printer:*Voron_v2_300_aferburner*] [printer:*Voron_v2_300_aferburner*]
inherits = *Voron_v2_250*; *afterburner* inherits = *Voron_v2_300*; *afterburner*
printer_model = Voron_v2_300_aferburner printer_model = Voron_v2_300_aferburner
printer_notes = Unoffical profile, for now.\nE3DV6 printer_notes = Unoffical profile, for now.\nE3DV6
[printer:*Voron_v2_350_aferburner*] [printer:*Voron_v2_350_aferburner*]
inherits = *Voron_v2_250*; *afterburner* inherits = *Voron_v2_350*; *afterburner*
printer_model = Voron_v2_350_aferburner printer_model = Voron_v2_350_aferburner
printer_notes = Unoffical profile, for now.\nE3DV6 printer_notes = Unoffical profile, for now.\nE3DV6

View File

@ -301,6 +301,19 @@ void GCodeAnalyzer::_process_gcode_line(GCodeReader&, const GCodeReader::GCodeLi
break; break;
} }
} }
if (this->m_gcode_flavor == GCodeFlavor::gcfKlipper) {
if (cmd == "ACTIVATE_EXTRUDER") {
std::string rawline = line.raw();
std::string trsf;
while (rawline.back() >= '0' && rawline.back() <= '9') {
trsf = rawline.back() + trsf;
rawline.resize(rawline.size() - 1);
}
if (trsf.empty())
trsf = "0";
_processT("T"+ trsf);
}
}
} }
// puts the line back into the gcode // puts the line back into the gcode

View File

@ -260,7 +260,7 @@ std::string GCodeWriter::toolchange_prefix() const
{ {
return FLAVOR_IS(gcfMakerWare) ? "M135 T" : return FLAVOR_IS(gcfMakerWare) ? "M135 T" :
FLAVOR_IS(gcfSailfish) ? "M108 T" : FLAVOR_IS(gcfSailfish) ? "M108 T" :
FLAVOR_IS(gcfKlipper) ? "ACTIVATE_EXTRUDER EXTRUDER=extruder" : FLAVOR_IS(gcfKlipper) ? "ACTIVATE_EXTRUDER EXTRUDER=" :
"T"; "T";
} }
@ -292,7 +292,13 @@ std::string GCodeWriter::toolchange(unsigned int tool_id)
// if we are running a single-extruder setup, just set the extruder and return nothing // if we are running a single-extruder setup, just set the extruder and return nothing
std::ostringstream gcode; std::ostringstream gcode;
if (this->multiple_extruders) { if (this->multiple_extruders) {
gcode << this->toolchange_prefix() << tool_id; if (FLAVOR_IS(gcfKlipper)) {
gcode << this->toolchange_prefix() << "extruder";
if (tool_id > 0)
gcode << tool_id;
} else {
gcode << this->toolchange_prefix() << tool_id;
}
if (this->config.gcode_comments) if (this->config.gcode_comments)
gcode << " ; change extruder"; gcode << " ; change extruder";
gcode << "\n"; gcode << "\n";