Update Resonance Avoidance

This commit is contained in:
QIDI TECH
2024-06-21 14:19:23 +08:00
parent b7e961c443
commit 69126621fc
9 changed files with 337 additions and 277 deletions

View File

@@ -128,11 +128,13 @@ ironing_type = top
layer_height = 0.2
max_bridge_length = 10
max_print_speed = 600
max_resonance_avoidance_speed = 120
max_volumetric_extrusion_rate_slope_negative = 0
max_volumetric_extrusion_rate_slope_positive = 0
max_volumetric_speed = 0
min_bead_width = 85%
min_feature_size = 25%
min_resonance_avoidance_speed = 70
min_skirt_length = 5
mmu_segmented_region_interlocking_depth = 0
mmu_segmented_region_max_width = 0
@@ -160,6 +162,7 @@ raft_first_layer_density = 90%
raft_first_layer_expansion = 3
raft_layers = 0
resolution = 0
resonance_avoidance = 1
seam_gap = 15%
seam_position = aligned
single_extruder_multi_material_priming = 0
@@ -169,7 +172,7 @@ skirts = 0
slice_closing_radius = 0.049
slicing_mode = regular
slow_down_layers = 0
small_perimeter_speed = 70
small_perimeter_speed = 100
solid_infill_acceleration = 10000
solid_infill_below_area = 15
solid_infill_every_layers = 0
@@ -2529,9 +2532,7 @@ machine_min_extruding_rate = 0
machine_min_travel_rate = 0
max_layer_height = 0.28
max_print_height = 315
max_resonance_avoidance_speed = 115
min_layer_height = 0.08
min_resonance_avoidance_speed = 70
multimaterial_purging = 45
nozzle_diameter = 0.4
parking_pos_retraction = 92
@@ -2546,7 +2547,6 @@ printer_vendor = QIDI
printhost_apikey =
printhost_cafile =
remaining_times = 1
resonance_avoidance = 1
retract_before_travel = 1
retract_before_wipe = 0%
retract_layer_change = 1

File diff suppressed because it is too large Load Diff

View File

@@ -456,6 +456,9 @@ private:
// Processor
GCodeProcessor m_processor;
//Y27
bool m_resonance_avoidance;
// Back-pointer to Print (const).
const Print* m_print;
std::string _extrude(

View File

@@ -466,39 +466,42 @@ static std::vector<std::string> s_Preset_print_options {
"wipe_tower_width", "wipe_tower_cone_angle", "wipe_tower_rotation_angle", "wipe_tower_brim_width", "wipe_tower_bridging", "single_extruder_multi_material_priming", "mmu_segmented_region_max_width",
"mmu_segmented_region_interlocking_depth", "wipe_tower_extruder", "wipe_tower_no_sparse_layers", "wipe_tower_extra_flow", "wipe_tower_extra_spacing", "compatible_printers", "compatible_printers_condition", "inherits",
"perimeter_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle",
"wall_distribution_count", "min_feature_size", "min_bead_width"
"wall_distribution_count", "min_feature_size", "min_bead_width",
//B36
,"first_layer_travel_speed"
"first_layer_travel_speed",
//B37
,"first_layer_infill_speed"
"first_layer_infill_speed",
//w11
,"detect_narrow_internal_solid_infill"
"detect_narrow_internal_solid_infill",
//Y21
,"seam_gap"
"seam_gap",
//w16
, "top_one_wall_type"
"top_one_wall_type",
//w17
,"top_area_threshold"
"top_area_threshold",
//w21
,"filter_top_gap_infill"
"filter_top_gap_infill",
//w23
,"only_one_wall_first_layer"
"only_one_wall_first_layer",
//w25
,"slow_down_layers"
"slow_down_layers",
//w26
,"elefant_foot_compensation_layers"
"elefant_foot_compensation_layers",
//w27
,"precise_z_height"
"precise_z_height",
//w28
,"max_bridge_length"
"max_bridge_length",
//w30
,"top_solid_infill_flow_ratio", "bottom_solid_infill_flow_ratio"
"top_solid_infill_flow_ratio", "bottom_solid_infill_flow_ratio",
//w33
,"ironing_pattern"
"ironing_pattern",
//w38
,"overhang_reverse","overhang_reverse_internal_only","overhang_reverse_threshold"
"overhang_reverse", "overhang_reverse_internal_only", "overhang_reverse_threshold",
//w39
,"precise_outer_wall"};
"precise_outer_wall",
//Y27
"resonance_avoidance", "min_resonance_avoidance_speed", "max_resonance_avoidance_speed"
};
static std::vector<std::string> s_Preset_filament_options {
"filament_colour", "filament_diameter", "filament_type", "filament_soluble", "filament_notes", "filament_max_volumetric_speed",
@@ -567,8 +570,6 @@ static std::vector<std::string> s_Preset_printer_options {
"bed_exclude_area",
//Y25
"wipe_device",
//Y27
"resonance_avoidance", "min_resonance_avoidance_speed", "max_resonance_avoidance_speed",
//Y16
"chamber_temperature", "auxiliary_fan", "chamber_fan"
};

View File

@@ -228,10 +228,6 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|| opt_key == "single_extruder_multi_material"
//Y25
|| opt_key == "wipe_device"
//Y27
|| opt_key == "resonance_avoidance"
|| opt_key == "min_resonance_avoidance_speed"
|| opt_key == "max_resonance_avoidance_speed"
|| opt_key == "temperature"
|| opt_key == "idle_temperature"
|| opt_key == "wipe_tower"

View File

@@ -702,6 +702,30 @@ void PrintConfigDef::init_fff_params()
def->mode = comExpert;
def->set_default_value(new ConfigOptionBools{false});
//Y27
def = this->add("resonance_avoidance", coBool);
def->label = L("Resonance avoidance");
def->tooltip = L("By reducing the speed of the outer wall to avoid the resonance zone of the printer, ringing on the surface of the model are avoided.\n"
"Please turn this option off when testing ringing.");
def->mode = comExpert;
def->set_default_value(new ConfigOptionBool(true));
def = this->add("min_resonance_avoidance_speed", coFloat);
def->label = L("Min");
def->tooltip = L("Minimum speed of resonance avoidance.");
def->sidetext = L("mm/s");
def->min = 0;
def->mode = comExpert;
def->set_default_value(new ConfigOptionFloat(70));
def = this->add("max_resonance_avoidance_speed", coFloat);
def->label = L("Max");
def->tooltip = L("Maximum speed of resonance avoidance.");
def->sidetext = L("mm/s");
def->min = 0;
def->mode = comExpert;
def->set_default_value(new ConfigOptionFloat(120));
// TRN FilamentSettings : "Dynamic fan speeds"
auto fan_speed_setting_description = L("Overhang size is expressed as a percentage of overlap of the extrusion with the previous layer: "
"100% would be full overlap (no overhang), while 0% represents full overhang (floating extrusion, bridge). "
@@ -3007,30 +3031,6 @@ void PrintConfigDef::init_fff_params()
def->mode = comExpert;
def->set_default_value(new ConfigOptionBool(false));
//Y27
def = this->add("resonance_avoidance", coBool);
def->label = L("Resonance avoidance");
def->tooltip = L("By reducing the speed of the outer wall to avoid the resonance zone of the printer, ringing on the surface of the model are avoided. "
"Turn this option off when testing ringing.");
def->mode = comExpert;
def->set_default_value(new ConfigOptionBool(true));
def = this->add("min_resonance_avoidance_speed", coFloat);
def->label = L("Min");
def->tooltip = L("Minimum speed of resonance avoidance.");
def->sidetext = L("mm/s");
def->min = 0;
def->mode = comExpert;
def->set_default_value(new ConfigOptionFloat(70));
def = this->add("max_resonance_avoidance_speed", coFloat);
def->label = L("Max");
def->tooltip = L("Maximum speed of resonance avoidance.");
def->sidetext = L("mm/s");
def->min = 0;
def->mode = comExpert;
def->set_default_value(new ConfigOptionFloat(115));
def = this->add("single_extruder_multi_material_priming", coBool);
def->label = L("Prime all printing extruders");
def->tooltip = L("If enabled, all printing extruders will be primed at the front edge of the print bed at the start of the print.");

View File

@@ -626,6 +626,10 @@ PRINT_CONFIG_CLASS_DEFINE(
((ConfigOptionFloatOrPercent, overhang_speed_1))
((ConfigOptionFloatOrPercent, overhang_speed_2))
((ConfigOptionFloatOrPercent, overhang_speed_3))
//Y27
((ConfigOptionBool, resonance_avoidance))
((ConfigOptionFloat, min_resonance_avoidance_speed))
((ConfigOptionFloat, max_resonance_avoidance_speed))
((ConfigOptionBool, external_perimeters_first))
((ConfigOptionBool, extra_perimeters))
((ConfigOptionBool, extra_perimeters_on_overhangs))
@@ -785,10 +789,6 @@ PRINT_CONFIG_CLASS_DEFINE(
((ConfigOptionBool, single_extruder_multi_material))
//Y25
((ConfigOptionBool, wipe_device))
//Y27
((ConfigOptionBool, resonance_avoidance))
((ConfigOptionFloat, min_resonance_avoidance_speed))
((ConfigOptionFloat, max_resonance_avoidance_speed))
((ConfigOptionBool, single_extruder_multi_material_priming))
((ConfigOptionBool, wipe_tower_no_sparse_layers))
((ConfigOptionString, toolchange_gcode))

View File

@@ -253,6 +253,11 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig* config)
toggle_field("overhang_speed_" + std::to_string(i), config->opt_bool("enable_dynamic_overhang_speeds"));
}
//Y27
bool resonance_avoidance = config->opt_bool("resonance_avoidance");
toggle_field("min_resonance_avoidance_speed", resonance_avoidance);
toggle_field("max_resonance_avoidance_speed", resonance_avoidance);
bool have_infill = config->option<ConfigOptionPercent>("fill_density")->value > 0;
// infill_extruder uses the same logic as in Print::extruders()
for (auto el : { "fill_pattern", "infill_every_layers", "infill_only_where_needed",

View File

@@ -1625,6 +1625,14 @@ void TabPrint::build()
optgroup->append_single_option_line("overhang_speed_2");
optgroup->append_single_option_line("overhang_speed_3");
//Y27
optgroup = page->new_optgroup(L("Resonance Avoidance"));
optgroup->append_single_option_line("resonance_avoidance");
line = { L("Resonance Avoidance Speed"), "" };
line.append_option(optgroup->get_option("min_resonance_avoidance_speed"));
line.append_option(optgroup->get_option("max_resonance_avoidance_speed"));
optgroup->append_line(line);
optgroup = page->new_optgroup(L("Speed for non-print moves"));
optgroup->append_single_option_line("travel_speed");
optgroup->append_single_option_line("travel_speed_z");
@@ -2738,12 +2746,6 @@ void TabPrinter::build_fff()
Option option(def, "extruders_count");
optgroup->append_single_option_line(option);
optgroup->append_single_option_line("single_extruder_multi_material");
//Y27
optgroup->append_single_option_line("resonance_avoidance");
Line line = { L("Resonance Avoidance Speed"), "" };
line.append_option(optgroup->get_option("min_resonance_avoidance_speed"));
line.append_option(optgroup->get_option("max_resonance_avoidance_speed"));
optgroup->append_line(line);
optgroup->m_on_change = [this, optgroup_wk = ConfigOptionsGroupWkp(optgroup)](t_config_option_key opt_key, boost::any value) {
auto optgroup_sh = optgroup_wk.lock();
@@ -3615,10 +3617,6 @@ void TabPrinter::toggle_options()
toggle_option("toolchange_gcode", have_multiple_extruders);
if (m_active_page->title() == "General") {
toggle_option("single_extruder_multi_material", have_multiple_extruders);
//Y27
bool resonance_avoidance = m_config->opt_bool("resonance_avoidance");
toggle_option("min_resonance_avoidance_speed", resonance_avoidance);
toggle_option("max_resonance_avoidance_speed", resonance_avoidance);
bool is_marlin_flavor = flavor == gcfMarlinLegacy || flavor == gcfMarlinFirmware;
// Disable silent mode for non-marlin firmwares.