mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Initialization of various Preset list of config options was made
thread safe.
This commit is contained in:
		
							parent
							
								
									16562a2e77
								
							
						
					
					
						commit
						c029cd44a4
					
				
					 1 changed files with 185 additions and 218 deletions
				
			
		|  | @ -413,212 +413,181 @@ void Preset::set_visible_from_appconfig(const AppConfig &app_config) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| const std::vector<std::string>& Preset::print_options() | ||||
| { | ||||
|     static std::vector<std::string> s_opts { | ||||
|         "layer_height", "first_layer_height", "perimeters", "spiral_vase", "slice_closing_radius", "slicing_mode", | ||||
|         "top_solid_layers", "top_solid_min_thickness", "bottom_solid_layers", "bottom_solid_min_thickness", | ||||
|         "extra_perimeters", "ensure_vertical_shell_thickness", "avoid_crossing_perimeters", "thin_walls", "overhangs", | ||||
|         "seam_position", "external_perimeters_first", "fill_density", "fill_pattern", "top_fill_pattern", "bottom_fill_pattern", | ||||
|         "infill_every_layers", "infill_only_where_needed", "solid_infill_every_layers", "fill_angle", "bridge_angle", | ||||
|         "solid_infill_below_area", "only_retract_when_crossing_perimeters", "infill_first", | ||||
|     	"ironing", "ironing_type", "ironing_flowrate", "ironing_speed", "ironing_spacing", | ||||
|         "max_print_speed", "max_volumetric_speed", "avoid_crossing_perimeters_max_detour", | ||||
|         "fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_dist", | ||||
| static std::vector<std::string> s_Preset_print_options { | ||||
|     "layer_height", "first_layer_height", "perimeters", "spiral_vase", "slice_closing_radius", "slicing_mode", | ||||
|     "top_solid_layers", "top_solid_min_thickness", "bottom_solid_layers", "bottom_solid_min_thickness", | ||||
|     "extra_perimeters", "ensure_vertical_shell_thickness", "avoid_crossing_perimeters", "thin_walls", "overhangs", | ||||
|     "seam_position", "external_perimeters_first", "fill_density", "fill_pattern", "top_fill_pattern", "bottom_fill_pattern", | ||||
|     "infill_every_layers", "infill_only_where_needed", "solid_infill_every_layers", "fill_angle", "bridge_angle", | ||||
|     "solid_infill_below_area", "only_retract_when_crossing_perimeters", "infill_first", | ||||
|     "ironing", "ironing_type", "ironing_flowrate", "ironing_speed", "ironing_spacing", | ||||
|     "max_print_speed", "max_volumetric_speed", "avoid_crossing_perimeters_max_detour", | ||||
|     "fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_dist", | ||||
| #ifdef HAS_PRESSURE_EQUALIZER | ||||
|         "max_volumetric_extrusion_rate_slope_positive", "max_volumetric_extrusion_rate_slope_negative", | ||||
|     "max_volumetric_extrusion_rate_slope_positive", "max_volumetric_extrusion_rate_slope_negative", | ||||
| #endif /* HAS_PRESSURE_EQUALIZER */ | ||||
|         "perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed", | ||||
|         "top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed", | ||||
|         "bridge_speed", "gap_fill_speed", "gap_fill_enabled", "travel_speed", "travel_speed_z", "first_layer_speed", "perimeter_acceleration", "infill_acceleration", | ||||
|         "bridge_acceleration", "first_layer_acceleration", "default_acceleration", "skirts", "skirt_distance", "skirt_height", "draft_shield", | ||||
|         "min_skirt_length", "brim_width", "brim_offset", "brim_type", "support_material", "support_material_auto", "support_material_threshold", "support_material_enforce_layers", | ||||
|         "raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion", | ||||
|         "support_material_pattern", "support_material_with_sheath", "support_material_spacing", "support_material_closing_radius", "support_material_style", | ||||
|         "support_material_synchronize_layers", "support_material_angle", "support_material_interface_layers", "support_material_bottom_interface_layers", | ||||
|         "support_material_interface_pattern", "support_material_interface_spacing", "support_material_interface_contact_loops",  | ||||
|         "support_material_contact_distance", "support_material_bottom_contact_distance", | ||||
|         "support_material_buildplate_only", "dont_support_bridges", "thick_bridges", "notes", "complete_objects", "extruder_clearance_radius", | ||||
|         "extruder_clearance_height", "gcode_comments", "gcode_label_objects", "output_filename_format", "post_process", "perimeter_extruder", | ||||
|         "infill_extruder", "solid_infill_extruder", "support_material_extruder", "support_material_interface_extruder", | ||||
|         "ooze_prevention", "standby_temperature_delta", "interface_shells", "extrusion_width", "first_layer_extrusion_width", | ||||
|         "perimeter_extrusion_width", "external_perimeter_extrusion_width", "infill_extrusion_width", "solid_infill_extrusion_width", | ||||
|         "top_infill_extrusion_width", "support_material_extrusion_width", "infill_overlap", "infill_anchor", "infill_anchor_max", "bridge_flow_ratio", "clip_multipart_objects", | ||||
|         "elefant_foot_compensation", "xy_size_compensation", "threads", "resolution", "wipe_tower", "wipe_tower_x", "wipe_tower_y", | ||||
|         "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width", "wipe_tower_bridging", "single_extruder_multi_material_priming", "mmu_segmented_region_max_width", | ||||
|         "wipe_tower_no_sparse_layers", "compatible_printers", "compatible_printers_condition", "inherits" | ||||
|     }; | ||||
|     return s_opts; | ||||
| } | ||||
|     "perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed", | ||||
|     "top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed", | ||||
|     "bridge_speed", "gap_fill_speed", "gap_fill_enabled", "travel_speed", "travel_speed_z", "first_layer_speed", "perimeter_acceleration", "infill_acceleration", | ||||
|     "bridge_acceleration", "first_layer_acceleration", "default_acceleration", "skirts", "skirt_distance", "skirt_height", "draft_shield", | ||||
|     "min_skirt_length", "brim_width", "brim_offset", "brim_type", "support_material", "support_material_auto", "support_material_threshold", "support_material_enforce_layers", | ||||
|     "raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion", | ||||
|     "support_material_pattern", "support_material_with_sheath", "support_material_spacing", "support_material_closing_radius", "support_material_style", | ||||
|     "support_material_synchronize_layers", "support_material_angle", "support_material_interface_layers", "support_material_bottom_interface_layers", | ||||
|     "support_material_interface_pattern", "support_material_interface_spacing", "support_material_interface_contact_loops",  | ||||
|     "support_material_contact_distance", "support_material_bottom_contact_distance", | ||||
|     "support_material_buildplate_only", "dont_support_bridges", "thick_bridges", "notes", "complete_objects", "extruder_clearance_radius", | ||||
|     "extruder_clearance_height", "gcode_comments", "gcode_label_objects", "output_filename_format", "post_process", "perimeter_extruder", | ||||
|     "infill_extruder", "solid_infill_extruder", "support_material_extruder", "support_material_interface_extruder", | ||||
|     "ooze_prevention", "standby_temperature_delta", "interface_shells", "extrusion_width", "first_layer_extrusion_width", | ||||
|     "perimeter_extrusion_width", "external_perimeter_extrusion_width", "infill_extrusion_width", "solid_infill_extrusion_width", | ||||
|     "top_infill_extrusion_width", "support_material_extrusion_width", "infill_overlap", "infill_anchor", "infill_anchor_max", "bridge_flow_ratio", "clip_multipart_objects", | ||||
|     "elefant_foot_compensation", "xy_size_compensation", "threads", "resolution", "wipe_tower", "wipe_tower_x", "wipe_tower_y", | ||||
|     "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width", "wipe_tower_bridging", "single_extruder_multi_material_priming", "mmu_segmented_region_max_width", | ||||
|     "wipe_tower_no_sparse_layers", "compatible_printers", "compatible_printers_condition", "inherits" | ||||
| }; | ||||
| 
 | ||||
| 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", | ||||
|         "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_cooling_initial_speed", "filament_cooling_final_speed", "filament_ramming_parameters", "filament_minimal_purge_on_wipe_tower", | ||||
|         "temperature", "first_layer_temperature", "bed_temperature", "first_layer_bed_temperature", "fan_always_on", "cooling", "min_fan_speed", | ||||
|         "max_fan_speed", "bridge_fan_speed", "disable_fan_first_layers", "full_fan_speed_layer", "fan_below_layer_time", "slowdown_below_layer_time", "min_print_speed", | ||||
|         "start_filament_gcode", "end_filament_gcode", | ||||
|         // Retract overrides
 | ||||
|         "filament_retract_length", "filament_retract_lift", "filament_retract_lift_above", "filament_retract_lift_below", "filament_retract_speed", "filament_deretract_speed", "filament_retract_restart_extra", "filament_retract_before_travel", | ||||
|         "filament_retract_layer_change", "filament_wipe", "filament_retract_before_wipe", | ||||
|         // Profile compatibility
 | ||||
|         "filament_vendor", "compatible_prints", "compatible_prints_condition", "compatible_printers", "compatible_printers_condition", "inherits" | ||||
|     }; | ||||
|     return s_opts; | ||||
| } | ||||
| 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_cooling_initial_speed", "filament_cooling_final_speed", "filament_ramming_parameters", "filament_minimal_purge_on_wipe_tower", | ||||
|     "temperature", "first_layer_temperature", "bed_temperature", "first_layer_bed_temperature", "fan_always_on", "cooling", "min_fan_speed", | ||||
|     "max_fan_speed", "bridge_fan_speed", "disable_fan_first_layers", "full_fan_speed_layer", "fan_below_layer_time", "slowdown_below_layer_time", "min_print_speed", | ||||
|     "start_filament_gcode", "end_filament_gcode", | ||||
|     // Retract overrides
 | ||||
|     "filament_retract_length", "filament_retract_lift", "filament_retract_lift_above", "filament_retract_lift_below", "filament_retract_speed", "filament_deretract_speed", "filament_retract_restart_extra", "filament_retract_before_travel", | ||||
|     "filament_retract_layer_change", "filament_wipe", "filament_retract_before_wipe", | ||||
|     // Profile compatibility
 | ||||
|     "filament_vendor", "compatible_prints", "compatible_prints_condition", "compatible_printers", "compatible_printers_condition", "inherits" | ||||
| }; | ||||
| 
 | ||||
| const std::vector<std::string>& Preset::machine_limits_options() | ||||
| { | ||||
|     static std::vector<std::string> s_opts; | ||||
|     if (s_opts.empty()) { | ||||
|         s_opts = { | ||||
|             "machine_max_acceleration_extruding", "machine_max_acceleration_retracting", "machine_max_acceleration_travel", | ||||
| 		    "machine_max_acceleration_x", "machine_max_acceleration_y", "machine_max_acceleration_z", "machine_max_acceleration_e", | ||||
| 		    "machine_max_feedrate_x", "machine_max_feedrate_y", "machine_max_feedrate_z", "machine_max_feedrate_e", | ||||
| 		    "machine_min_extruding_rate", "machine_min_travel_rate", | ||||
| 		    "machine_max_jerk_x", "machine_max_jerk_y", "machine_max_jerk_z", "machine_max_jerk_e", | ||||
| 		}; | ||||
| 	} | ||||
| 	return s_opts; | ||||
| } | ||||
| static std::vector<std::string> s_Preset_machine_limits_options { | ||||
|     "machine_max_acceleration_extruding", "machine_max_acceleration_retracting", "machine_max_acceleration_travel", | ||||
|     "machine_max_acceleration_x", "machine_max_acceleration_y", "machine_max_acceleration_z", "machine_max_acceleration_e", | ||||
|     "machine_max_feedrate_x", "machine_max_feedrate_y", "machine_max_feedrate_z", "machine_max_feedrate_e", | ||||
|     "machine_min_extruding_rate", "machine_min_travel_rate", | ||||
|     "machine_max_jerk_x", "machine_max_jerk_y", "machine_max_jerk_z", "machine_max_jerk_e", | ||||
| }; | ||||
| 
 | ||||
| static std::vector<std::string> s_Preset_printer_options { | ||||
|     "printer_technology", | ||||
|     "bed_shape", "bed_custom_texture", "bed_custom_model", "z_offset", "gcode_flavor", "use_relative_e_distances", | ||||
|     "use_firmware_retraction", "use_volumetric_e", "variable_layer_height", | ||||
|     //FIXME the print host keys are left here just for conversion from the Printer preset to Physical Printer preset.
 | ||||
|     "host_type", "print_host", "printhost_apikey", "printhost_cafile", | ||||
|     "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", | ||||
|     "color_change_gcode", "pause_print_gcode", "template_custom_gcode", | ||||
|     "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "cooling_tube_retraction", | ||||
|     "cooling_tube_length", "high_current_on_filament_swap", "parking_pos_retraction", "extra_loading_move", "max_print_height", | ||||
|     "default_print_profile", "inherits", | ||||
|     "remaining_times", "silent_mode", | ||||
|     "machine_limits_usage", "thumbnails" | ||||
| }; | ||||
| 
 | ||||
| static std::vector<std::string> s_Preset_sla_print_options { | ||||
|     "layer_height", | ||||
|     "faded_layers", | ||||
|     "supports_enable", | ||||
|     "support_head_front_diameter", | ||||
|     "support_head_penetration", | ||||
|     "support_head_width", | ||||
|     "support_pillar_diameter", | ||||
|     "support_small_pillar_diameter_percent", | ||||
|     "support_max_bridges_on_pillar", | ||||
|     "support_pillar_connection_mode", | ||||
|     "support_buildplate_only", | ||||
|     "support_pillar_widening_factor", | ||||
|     "support_base_diameter", | ||||
|     "support_base_height", | ||||
|     "support_base_safety_distance", | ||||
|     "support_critical_angle", | ||||
|     "support_max_bridge_length", | ||||
|     "support_max_pillar_link_distance", | ||||
|     "support_object_elevation", | ||||
|     "support_points_density_relative", | ||||
|     "support_points_minimal_distance", | ||||
|     "slice_closing_radius", | ||||
|     "slicing_mode", | ||||
|     "pad_enable", | ||||
|     "pad_wall_thickness", | ||||
|     "pad_wall_height", | ||||
|     "pad_brim_size", | ||||
|     "pad_max_merge_distance", | ||||
|     // "pad_edge_radius",
 | ||||
|     "pad_wall_slope", | ||||
|     "pad_object_gap", | ||||
|     "pad_around_object", | ||||
|     "pad_around_object_everywhere", | ||||
|     "pad_object_connector_stride", | ||||
|     "pad_object_connector_width", | ||||
|     "pad_object_connector_penetration", | ||||
|     "hollowing_enable", | ||||
|     "hollowing_min_thickness", | ||||
|     "hollowing_quality", | ||||
|     "hollowing_closing_distance", | ||||
|     "output_filename_format", | ||||
|     "default_sla_print_profile", | ||||
|     "compatible_printers", | ||||
|     "compatible_printers_condition", | ||||
|     "inherits" | ||||
| }; | ||||
| 
 | ||||
| static std::vector<std::string> s_Preset_sla_material_options { | ||||
|     "material_type", | ||||
|     "initial_layer_height", | ||||
|     "bottle_cost", | ||||
|     "bottle_volume", | ||||
|     "bottle_weight", | ||||
|     "material_density", | ||||
|     "exposure_time", | ||||
|     "initial_exposure_time", | ||||
|     "material_correction", | ||||
|     "material_notes", | ||||
|     "material_vendor", | ||||
|     "default_sla_material_profile", | ||||
|     "compatible_prints", "compatible_prints_condition", | ||||
|     "compatible_printers", "compatible_printers_condition", "inherits" | ||||
| }; | ||||
| 
 | ||||
| static std::vector<std::string> s_Preset_sla_printer_options { | ||||
|     "printer_technology", | ||||
|     "bed_shape", "bed_custom_texture", "bed_custom_model", "max_print_height", | ||||
|     "display_width", "display_height", "display_pixels_x", "display_pixels_y", | ||||
|     "display_mirror_x", "display_mirror_y", | ||||
|     "display_orientation", | ||||
|     "fast_tilt_time", "slow_tilt_time", "area_fill", | ||||
|     "relative_correction", | ||||
|     "absolute_correction", | ||||
|     "elefant_foot_compensation", | ||||
|     "elefant_foot_min_width", | ||||
|     "gamma_correction", | ||||
|     "min_exposure_time", "max_exposure_time", | ||||
|     "min_initial_exposure_time", "max_initial_exposure_time", | ||||
|     //FIXME the print host keys are left here just for conversion from the Printer preset to Physical Printer preset.
 | ||||
|     "print_host", "printhost_apikey", "printhost_cafile", | ||||
|     "printer_notes", | ||||
|     "inherits" | ||||
| }; | ||||
| 
 | ||||
| const std::vector<std::string>& Preset::print_options()          { return s_Preset_print_options; } | ||||
| const std::vector<std::string>& Preset::filament_options()       { return s_Preset_filament_options; } | ||||
| const std::vector<std::string>& Preset::machine_limits_options() { return s_Preset_machine_limits_options; } | ||||
| // The following nozzle options of a printer profile will be adjusted to match the size
 | ||||
| // of the nozzle_diameter vector.
 | ||||
| const std::vector<std::string>& Preset::nozzle_options()         { return print_config_def.extruder_option_keys(); } | ||||
| const std::vector<std::string>& Preset::sla_print_options()      { return s_Preset_sla_print_options; } | ||||
| const std::vector<std::string>& Preset::sla_material_options()   { return s_Preset_sla_material_options; } | ||||
| const std::vector<std::string>& Preset::sla_printer_options()    { return s_Preset_sla_printer_options; } | ||||
| 
 | ||||
| const std::vector<std::string>& Preset::printer_options() | ||||
| { | ||||
|     static std::vector<std::string> s_opts; | ||||
|     if (s_opts.empty()) { | ||||
|         s_opts = { | ||||
|             "printer_technology", | ||||
|             "bed_shape", "bed_custom_texture", "bed_custom_model", "z_offset", "gcode_flavor", "use_relative_e_distances", | ||||
|             "use_firmware_retraction", "use_volumetric_e", "variable_layer_height", | ||||
|             //FIXME the print host keys are left here just for conversion from the Printer preset to Physical Printer preset.
 | ||||
|             "host_type", "print_host", "printhost_apikey", "printhost_cafile", | ||||
|             "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", | ||||
|             "color_change_gcode", "pause_print_gcode", "template_custom_gcode", | ||||
|             "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "cooling_tube_retraction", | ||||
|             "cooling_tube_length", "high_current_on_filament_swap", "parking_pos_retraction", "extra_loading_move", "max_print_height", | ||||
|             "default_print_profile", "inherits", | ||||
|             "remaining_times", "silent_mode", | ||||
|             "machine_limits_usage", "thumbnails" | ||||
|         }; | ||||
|         s_opts.insert(s_opts.end(), Preset::machine_limits_options().begin(), Preset::machine_limits_options().end()); | ||||
|         s_opts.insert(s_opts.end(), Preset::nozzle_options().begin(), Preset::nozzle_options().end()); | ||||
|     } | ||||
|     return s_opts; | ||||
| } | ||||
| 
 | ||||
| // The following nozzle options of a printer profile will be adjusted to match the size
 | ||||
| // of the nozzle_diameter vector.
 | ||||
| const std::vector<std::string>& Preset::nozzle_options() | ||||
| { | ||||
| 	return print_config_def.extruder_option_keys(); | ||||
| } | ||||
| 
 | ||||
| const std::vector<std::string>& Preset::sla_print_options() | ||||
| { | ||||
|     static std::vector<std::string> s_opts; | ||||
|     if (s_opts.empty()) { | ||||
|         s_opts = { | ||||
|             "layer_height", | ||||
|             "faded_layers", | ||||
|             "supports_enable", | ||||
|             "support_head_front_diameter", | ||||
|             "support_head_penetration", | ||||
|             "support_head_width", | ||||
|             "support_pillar_diameter", | ||||
|             "support_small_pillar_diameter_percent", | ||||
|             "support_max_bridges_on_pillar", | ||||
|             "support_pillar_connection_mode", | ||||
|             "support_buildplate_only", | ||||
|             "support_pillar_widening_factor", | ||||
|             "support_base_diameter", | ||||
|             "support_base_height", | ||||
|             "support_base_safety_distance", | ||||
|             "support_critical_angle", | ||||
|             "support_max_bridge_length", | ||||
|             "support_max_pillar_link_distance", | ||||
|             "support_object_elevation", | ||||
|             "support_points_density_relative", | ||||
|             "support_points_minimal_distance", | ||||
|             "slice_closing_radius", | ||||
|             "slicing_mode", | ||||
|             "pad_enable", | ||||
|             "pad_wall_thickness", | ||||
|             "pad_wall_height", | ||||
|             "pad_brim_size", | ||||
|             "pad_max_merge_distance", | ||||
|             // "pad_edge_radius",
 | ||||
|             "pad_wall_slope", | ||||
|             "pad_object_gap", | ||||
|             "pad_around_object", | ||||
|             "pad_around_object_everywhere", | ||||
|             "pad_object_connector_stride", | ||||
|             "pad_object_connector_width", | ||||
|             "pad_object_connector_penetration", | ||||
|             "hollowing_enable", | ||||
|             "hollowing_min_thickness", | ||||
|             "hollowing_quality", | ||||
|             "hollowing_closing_distance", | ||||
|             "output_filename_format", | ||||
|             "default_sla_print_profile", | ||||
|             "compatible_printers", | ||||
|             "compatible_printers_condition", | ||||
|             "inherits" | ||||
|         }; | ||||
|     } | ||||
|     return s_opts; | ||||
| } | ||||
| 
 | ||||
| const std::vector<std::string>& Preset::sla_material_options() | ||||
| { | ||||
|     static std::vector<std::string> s_opts; | ||||
|     if (s_opts.empty()) { | ||||
|         s_opts = { | ||||
|             "material_type", | ||||
|             "initial_layer_height", | ||||
|             "bottle_cost", | ||||
|             "bottle_volume", | ||||
|             "bottle_weight", | ||||
|             "material_density", | ||||
|             "exposure_time", | ||||
|             "initial_exposure_time", | ||||
|             "material_correction", | ||||
|             "material_notes", | ||||
|             "material_vendor", | ||||
|             "default_sla_material_profile", | ||||
|             "compatible_prints", "compatible_prints_condition", | ||||
|             "compatible_printers", "compatible_printers_condition", "inherits" | ||||
|         }; | ||||
|     } | ||||
|     return s_opts; | ||||
| } | ||||
| 
 | ||||
| const std::vector<std::string>& Preset::sla_printer_options() | ||||
| { | ||||
|     static std::vector<std::string> s_opts; | ||||
|     if (s_opts.empty()) { | ||||
|         s_opts = { | ||||
|             "printer_technology", | ||||
|             "bed_shape", "bed_custom_texture", "bed_custom_model", "max_print_height", | ||||
|             "display_width", "display_height", "display_pixels_x", "display_pixels_y", | ||||
|             "display_mirror_x", "display_mirror_y", | ||||
|             "display_orientation", | ||||
|             "fast_tilt_time", "slow_tilt_time", "area_fill", | ||||
|             "relative_correction", | ||||
|             "absolute_correction", | ||||
|             "elefant_foot_compensation", | ||||
|             "elefant_foot_min_width", | ||||
|             "gamma_correction", | ||||
|             "min_exposure_time", "max_exposure_time", | ||||
|             "min_initial_exposure_time", "max_initial_exposure_time", | ||||
|             //FIXME the print host keys are left here just for conversion from the Printer preset to Physical Printer preset.
 | ||||
|             "print_host", "printhost_apikey", "printhost_cafile", | ||||
|             "printer_notes", | ||||
|             "inherits" | ||||
|         }; | ||||
|     } | ||||
|     static std::vector<std::string> s_opts = [](){ | ||||
|         std::vector<std::string> opts = s_Preset_printer_options; | ||||
|         append(opts, s_Preset_machine_limits_options); | ||||
|         append(opts, Preset::nozzle_options()); | ||||
|         return opts; | ||||
|     }(); | ||||
|     return s_opts; | ||||
| } | ||||
| 
 | ||||
|  | @ -1426,27 +1395,25 @@ std::string PhysicalPrinter::separator() | |||
|     return " * "; | ||||
| } | ||||
| 
 | ||||
| static std::vector<std::string> s_PhysicalPrinter_opts { | ||||
|     "preset_name", // temporary option to compatibility with older Slicer
 | ||||
|     "preset_names", | ||||
|     "printer_technology", | ||||
|     "host_type", | ||||
|     "print_host", | ||||
|     "printhost_apikey", | ||||
|     "printhost_cafile", | ||||
|     "printhost_port", | ||||
|     "printhost_authorization_type", | ||||
|     // HTTP digest authentization (RFC 2617)
 | ||||
|     "printhost_user", | ||||
|     "printhost_password", | ||||
|     "printhost_ignore_check" | ||||
| }; | ||||
| 
 | ||||
| const std::vector<std::string>& PhysicalPrinter::printer_options() | ||||
| { | ||||
|     static std::vector<std::string> s_opts; | ||||
|     if (s_opts.empty()) { | ||||
|         s_opts = { | ||||
|             "preset_name", // temporary option to compatibility with older Slicer
 | ||||
|             "preset_names", | ||||
|             "printer_technology", | ||||
|             "host_type", | ||||
|             "print_host", | ||||
|             "printhost_apikey", | ||||
|             "printhost_cafile", | ||||
|             "printhost_port", | ||||
|             "printhost_authorization_type", | ||||
|             // HTTP digest authentization (RFC 2617)
 | ||||
|             "printhost_user", | ||||
|             "printhost_password", | ||||
|             "printhost_ignore_check" | ||||
|         }; | ||||
|     } | ||||
|     return s_opts; | ||||
|     return s_PhysicalPrinter_opts; | ||||
| } | ||||
| 
 | ||||
| static constexpr auto legacy_print_host_options = { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vojtech Bubnik
						Vojtech Bubnik