mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-03 03:20:41 +08:00
Wipe tower: rebranded skinnydip to stamping
This commit is contained in:
parent
030cd934c5
commit
0736f68e77
@ -643,8 +643,8 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config)
|
||||
m_filpar[idx].cooling_moves = config.filament_cooling_moves.get_at(idx);
|
||||
m_filpar[idx].cooling_initial_speed = float(config.filament_cooling_initial_speed.get_at(idx));
|
||||
m_filpar[idx].cooling_final_speed = float(config.filament_cooling_final_speed.get_at(idx));
|
||||
m_filpar[idx].filament_skinnydip_loading_speed = float(config.filament_skinnydip_loading_speed.get_at(idx));
|
||||
m_filpar[idx].filament_skinnydip_distance = float(config.filament_skinnydip_distance.get_at(idx));
|
||||
m_filpar[idx].filament_stamping_loading_speed = float(config.filament_stamping_loading_speed.get_at(idx));
|
||||
m_filpar[idx].filament_stamping_distance = float(config.filament_stamping_distance.get_at(idx));
|
||||
}
|
||||
|
||||
m_filpar[idx].filament_area = float((M_PI/4.f) * pow(config.filament_diameter.get_at(idx), 2)); // all extruders are assumed to have the same filament diameter at this point
|
||||
@ -1022,28 +1022,28 @@ void WipeTower::toolchange_Unload(
|
||||
.travel(writer.x(), writer.y() + y_step);
|
||||
old_x = writer.x();
|
||||
turning_point = xr-old_x > old_x-xl ? xr : xl;
|
||||
float skinnydip_dist_e = m_filpar[m_current_tool].filament_skinnydip_distance + m_cooling_tube_length / 2.f;
|
||||
float stamping_dist_e = m_filpar[m_current_tool].filament_stamping_distance + m_cooling_tube_length / 2.f;
|
||||
|
||||
for (int i=0; i<number_of_cooling_moves; ++i) {
|
||||
|
||||
// Skinnydip - happens after every cooling move except for the last one.
|
||||
if (i>0 && m_filpar[m_current_tool].filament_skinnydip_distance != 0) {
|
||||
// Stamping - happens after every cooling move except for the last one.
|
||||
if (i>0 && m_filpar[m_current_tool].filament_stamping_distance != 0) {
|
||||
|
||||
// Skinnydip turning point shall be no farther than 20mm from the current nozzle position:
|
||||
float skinnydip_turning_point = std::clamp(old_x + 20.f * (turning_point - old_x > 0.f ? 1.f : -1.f), xl, xr);
|
||||
// Stamping turning point shall be no farther than 20mm from the current nozzle position:
|
||||
float stamping_turning_point = std::clamp(old_x + 20.f * (turning_point - old_x > 0.f ? 1.f : -1.f), xl, xr);
|
||||
|
||||
// Only last 5mm will be done with the fast x travel. The point is to spread possible blobs
|
||||
// along the whole wipe tower.
|
||||
if (skinnydip_dist_e > 5) {
|
||||
if (stamping_dist_e > 5) {
|
||||
float cent = writer.x();
|
||||
writer.load_move_x_advanced(skinnydip_turning_point, (skinnydip_dist_e - 5), m_filpar[m_current_tool].filament_skinnydip_loading_speed, 200);
|
||||
writer.load_move_x_advanced(cent, 5, m_filpar[m_current_tool].filament_skinnydip_loading_speed, m_travel_speed);
|
||||
writer.load_move_x_advanced(stamping_turning_point, (stamping_dist_e - 5), m_filpar[m_current_tool].filament_stamping_loading_speed, 200);
|
||||
writer.load_move_x_advanced(cent, 5, m_filpar[m_current_tool].filament_stamping_loading_speed, m_travel_speed);
|
||||
writer.travel(cent, writer.y());
|
||||
} else
|
||||
writer.load_move_x_advanced_there_and_back(skinnydip_turning_point, skinnydip_dist_e, m_filpar[m_current_tool].filament_skinnydip_loading_speed, m_travel_speed);
|
||||
writer.load_move_x_advanced_there_and_back(stamping_turning_point, stamping_dist_e, m_filpar[m_current_tool].filament_stamping_loading_speed, m_travel_speed);
|
||||
|
||||
// Retract while the print head is stationary, so if there is a blob, it is not dragged along.
|
||||
writer.retract(skinnydip_dist_e, m_filpar[m_current_tool].unloading_speed * 60.f);
|
||||
writer.retract(stamping_dist_e, m_filpar[m_current_tool].unloading_speed * 60.f);
|
||||
}
|
||||
|
||||
if (i == number_of_cooling_moves - 1 && change_temp_later) {
|
||||
@ -1156,7 +1156,6 @@ void WipeTower::toolchange_Wipe(
|
||||
const float& xl = cleaning_box.ld.x();
|
||||
const float& xr = cleaning_box.rd.x();
|
||||
|
||||
// MATHIEU TEST:
|
||||
writer.set_extrusion_flow(m_extrusion_flow * m_extra_flow);
|
||||
const float line_width = m_perimeter_width * m_extra_flow;
|
||||
writer.change_analyzer_line_width(line_width);
|
||||
|
@ -237,8 +237,8 @@ public:
|
||||
float unloading_speed_start = 0.f;
|
||||
float delay = 0.f ;
|
||||
|
||||
float filament_skinnydip_loading_speed = 0.f;
|
||||
float filament_skinnydip_distance = 0.f;
|
||||
float filament_stamping_loading_speed = 0.f;
|
||||
float filament_stamping_distance = 0.f;
|
||||
|
||||
int cooling_moves = 0;
|
||||
float cooling_initial_speed = 0.f;
|
||||
|
@ -478,7 +478,7 @@ static std::vector<std::string> s_Preset_print_options {
|
||||
static std::vector<std::string> s_Preset_filament_options {
|
||||
"filament_colour", "filament_diameter", "filament_type", "filament_soluble", "filament_notes", "filament_max_volumetric_speed",
|
||||
"extrusion_multiplier", "filament_density", "filament_cost", "filament_spool_weight", "filament_loading_speed", "filament_loading_speed_start", "filament_load_time",
|
||||
"filament_unloading_speed", "filament_unloading_speed_start", "filament_unload_time", "filament_toolchange_delay", "filament_cooling_moves", "filament_skinnydip_loading_speed", "filament_skinnydip_distance",
|
||||
"filament_unloading_speed", "filament_unloading_speed_start", "filament_unload_time", "filament_toolchange_delay", "filament_cooling_moves", "filament_stamping_loading_speed", "filament_stamping_distance",
|
||||
"filament_cooling_initial_speed", "filament_cooling_final_speed", "filament_ramming_parameters", "filament_minimal_purge_on_wipe_tower",
|
||||
"filament_multitool_ramming", "filament_multitool_ramming_volume", "filament_multitool_ramming_flow",
|
||||
"temperature", "idle_temperature", "first_layer_temperature", "bed_temperature", "first_layer_bed_temperature", "fan_always_on", "cooling", "min_fan_speed",
|
||||
|
@ -219,8 +219,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||
|| opt_key == "filament_unloading_speed_start"
|
||||
|| opt_key == "filament_toolchange_delay"
|
||||
|| opt_key == "filament_cooling_moves"
|
||||
|| opt_key == "filament_skinnydip_loading_speed"
|
||||
|| opt_key == "filament_skinnydip_distance"
|
||||
|| opt_key == "filament_stamping_loading_speed"
|
||||
|| opt_key == "filament_stamping_distance"
|
||||
|| opt_key == "filament_minimal_purge_on_wipe_tower"
|
||||
|| opt_key == "filament_cooling_initial_speed"
|
||||
|| opt_key == "filament_cooling_final_speed"
|
||||
|
@ -1093,16 +1093,17 @@ void PrintConfigDef::init_fff_params()
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionFloats { 0. });
|
||||
|
||||
def = this->add("filament_skinnydip_loading_speed", coFloats);
|
||||
def->label = L("ELIAS: Skinnydip loading speed");
|
||||
def->tooltip = L("");
|
||||
def = this->add("filament_stamping_loading_speed", coFloats);
|
||||
def->label = L("Stamping loading speed");
|
||||
def->tooltip = L("Speed used for stamping.");
|
||||
def->min = 0;
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionFloats { 0. });
|
||||
|
||||
def = this->add("filament_skinnydip_distance", coFloats);
|
||||
def->label = L("ELIAS: Skinnydip distance measured from the center of the cooling tube");
|
||||
def->tooltip = L("");
|
||||
def = this->add("filament_stamping_distance", coFloats);
|
||||
def->label = L("Stamping distance measured from the center of the cooling tube");
|
||||
def->tooltip = L("If set to nonzero value, filament is moved toward the nozzle between the individual cooling moves (\"stamping\"). "
|
||||
"This option configures how long this movement should be before the filament is retracted again.");
|
||||
def->min = 0;
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionFloats { 0. });
|
||||
@ -3357,7 +3358,7 @@ void PrintConfigDef::init_fff_params()
|
||||
def->set_default_value(new ConfigOptionPercent(100.));
|
||||
|
||||
def = this->add("wipe_tower_extra_flow", coPercent);
|
||||
def->label = L("MATHIEU TEST: extra flow");
|
||||
def->label = L("Extra flow for purging");
|
||||
def->tooltip = L("");
|
||||
def->sidetext = L("%");
|
||||
def->mode = comExpert;
|
||||
|
@ -731,8 +731,8 @@ PRINT_CONFIG_CLASS_DEFINE(
|
||||
((ConfigOptionBools, filament_multitool_ramming))
|
||||
((ConfigOptionFloats, filament_multitool_ramming_volume))
|
||||
((ConfigOptionFloats, filament_multitool_ramming_flow))
|
||||
((ConfigOptionFloats, filament_skinnydip_loading_speed))
|
||||
((ConfigOptionFloats, filament_skinnydip_distance))
|
||||
((ConfigOptionFloats, filament_stamping_loading_speed))
|
||||
((ConfigOptionFloats, filament_stamping_distance))
|
||||
((ConfigOptionBool, gcode_comments))
|
||||
((ConfigOptionEnum<GCodeFlavor>, gcode_flavor))
|
||||
((ConfigOptionEnum<LabelObjectsStyle>, gcode_label_objects))
|
||||
|
@ -2271,8 +2271,8 @@ void TabFilament::build()
|
||||
optgroup->append_single_option_line("filament_cooling_moves");
|
||||
optgroup->append_single_option_line("filament_cooling_initial_speed");
|
||||
optgroup->append_single_option_line("filament_cooling_final_speed");
|
||||
optgroup->append_single_option_line("filament_skinnydip_loading_speed");
|
||||
optgroup->append_single_option_line("filament_skinnydip_distance");
|
||||
optgroup->append_single_option_line("filament_stamping_loading_speed");
|
||||
optgroup->append_single_option_line("filament_stamping_distance");
|
||||
|
||||
create_line_with_widget(optgroup.get(), "filament_ramming_parameters", "", [this](wxWindow* parent) {
|
||||
auto ramming_dialog_btn = new wxButton(parent, wxID_ANY, _(L("Ramming settings"))+dots, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
|
||||
|
Loading…
x
Reference in New Issue
Block a user