From 45a00489ec6752df13051dd5fd0dd092041f807a Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 16 Dec 2022 20:08:04 +0800 Subject: [PATCH] fix crash when open filament setting dialog --- src/libslic3r/Preset.cpp | 47 ++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 15424401c..243f6326f 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -346,7 +346,6 @@ void Preset::normalize(DynamicPrintConfig &config) } } - handle_legacy_sla(config); } @@ -718,11 +717,10 @@ static std::vector s_Preset_print_options { #ifdef HAS_PRESSURE_EQUALIZER "max_volumetric_extrusion_rate_slope_positive", "max_volumetric_extrusion_rate_slope_negative", #endif /* HAS_PRESSURE_EQUALIZER */ - "inner_wall_speed", "outer_wall_speed", "small_perimeter_speed", "small_perimeter_threshold", "sparse_infill_speed", "internal_solid_infill_speed", + "inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed", "top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed", - "bridge_speed", "bridge_angle", "filter_out_gap_fill", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", - "outer_wall_acceleration", "inner_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "travel_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield", - "default_jerk", "outer_wall_jerk", "inner_wall_jerk", "top_surface_jerk", "initial_layer_jerk","travel_jerk", + "bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", + "outer_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield", "brim_width", "brim_object_gap", "brim_type", "enable_support", "support_type", "support_threshold_angle", "enforce_support_layers", "raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion", "support_base_pattern", "support_base_pattern_spacing", "support_expansion", "support_style", @@ -750,14 +748,16 @@ static std::vector s_Preset_print_options { "timelapse_type", "internal_bridge_support_thickness", "wall_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle", "wall_distribution_count", "min_feature_size", "min_bead_width", - //SoftFever + "small_perimeter_speed", "small_perimeter_threshold","bridge_angle", "filter_out_gap_fill", "travel_acceleration","inner_wall_acceleration", + "default_jerk", "outer_wall_jerk", "inner_wall_jerk", "top_surface_jerk", "initial_layer_jerk","travel_jerk", "top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio","only_one_wall_first_layer" }; static std::vector s_Preset_filament_options { - /*"filament_colour", */ "default_filament_colour","filament_diameter", "filament_type", "filament_soluble", "filament_is_support", "filament_max_volumetric_speed", - "filament_flow_ratio", "enable_pressure_advance", "pressure_advance", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower", - "chamber_temperature", "nozzle_temperature", "nozzle_temperature_initial_layer", + /*"filament_colour", */ "default_filament_colour","required_nozzle_HRC","filament_diameter", "filament_type", "filament_soluble", "filament_is_support", + "filament_max_volumetric_speed", + "filament_flow_ratio", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower", + "nozzle_temperature", "nozzle_temperature_initial_layer", // BBS "cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer","textured_plate_temp_initial_layer", // "bed_type", @@ -772,7 +772,9 @@ static std::vector s_Preset_filament_options { "filament_vendor", "compatible_prints", "compatible_prints_condition", "compatible_printers", "compatible_printers_condition", "inherits", //BBS "filament_wipe_distance", "additional_cooling_fan_speed", - "bed_temperature_difference", "nozzle_temperature_range_low", "nozzle_temperature_range_high" + "bed_temperature_difference", "nozzle_temperature_range_low", "nozzle_temperature_range_high", + //SoftFever + "enable_pressure_advance", "pressure_advance","chamber_temperature" }; static std::vector s_Preset_machine_limits_options { @@ -785,20 +787,19 @@ static std::vector s_Preset_machine_limits_options { static std::vector s_Preset_printer_options { "printer_technology", - "printable_area", "bed_exclude_area","bed_custom_texture", "bed_custom_model", "gcode_flavor", "z_lift_type", + "printable_area", "bed_exclude_area","bed_custom_texture", "bed_custom_model", "gcode_flavor", "single_extruder_multi_material", "machine_start_gcode", "machine_end_gcode", "before_layer_change_gcode", "layer_change_gcode", "change_filament_gcode", "printer_model", "printer_variant", "printable_height", "extruder_clearance_radius", "extruder_clearance_max_radius","extruder_clearance_height_to_lid", "extruder_clearance_height_to_rod", "default_print_profile", "inherits", "silent_mode", // BBS "scan_first_layer", "machine_load_filament_time", "machine_unload_filament_time", "machine_pause_gcode", "template_custom_gcode", - "nozzle_type", "nozzle_hrc","nozzle_diameter", "auxiliary_fan", "nozzle_volume","upward_compatible_machine", + "nozzle_type", "nozzle_hrc","auxiliary_fan", "nozzle_volume","upward_compatible_machine", //SoftFever "host_type", "print_host", "printhost_apikey", "printhost_cafile","printhost_port","printhost_authorization_type", - "printhost_user", - "printhost_password", - "printhost_ssl_ignore_revoke", "thumbnails" + "printhost_user", "printhost_password", "printhost_ssl_ignore_revoke", + "z_lift_type", "thumbnails" }; static std::vector s_Preset_sla_print_options { @@ -2285,21 +2286,6 @@ void add_correct_opts_to_diff(const std::string &opt_key, t_config_option_keys& } } -// template -// void add_correct_opt_to_diff(const std::string &opt_key, t_config_option_keys& vec, const ConfigBase &other, const ConfigBase &this_c) -// { -// const T* opt_init = static_cast(other.option(opt_key)); -// const T* opt_cur = static_cast(this_c.option(opt_key)); -// int opt_init_max_id = opt_init->values.size() - 1; -// for (int i = 0; i < int(opt_cur->values.size()); i++) -// { -// int init_id = i <= opt_init_max_id ? i : 0; -// if (opt_cur->values[i] != opt_init->values[init_id]) -// vec.emplace_back(opt_key + "#" + std::to_string(i)); -// } -// } - - // Use deep_diff to correct return of changed options, considering individual options for each extruder. inline t_config_option_keys deep_diff(const ConfigBase &config_this, const ConfigBase &config_other) { @@ -2323,7 +2309,6 @@ inline t_config_option_keys deep_diff(const ConfigBase &config_this, const Confi case coBools: add_correct_opts_to_diff(opt_key, diff, config_other, config_this); break; case coFloats: add_correct_opts_to_diff(opt_key, diff, config_other, config_this); break; case coStrings: add_correct_opts_to_diff(opt_key, diff, config_other, config_this); break; - // case coString: add_correct_opts_to_diff(opt_key, diff, config_other, config_this); break; case coPercents:add_correct_opts_to_diff(opt_key, diff, config_other, config_this); break; case coPoints: add_correct_opts_to_diff(opt_key, diff, config_other, config_this); break; // BBS