Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer
This commit is contained in:
commit
3fc3a8e2c3
4 changed files with 25 additions and 16 deletions
src/libslic3r
|
@ -947,11 +947,16 @@ void WipeTower::toolchange_Unload(
|
||||||
.travel(old_x, writer.y()) // in case previous move was shortened to limit feedrate*/
|
.travel(old_x, writer.y()) // in case previous move was shortened to limit feedrate*/
|
||||||
.resume_preview();
|
.resume_preview();
|
||||||
}
|
}
|
||||||
if (new_temperature != 0 && (new_temperature != m_old_temperature || m_is_first_layer) ) { // Set the extruder temperature, but don't wait.
|
// Wipe tower should only change temperature with single extruder MM. Otherwise, all temperatures should
|
||||||
// If the required temperature is the same as last time, don't emit the M104 again (if user adjusted the value, it would be reset)
|
// be already set and there is no need to change anything. Also, the temperature could be changed
|
||||||
// However, always change temperatures on the first layer (this is to avoid issues with priming lines turned off).
|
// for wrong extruder.
|
||||||
writer.set_extruder_temp(new_temperature, false);
|
if (m_semm) {
|
||||||
m_old_temperature = new_temperature;
|
if (new_temperature != 0 && (new_temperature != m_old_temperature || m_is_first_layer) ) { // Set the extruder temperature, but don't wait.
|
||||||
|
// If the required temperature is the same as last time, don't emit the M104 again (if user adjusted the value, it would be reset)
|
||||||
|
// However, always change temperatures on the first layer (this is to avoid issues with priming lines turned off).
|
||||||
|
writer.set_extruder_temp(new_temperature, false);
|
||||||
|
m_old_temperature = new_temperature;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cooling:
|
// Cooling:
|
||||||
|
@ -1002,6 +1007,10 @@ void WipeTower::toolchange_Change(
|
||||||
writer.append("[end_filament_gcode]\n");
|
writer.append("[end_filament_gcode]\n");
|
||||||
writer.append("[toolchange_gcode]\n");
|
writer.append("[toolchange_gcode]\n");
|
||||||
|
|
||||||
|
// Travel to where we assume we are. Custom toolchange or some special T code handling (parking extruder etc)
|
||||||
|
// gcode could have left the extruder somewhere, we cannot just start extruding.
|
||||||
|
writer.append(std::string("G1 X") + std::to_string(writer.x()) + " Y" + std::to_string(writer.y()) + "\n");
|
||||||
|
|
||||||
// The toolchange Tn command will be inserted later, only in case that the user does
|
// The toolchange Tn command will be inserted later, only in case that the user does
|
||||||
// not provide a custom toolchange gcode.
|
// not provide a custom toolchange gcode.
|
||||||
writer.set_tool(new_tool); // This outputs nothing, the writer just needs to know the tool has changed.
|
writer.set_tool(new_tool); // This outputs nothing, the writer just needs to know the tool has changed.
|
||||||
|
|
|
@ -1189,6 +1189,8 @@ std::string Print::validate() const
|
||||||
return L("The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors.");
|
return L("The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors.");
|
||||||
if (! m_config.use_relative_e_distances)
|
if (! m_config.use_relative_e_distances)
|
||||||
return L("The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1).");
|
return L("The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1).");
|
||||||
|
if (m_config.ooze_prevention)
|
||||||
|
return L("Ooze prevention is currently not supported with the wipe tower enabled.");
|
||||||
|
|
||||||
if (m_objects.size() > 1) {
|
if (m_objects.size() > 1) {
|
||||||
bool has_custom_layering = false;
|
bool has_custom_layering = false;
|
||||||
|
|
|
@ -454,9 +454,9 @@ SLAPrint::ApplyStatus SLAPrint::apply(const Model &model, DynamicPrintConfig con
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_objects.empty()) {
|
if(m_objects.empty()) {
|
||||||
m_printer.release();
|
m_printer.reset();
|
||||||
m_printer_input.clear();
|
m_printer_input = {};
|
||||||
m_print_statistics.clear();
|
m_print_statistics = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
|
@ -1397,13 +1397,14 @@ void SLAPrint::process()
|
||||||
|
|
||||||
{ // create a raster printer for the current print parameters
|
{ // create a raster printer for the current print parameters
|
||||||
double layerh = m_default_object_config.layer_height.getFloat();
|
double layerh = m_default_object_config.layer_height.getFloat();
|
||||||
m_printer.reset(new SLAPrinter(m_printer_config,
|
m_printer.reset(new sla::SLARasterWriter(m_printer_config,
|
||||||
m_material_config,
|
m_material_config,
|
||||||
layerh));
|
layerh));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocate space for all the layers
|
// Allocate space for all the layers
|
||||||
SLAPrinter& printer = *m_printer;
|
sla::SLARasterWriter &printer = *m_printer;
|
||||||
|
|
||||||
auto lvlcnt = unsigned(m_printer_input.size());
|
auto lvlcnt = unsigned(m_printer_input.size());
|
||||||
printer.layers(lvlcnt);
|
printer.layers(lvlcnt);
|
||||||
|
|
||||||
|
|
|
@ -422,9 +422,6 @@ public:
|
||||||
const std::vector<PrintLayer>& print_layers() const { return m_printer_input; }
|
const std::vector<PrintLayer>& print_layers() const { return m_printer_input; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
using SLAPrinter = sla::SLARasterWriter;
|
|
||||||
using SLAPrinterPtr = std::unique_ptr<SLAPrinter>;
|
|
||||||
|
|
||||||
// Implement same logic as in SLAPrintObject
|
// Implement same logic as in SLAPrintObject
|
||||||
bool invalidate_step(SLAPrintStep st);
|
bool invalidate_step(SLAPrintStep st);
|
||||||
|
|
||||||
|
@ -443,7 +440,7 @@ private:
|
||||||
std::vector<PrintLayer> m_printer_input;
|
std::vector<PrintLayer> m_printer_input;
|
||||||
|
|
||||||
// The printer itself
|
// The printer itself
|
||||||
SLAPrinterPtr m_printer;
|
std::unique_ptr<sla::SLARasterWriter> m_printer;
|
||||||
|
|
||||||
// Estimated print time, material consumed.
|
// Estimated print time, material consumed.
|
||||||
SLAPrintStatistics m_print_statistics;
|
SLAPrintStatistics m_print_statistics;
|
||||||
|
|
Loading…
Add table
Reference in a new issue