add filament_max_wipe_tower_speed

This commit is contained in:
supermerill 2019-02-14 17:51:24 +01:00
parent 29755d0353
commit 430d023ede
6 changed files with 25 additions and 9 deletions

View File

@ -903,13 +903,15 @@ void WipeTowerPrusaMM::toolchange_Change(
m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length();
// Speed override for the material. Go slow for flex and soluble materials.
int speed_override;
switch (new_material) {
case PVA: speed_override = (m_z_pos < 0.80f) ? 60 : 80; break;
case SCAFF: speed_override = 35; break;
case FLEX: speed_override = 35; break;
default: speed_override = 100;
}
int speed_override = m_config->filament_max_wipe_tower_speed.get_at(new_tool);
if (speed_override <= 0) {
switch (new_material) {
case PVA: speed_override = (m_z_pos < 0.80f) ? 60 : 80; break;
case SCAFF: speed_override = 35; break;
case FLEX: speed_override = 35; break;
default: speed_override = 100;
}
}
writer.set_tool(new_tool);
if (m_retain_speed_override)
assert(speed_override == 100);

View File

@ -75,7 +75,7 @@ public:
m_filpar.push_back(FilamentParameters());
m_filpar[idx].material = WipeTowerPrusaMM::parse_material(m_config->filament_type.get_at(idx).c_str());
if (m_filpar[idx].material == FLEX || m_filpar[idx].material == SCAFF || m_filpar[idx].material == PVA) {
if (m_config->filament_max_wipe_tower_speed.get_at(idx) > 0 || m_filpar[idx].material == FLEX || m_filpar[idx].material == SCAFF || m_filpar[idx].material == PVA) {
// MMU2 lowers the print speed using the speed override (M220) for printing of soluble PVA/BVOH and flex materials.
// Therefore it does not make sense to use the new M220 B and M220 R (backup / restore).
m_retain_speed_override = false;

View File

@ -713,6 +713,16 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->default_value = new ConfigOptionFloats { 0. };
def = this->add("filament_max_wipe_tower_speed", coFloats);
def->label = L("Max speed on the wipe tower");
def->tooltip = L("This setting is used to set the maximum speed when extruding inside the wipe tower (use M220). In %, set 0 to disable and use the Filament type instead.");
def->sidetext = L("% of mm/s");
def->cli = "filament-max-wipe-tower-speed=f@";
def->min = 0;
def->max = 200;
def->mode = comExpert;
def->default_value = new ConfigOptionFloats { 0 };
def = this->add("filament_loading_speed", coFloats);
def->label = L("Loading speed");
def->tooltip = L("Speed used for loading the filament on the wipe tower. ");

View File

@ -708,6 +708,7 @@ public:
ConfigOptionBools filament_soluble;
ConfigOptionFloats filament_cost;
ConfigOptionFloats filament_max_volumetric_speed;
ConfigOptionFloats filament_max_wipe_tower_speed;
ConfigOptionFloats filament_loading_speed;
ConfigOptionFloats filament_loading_speed_start;
ConfigOptionFloats filament_load_time;
@ -786,6 +787,7 @@ protected:
OPT_PTR(filament_soluble);
OPT_PTR(filament_cost);
OPT_PTR(filament_max_volumetric_speed);
OPT_PTR(filament_max_wipe_tower_speed);
OPT_PTR(filament_loading_speed);
OPT_PTR(filament_loading_speed_start);
OPT_PTR(filament_load_time);

View File

@ -373,6 +373,7 @@ const std::vector<std::string>& Preset::filament_options()
{
static std::vector<std::string> s_opts {
"filament_colour", "filament_diameter", "filament_type", "filament_soluble", "filament_notes", "filament_max_volumetric_speed",
"filament_max_wipe_tower_speed",
"extrusion_multiplier", "filament_density", "filament_cost", "filament_loading_speed", "filament_loading_speed_start", "filament_load_time",
"filament_unloading_speed", "filament_toolchange_delay", "filament_unloading_speed_start", "filament_unload_time", "filament_cooling_moves",
"filament_cooling_initial_speed", "filament_cooling_final_speed", "filament_ramming_parameters", "filament_minimal_purge_on_wipe_tower",

View File

@ -1548,7 +1548,8 @@ void TabFilament::build()
line.widget = [this](wxWindow* parent) {
return description_line_widget(parent, &m_volumetric_speed_description_line);
};
optgroup->append_line(line);
optgroup->append_line(line);
optgroup->append_single_option_line("filament_max_wipe_tower_speed");
optgroup = page->new_optgroup(_(L("Toolchange parameters with single extruder MM printers")));
optgroup->append_single_option_line("filament_loading_speed_start");