mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-30 23:48:44 +03:00
Update Resonance Avoidance
This commit is contained in:
@@ -128,11 +128,13 @@ ironing_type = top
|
|||||||
layer_height = 0.2
|
layer_height = 0.2
|
||||||
max_bridge_length = 10
|
max_bridge_length = 10
|
||||||
max_print_speed = 600
|
max_print_speed = 600
|
||||||
|
max_resonance_avoidance_speed = 120
|
||||||
max_volumetric_extrusion_rate_slope_negative = 0
|
max_volumetric_extrusion_rate_slope_negative = 0
|
||||||
max_volumetric_extrusion_rate_slope_positive = 0
|
max_volumetric_extrusion_rate_slope_positive = 0
|
||||||
max_volumetric_speed = 0
|
max_volumetric_speed = 0
|
||||||
min_bead_width = 85%
|
min_bead_width = 85%
|
||||||
min_feature_size = 25%
|
min_feature_size = 25%
|
||||||
|
min_resonance_avoidance_speed = 70
|
||||||
min_skirt_length = 5
|
min_skirt_length = 5
|
||||||
mmu_segmented_region_interlocking_depth = 0
|
mmu_segmented_region_interlocking_depth = 0
|
||||||
mmu_segmented_region_max_width = 0
|
mmu_segmented_region_max_width = 0
|
||||||
@@ -160,6 +162,7 @@ raft_first_layer_density = 90%
|
|||||||
raft_first_layer_expansion = 3
|
raft_first_layer_expansion = 3
|
||||||
raft_layers = 0
|
raft_layers = 0
|
||||||
resolution = 0
|
resolution = 0
|
||||||
|
resonance_avoidance = 1
|
||||||
seam_gap = 15%
|
seam_gap = 15%
|
||||||
seam_position = aligned
|
seam_position = aligned
|
||||||
single_extruder_multi_material_priming = 0
|
single_extruder_multi_material_priming = 0
|
||||||
@@ -169,7 +172,7 @@ skirts = 0
|
|||||||
slice_closing_radius = 0.049
|
slice_closing_radius = 0.049
|
||||||
slicing_mode = regular
|
slicing_mode = regular
|
||||||
slow_down_layers = 0
|
slow_down_layers = 0
|
||||||
small_perimeter_speed = 70
|
small_perimeter_speed = 100
|
||||||
solid_infill_acceleration = 10000
|
solid_infill_acceleration = 10000
|
||||||
solid_infill_below_area = 15
|
solid_infill_below_area = 15
|
||||||
solid_infill_every_layers = 0
|
solid_infill_every_layers = 0
|
||||||
@@ -2529,9 +2532,7 @@ machine_min_extruding_rate = 0
|
|||||||
machine_min_travel_rate = 0
|
machine_min_travel_rate = 0
|
||||||
max_layer_height = 0.28
|
max_layer_height = 0.28
|
||||||
max_print_height = 315
|
max_print_height = 315
|
||||||
max_resonance_avoidance_speed = 115
|
|
||||||
min_layer_height = 0.08
|
min_layer_height = 0.08
|
||||||
min_resonance_avoidance_speed = 70
|
|
||||||
multimaterial_purging = 45
|
multimaterial_purging = 45
|
||||||
nozzle_diameter = 0.4
|
nozzle_diameter = 0.4
|
||||||
parking_pos_retraction = 92
|
parking_pos_retraction = 92
|
||||||
@@ -2546,7 +2547,6 @@ printer_vendor = QIDI
|
|||||||
printhost_apikey =
|
printhost_apikey =
|
||||||
printhost_cafile =
|
printhost_cafile =
|
||||||
remaining_times = 1
|
remaining_times = 1
|
||||||
resonance_avoidance = 1
|
|
||||||
retract_before_travel = 1
|
retract_before_travel = 1
|
||||||
retract_before_wipe = 0%
|
retract_before_wipe = 0%
|
||||||
retract_layer_change = 1
|
retract_layer_change = 1
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -456,6 +456,9 @@ private:
|
|||||||
// Processor
|
// Processor
|
||||||
GCodeProcessor m_processor;
|
GCodeProcessor m_processor;
|
||||||
|
|
||||||
|
//Y27
|
||||||
|
bool m_resonance_avoidance;
|
||||||
|
|
||||||
// Back-pointer to Print (const).
|
// Back-pointer to Print (const).
|
||||||
const Print* m_print;
|
const Print* m_print;
|
||||||
std::string _extrude(
|
std::string _extrude(
|
||||||
|
|||||||
@@ -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",
|
"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",
|
"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",
|
"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
|
//B36
|
||||||
,"first_layer_travel_speed"
|
"first_layer_travel_speed",
|
||||||
//B37
|
//B37
|
||||||
,"first_layer_infill_speed"
|
"first_layer_infill_speed",
|
||||||
//w11
|
//w11
|
||||||
,"detect_narrow_internal_solid_infill"
|
"detect_narrow_internal_solid_infill",
|
||||||
//Y21
|
//Y21
|
||||||
,"seam_gap"
|
"seam_gap",
|
||||||
//w16
|
//w16
|
||||||
, "top_one_wall_type"
|
"top_one_wall_type",
|
||||||
//w17
|
//w17
|
||||||
,"top_area_threshold"
|
"top_area_threshold",
|
||||||
//w21
|
//w21
|
||||||
,"filter_top_gap_infill"
|
"filter_top_gap_infill",
|
||||||
//w23
|
//w23
|
||||||
,"only_one_wall_first_layer"
|
"only_one_wall_first_layer",
|
||||||
//w25
|
//w25
|
||||||
,"slow_down_layers"
|
"slow_down_layers",
|
||||||
//w26
|
//w26
|
||||||
,"elefant_foot_compensation_layers"
|
"elefant_foot_compensation_layers",
|
||||||
//w27
|
//w27
|
||||||
,"precise_z_height"
|
"precise_z_height",
|
||||||
//w28
|
//w28
|
||||||
,"max_bridge_length"
|
"max_bridge_length",
|
||||||
//w30
|
//w30
|
||||||
,"top_solid_infill_flow_ratio", "bottom_solid_infill_flow_ratio"
|
"top_solid_infill_flow_ratio", "bottom_solid_infill_flow_ratio",
|
||||||
//w33
|
//w33
|
||||||
,"ironing_pattern"
|
"ironing_pattern",
|
||||||
//w38
|
//w38
|
||||||
,"overhang_reverse","overhang_reverse_internal_only","overhang_reverse_threshold"
|
"overhang_reverse", "overhang_reverse_internal_only", "overhang_reverse_threshold",
|
||||||
//w39
|
//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 {
|
static std::vector<std::string> s_Preset_filament_options {
|
||||||
"filament_colour", "filament_diameter", "filament_type", "filament_soluble", "filament_notes", "filament_max_volumetric_speed",
|
"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",
|
"bed_exclude_area",
|
||||||
//Y25
|
//Y25
|
||||||
"wipe_device",
|
"wipe_device",
|
||||||
//Y27
|
|
||||||
"resonance_avoidance", "min_resonance_avoidance_speed", "max_resonance_avoidance_speed",
|
|
||||||
//Y16
|
//Y16
|
||||||
"chamber_temperature", "auxiliary_fan", "chamber_fan"
|
"chamber_temperature", "auxiliary_fan", "chamber_fan"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -228,10 +228,6 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
|||||||
|| opt_key == "single_extruder_multi_material"
|
|| opt_key == "single_extruder_multi_material"
|
||||||
//Y25
|
//Y25
|
||||||
|| opt_key == "wipe_device"
|
|| 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 == "temperature"
|
||||||
|| opt_key == "idle_temperature"
|
|| opt_key == "idle_temperature"
|
||||||
|| opt_key == "wipe_tower"
|
|| opt_key == "wipe_tower"
|
||||||
|
|||||||
@@ -702,6 +702,30 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->mode = comExpert;
|
def->mode = comExpert;
|
||||||
def->set_default_value(new ConfigOptionBools{false});
|
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"
|
// 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: "
|
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). "
|
"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->mode = comExpert;
|
||||||
def->set_default_value(new ConfigOptionBool(false));
|
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 = this->add("single_extruder_multi_material_priming", coBool);
|
||||||
def->label = L("Prime all printing extruders");
|
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.");
|
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.");
|
||||||
|
|||||||
@@ -626,6 +626,10 @@ PRINT_CONFIG_CLASS_DEFINE(
|
|||||||
((ConfigOptionFloatOrPercent, overhang_speed_1))
|
((ConfigOptionFloatOrPercent, overhang_speed_1))
|
||||||
((ConfigOptionFloatOrPercent, overhang_speed_2))
|
((ConfigOptionFloatOrPercent, overhang_speed_2))
|
||||||
((ConfigOptionFloatOrPercent, overhang_speed_3))
|
((ConfigOptionFloatOrPercent, overhang_speed_3))
|
||||||
|
//Y27
|
||||||
|
((ConfigOptionBool, resonance_avoidance))
|
||||||
|
((ConfigOptionFloat, min_resonance_avoidance_speed))
|
||||||
|
((ConfigOptionFloat, max_resonance_avoidance_speed))
|
||||||
((ConfigOptionBool, external_perimeters_first))
|
((ConfigOptionBool, external_perimeters_first))
|
||||||
((ConfigOptionBool, extra_perimeters))
|
((ConfigOptionBool, extra_perimeters))
|
||||||
((ConfigOptionBool, extra_perimeters_on_overhangs))
|
((ConfigOptionBool, extra_perimeters_on_overhangs))
|
||||||
@@ -785,10 +789,6 @@ PRINT_CONFIG_CLASS_DEFINE(
|
|||||||
((ConfigOptionBool, single_extruder_multi_material))
|
((ConfigOptionBool, single_extruder_multi_material))
|
||||||
//Y25
|
//Y25
|
||||||
((ConfigOptionBool, wipe_device))
|
((ConfigOptionBool, wipe_device))
|
||||||
//Y27
|
|
||||||
((ConfigOptionBool, resonance_avoidance))
|
|
||||||
((ConfigOptionFloat, min_resonance_avoidance_speed))
|
|
||||||
((ConfigOptionFloat, max_resonance_avoidance_speed))
|
|
||||||
((ConfigOptionBool, single_extruder_multi_material_priming))
|
((ConfigOptionBool, single_extruder_multi_material_priming))
|
||||||
((ConfigOptionBool, wipe_tower_no_sparse_layers))
|
((ConfigOptionBool, wipe_tower_no_sparse_layers))
|
||||||
((ConfigOptionString, toolchange_gcode))
|
((ConfigOptionString, toolchange_gcode))
|
||||||
|
|||||||
@@ -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"));
|
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;
|
bool have_infill = config->option<ConfigOptionPercent>("fill_density")->value > 0;
|
||||||
// infill_extruder uses the same logic as in Print::extruders()
|
// infill_extruder uses the same logic as in Print::extruders()
|
||||||
for (auto el : { "fill_pattern", "infill_every_layers", "infill_only_where_needed",
|
for (auto el : { "fill_pattern", "infill_every_layers", "infill_only_where_needed",
|
||||||
|
|||||||
@@ -1625,6 +1625,14 @@ void TabPrint::build()
|
|||||||
optgroup->append_single_option_line("overhang_speed_2");
|
optgroup->append_single_option_line("overhang_speed_2");
|
||||||
optgroup->append_single_option_line("overhang_speed_3");
|
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 = page->new_optgroup(L("Speed for non-print moves"));
|
||||||
optgroup->append_single_option_line("travel_speed");
|
optgroup->append_single_option_line("travel_speed");
|
||||||
optgroup->append_single_option_line("travel_speed_z");
|
optgroup->append_single_option_line("travel_speed_z");
|
||||||
@@ -2738,12 +2746,6 @@ void TabPrinter::build_fff()
|
|||||||
Option option(def, "extruders_count");
|
Option option(def, "extruders_count");
|
||||||
optgroup->append_single_option_line(option);
|
optgroup->append_single_option_line(option);
|
||||||
optgroup->append_single_option_line("single_extruder_multi_material");
|
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) {
|
optgroup->m_on_change = [this, optgroup_wk = ConfigOptionsGroupWkp(optgroup)](t_config_option_key opt_key, boost::any value) {
|
||||||
auto optgroup_sh = optgroup_wk.lock();
|
auto optgroup_sh = optgroup_wk.lock();
|
||||||
@@ -3615,10 +3617,6 @@ void TabPrinter::toggle_options()
|
|||||||
toggle_option("toolchange_gcode", have_multiple_extruders);
|
toggle_option("toolchange_gcode", have_multiple_extruders);
|
||||||
if (m_active_page->title() == "General") {
|
if (m_active_page->title() == "General") {
|
||||||
toggle_option("single_extruder_multi_material", have_multiple_extruders);
|
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;
|
bool is_marlin_flavor = flavor == gcfMarlinLegacy || flavor == gcfMarlinFirmware;
|
||||||
// Disable silent mode for non-marlin firmwares.
|
// Disable silent mode for non-marlin firmwares.
|
||||||
|
|||||||
Reference in New Issue
Block a user