With single_extruder_multi_material enabled,
don't append a tool selection (Txx) to the extruder temperature settings (M104 and M109).
This commit is contained in:
parent
e000b22578
commit
2f4ff6577a
@ -511,7 +511,7 @@ bool GCode::do_export(FILE *file, Print &print)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Calculate wiping points if needed
|
// Calculate wiping points if needed
|
||||||
if (print.config.ooze_prevention.value) {
|
if (print.config.ooze_prevention.value && ! print.config.single_extruder_multi_material) {
|
||||||
Points skirt_points;
|
Points skirt_points;
|
||||||
for (const ExtrusionEntity *ee : print.skirt.entities)
|
for (const ExtrusionEntity *ee : print.skirt.entities)
|
||||||
for (const ExtrusionPath &path : dynamic_cast<const ExtrusionLoop*>(ee)->paths)
|
for (const ExtrusionPath &path : dynamic_cast<const ExtrusionLoop*>(ee)->paths)
|
||||||
@ -680,8 +680,6 @@ void GCode::_print_first_layer_extruder_temperatures(FILE *file, Print &print, u
|
|||||||
if (print.config.single_extruder_multi_material.value) {
|
if (print.config.single_extruder_multi_material.value) {
|
||||||
// Set temperature of the first printing extruder only.
|
// Set temperature of the first printing extruder only.
|
||||||
int temp = print.config.first_layer_temperature.get_at(first_printing_extruder_id);
|
int temp = print.config.first_layer_temperature.get_at(first_printing_extruder_id);
|
||||||
if (print.config.ooze_prevention.value)
|
|
||||||
temp += print.config.standby_temperature_delta.value;
|
|
||||||
if (temp > 0)
|
if (temp > 0)
|
||||||
write(file, m_writer.set_temperature(temp, wait, first_printing_extruder_id));
|
write(file, m_writer.set_temperature(temp, wait, first_printing_extruder_id));
|
||||||
} else {
|
} else {
|
||||||
@ -1985,7 +1983,7 @@ std::string GCode::set_extruder(unsigned int extruder_id)
|
|||||||
m_wipe.reset_path();
|
m_wipe.reset_path();
|
||||||
|
|
||||||
// append custom toolchange G-code
|
// append custom toolchange G-code
|
||||||
if (m_writer.extruder() != NULL && !m_config.toolchange_gcode.value.empty()) {
|
if (m_writer.extruder() != nullptr && !m_config.toolchange_gcode.value.empty()) {
|
||||||
PlaceholderParser pp = m_placeholder_parser;
|
PlaceholderParser pp = m_placeholder_parser;
|
||||||
pp.set("previous_extruder", m_writer.extruder()->id);
|
pp.set("previous_extruder", m_writer.extruder()->id);
|
||||||
pp.set("next_extruder", extruder_id);
|
pp.set("next_extruder", extruder_id);
|
||||||
@ -1994,7 +1992,7 @@ std::string GCode::set_extruder(unsigned int extruder_id)
|
|||||||
|
|
||||||
// if ooze prevention is enabled, park current extruder in the nearest
|
// if ooze prevention is enabled, park current extruder in the nearest
|
||||||
// standby point and set it to the standby temperature
|
// standby point and set it to the standby temperature
|
||||||
if (m_ooze_prevention.enable && m_writer.extruder() != NULL)
|
if (m_ooze_prevention.enable && m_writer.extruder() != nullptr)
|
||||||
gcode += m_ooze_prevention.pre_toolchange(*this);
|
gcode += m_ooze_prevention.pre_toolchange(*this);
|
||||||
// append the toolchange command
|
// append the toolchange command
|
||||||
gcode += m_writer.toolchange(extruder_id);
|
gcode += m_writer.toolchange(extruder_id);
|
||||||
|
@ -13,15 +13,14 @@
|
|||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
|
|
||||||
void
|
void GCodeWriter::apply_print_config(const PrintConfig &print_config)
|
||||||
GCodeWriter::apply_print_config(const PrintConfig &print_config)
|
|
||||||
{
|
{
|
||||||
this->config.apply(print_config, true);
|
this->config.apply(print_config, true);
|
||||||
this->_extrusion_axis = this->config.get_extrusion_axis();
|
this->_extrusion_axis = this->config.get_extrusion_axis();
|
||||||
|
this->m_single_extruder_multi_material = print_config.single_extruder_multi_material.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void GCodeWriter::set_extruders(const std::vector<unsigned int> &extruder_ids)
|
||||||
GCodeWriter::set_extruders(const std::vector<unsigned int> &extruder_ids)
|
|
||||||
{
|
{
|
||||||
for (unsigned int extruder_id : extruder_ids)
|
for (unsigned int extruder_id : extruder_ids)
|
||||||
this->extruders.insert(Extruder(extruder_id, &this->config));
|
this->extruders.insert(Extruder(extruder_id, &this->config));
|
||||||
@ -32,8 +31,7 @@ GCodeWriter::set_extruders(const std::vector<unsigned int> &extruder_ids)
|
|||||||
this->multiple_extruders = (*std::max_element(extruder_ids.begin(), extruder_ids.end())) > 0;
|
this->multiple_extruders = (*std::max_element(extruder_ids.begin(), extruder_ids.end())) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string GCodeWriter::preamble()
|
||||||
GCodeWriter::preamble()
|
|
||||||
{
|
{
|
||||||
std::ostringstream gcode;
|
std::ostringstream gcode;
|
||||||
|
|
||||||
@ -53,8 +51,7 @@ GCodeWriter::preamble()
|
|||||||
return gcode.str();
|
return gcode.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string GCodeWriter::postamble() const
|
||||||
GCodeWriter::postamble() const
|
|
||||||
{
|
{
|
||||||
std::ostringstream gcode;
|
std::ostringstream gcode;
|
||||||
if (FLAVOR_IS(gcfMachinekit))
|
if (FLAVOR_IS(gcfMachinekit))
|
||||||
@ -62,8 +59,7 @@ GCodeWriter::postamble() const
|
|||||||
return gcode.str();
|
return gcode.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string GCodeWriter::set_temperature(unsigned int temperature, bool wait, int tool) const
|
||||||
GCodeWriter::set_temperature(unsigned int temperature, bool wait, int tool) const
|
|
||||||
{
|
{
|
||||||
if (wait && (FLAVOR_IS(gcfMakerWare) || FLAVOR_IS(gcfSailfish)))
|
if (wait && (FLAVOR_IS(gcfMakerWare) || FLAVOR_IS(gcfSailfish)))
|
||||||
return "";
|
return "";
|
||||||
@ -85,7 +81,9 @@ GCodeWriter::set_temperature(unsigned int temperature, bool wait, int tool) cons
|
|||||||
gcode << "S";
|
gcode << "S";
|
||||||
}
|
}
|
||||||
gcode << temperature;
|
gcode << temperature;
|
||||||
if (tool != -1 && (this->multiple_extruders || FLAVOR_IS(gcfMakerWare) || FLAVOR_IS(gcfSailfish))) {
|
if (tool != -1 &&
|
||||||
|
( (this->multiple_extruders && ! this->m_single_extruder_multi_material) ||
|
||||||
|
FLAVOR_IS(gcfMakerWare) || FLAVOR_IS(gcfSailfish)) ) {
|
||||||
gcode << " T" << tool;
|
gcode << " T" << tool;
|
||||||
}
|
}
|
||||||
gcode << " ; " << comment << "\n";
|
gcode << " ; " << comment << "\n";
|
||||||
@ -96,8 +94,7 @@ GCodeWriter::set_temperature(unsigned int temperature, bool wait, int tool) cons
|
|||||||
return gcode.str();
|
return gcode.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string GCodeWriter::set_bed_temperature(unsigned int temperature, bool wait) const
|
||||||
GCodeWriter::set_bed_temperature(unsigned int temperature, bool wait) const
|
|
||||||
{
|
{
|
||||||
std::string code, comment;
|
std::string code, comment;
|
||||||
if (wait && FLAVOR_IS_NOT(gcfTeacup)) {
|
if (wait && FLAVOR_IS_NOT(gcfTeacup)) {
|
||||||
|
@ -17,6 +17,7 @@ public:
|
|||||||
|
|
||||||
GCodeWriter() :
|
GCodeWriter() :
|
||||||
multiple_extruders(false), _extrusion_axis("E"), _extruder(nullptr),
|
multiple_extruders(false), _extrusion_axis("E"), _extruder(nullptr),
|
||||||
|
m_single_extruder_multi_material(false),
|
||||||
_last_acceleration(0), _last_fan_speed(0), _lifted(0)
|
_last_acceleration(0), _last_fan_speed(0), _lifted(0)
|
||||||
{}
|
{}
|
||||||
Extruder* extruder() { return this->_extruder; }
|
Extruder* extruder() { return this->_extruder; }
|
||||||
@ -61,12 +62,13 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::string _extrusion_axis;
|
std::string _extrusion_axis;
|
||||||
|
bool m_single_extruder_multi_material;
|
||||||
Extruder* _extruder;
|
Extruder* _extruder;
|
||||||
unsigned int _last_acceleration;
|
unsigned int _last_acceleration;
|
||||||
unsigned int _last_fan_speed;
|
unsigned int _last_fan_speed;
|
||||||
double _lifted;
|
double _lifted;
|
||||||
Pointf3 _pos;
|
Pointf3 _pos;
|
||||||
|
|
||||||
std::string _travel_to_z(double z, const std::string &comment);
|
std::string _travel_to_z(double z, const std::string &comment);
|
||||||
std::string _retract(double length, double restart_extra, const std::string &comment);
|
std::string _retract(double length, double restart_extra, const std::string &comment);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user