From f55becd43c164aac7528ce3732f599f24173c496 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Fri, 9 Mar 2018 16:37:33 +0100 Subject: [PATCH 01/24] Introduced the system profiles. The Config Wizard now just copies the Vendor's Config Bundle into user_dir/vendor/ directory and Slic3r uses the configs from the bundles found in user_dir/vendor directly. --- lib/Slic3r/GUI.pm | 3 +- lib/Slic3r/GUI/MainFrame.pm | 4 +- .../Original Prusa i3 MK2 and MK2S.ini | 3376 ---------------- ...inal Prusa i3 MK2, MK2S, MK2MM and MK3.ini | 995 ----- .../profiles/Original Prusa i3 MK2MM.ini | 3419 ----------------- resources/profiles/Original Prusa i3 MK3.ini | 3295 ---------------- xs/src/libslic3r/Config.cpp | 10 +- xs/src/libslic3r/Config.hpp | 15 +- xs/src/libslic3r/PrintConfig.cpp | 34 + xs/src/slic3r/GUI/Preset.cpp | 15 +- xs/src/slic3r/GUI/Preset.hpp | 49 +- xs/src/slic3r/GUI/PresetBundle.cpp | 183 +- xs/src/slic3r/GUI/PresetBundle.hpp | 29 +- xs/src/slic3r/GUI/Tab.cpp | 15 +- xs/xsp/GUI_Preset.xsp | 14 +- 15 files changed, 318 insertions(+), 11138 deletions(-) delete mode 100644 resources/profiles/Original Prusa i3 MK2 and MK2S.ini delete mode 100644 resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini delete mode 100644 resources/profiles/Original Prusa i3 MK2MM.ini delete mode 100644 resources/profiles/Original Prusa i3 MK3.ini diff --git a/lib/Slic3r/GUI.pm b/lib/Slic3r/GUI.pm index 7a3b30a6b..7097ab521 100644 --- a/lib/Slic3r/GUI.pm +++ b/lib/Slic3r/GUI.pm @@ -110,12 +110,11 @@ sub OnInit { # Suppress the '- default -' presets. $self->{preset_bundle}->set_default_suppressed($self->{app_config}->get('no_defaults') ? 1 : 0); - eval { $self->{preset_bundle}->load_presets }; + eval { $self->{preset_bundle}->load_presets($self->{app_config}); }; if ($@) { warn $@ . "\n"; show_error(undef, $@); } - eval { $self->{preset_bundle}->load_selections($self->{app_config}) }; $run_wizard = 1 if $self->{preset_bundle}->has_defauls_only; # application frame diff --git a/lib/Slic3r/GUI/MainFrame.pm b/lib/Slic3r/GUI/MainFrame.pm index 442d0abc9..9e7bfacd8 100644 --- a/lib/Slic3r/GUI/MainFrame.pm +++ b/lib/Slic3r/GUI/MainFrame.pm @@ -722,7 +722,9 @@ sub config_wizard { wxTheApp->{preset_bundle}->load_config('My Settings', $result->{config}); } else { # Wizard returned a name of a preset bundle bundled with the installation. Unpack it. - wxTheApp->{preset_bundle}->load_configbundle($directory . '/' . $result->{preset_name} . '.ini'); + wxTheApp->{preset_bundle}->install_vendor_configbundle($directory . '/' . $result->{preset_name} . '.ini'); + # Reload all presets after the vendor config bundle has been installed. + wxTheApp->{preset_bundle}->load_presets(wxTheApp->{app_config}); } }; Slic3r::GUI::catch_error($self) and return; diff --git a/resources/profiles/Original Prusa i3 MK2 and MK2S.ini b/resources/profiles/Original Prusa i3 MK2 and MK2S.ini deleted file mode 100644 index a186c3775..000000000 --- a/resources/profiles/Original Prusa i3 MK2 and MK2S.ini +++ /dev/null @@ -1,3376 +0,0 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:10:57 - -[print:0.05mm DETAIL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 25% -fill_pattern = cubic -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.5 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 30 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 30 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 15 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 30 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.3 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1.5 -support_material_speed = 30 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.05mm DETAIL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 and num_extruders==1 -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.28 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.3 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 20 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 20 -perimeters = 4 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.18 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 20 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 200 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.05mm DETAIL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 25% -fill_pattern = grid -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 30 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 30 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 15 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 30 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.3 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1.5 -support_material_speed = 30 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 600 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.25 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.25 -fill_angle = 45 -fill_density = 15% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.25 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1600 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.25 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 40 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 600 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.25 -perimeter_speed = 25 -perimeters = 4 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.25 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.18 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.25 -top_solid_infill_speed = 30 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm 100mms Linear Advance] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 50 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 100 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 150 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 30 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 100 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 70 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 600 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.25 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.25 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.25 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1600 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.25 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 40 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 600 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.25 -perimeter_speed = 25 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.25 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.2 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 35 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.25 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 40 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL SOLUBLE FULL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 25 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL SOLUBLE INTERFACE] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 25 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm 100mms Linear Advance] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 50 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 100 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 150 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 30 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 100 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 70 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm FAST MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 40 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 40 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL SOLUBLE FULL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 30 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL SOLUBLE INTERFACE] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 30 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.7 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.43 -perimeter_speed = 50 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.7 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.43 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 50 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST sol full 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.55 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.57 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST sol int 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.55 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.57 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[filament:ColorFabb Brass Bronze] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.3 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 210 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:ColorFabb HT] -bed_temperature = 105 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 105 -first_layer_temperature = 270 -max_fan_speed = 20 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb PLA-PHA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:ColorFabb Woodfil] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 200 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 200 - -[filament:ColorFabb XT] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb XT-CF20] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 1 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 260 - -[filament:ColorFabb nGen] -bed_temperature = 85 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = NGEN -first_layer_bed_temperature = 85 -first_layer_temperature = 240 -max_fan_speed = 35 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:ColorFabb nGen flex] -bed_temperature = 85 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 5 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = FLEX -first_layer_bed_temperature = 85 -first_layer_temperature = 260 -max_fan_speed = 35 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 260 - -[filament:E3D Edge] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:E3D PC-ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 270 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 270 - -[filament:Fillamentum ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 240 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 240 - -[filament:Fillamentum ASA] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 265 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 265 - -[filament:Fillamentum CPE HG100 HM100] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "CPE HG100 , CPE HM100" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 80 -min_fan_speed = 80 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 260 - -[filament:Fillamentum Timberfil] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 190 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 190 - -[filament:Generic ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 255 - -[filament:Generic PET] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:Generic PLA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:Polymaker PC-Max] -bed_temperature = 120 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 120 -first_layer_temperature = 270 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 270 - -[filament:Primavalue PVA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PVA print settings for MK2:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 1 -filament_type = PVA -first_layer_bed_temperature = 60 -first_layer_temperature = 195 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 195 - -[filament:Prusa ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 255 - -[filament:Prusa HIPS] -bed_temperature = 100 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 0.9 -fan_always_on = 1 -fan_below_layer_time = 10 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 1 -filament_type = HIPS -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 20 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[filament:Prusa PET] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:Prusa PLA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:SemiFlex or Flexfill 98A] -bed_temperature = 50 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 and num_extruders==1 -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #00CA0A -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 2.5 -filament_notes = "List of materials tested with FLEX print settings & FLEX material settings for MK2:\n\nFillamentum Flex 98A\nFillamentum Flex 92A\nPlasty Mladeč PP\nPlasty Mladeč TPE32 \nPlasty Mladeč TPE88" -filament_settings_id = -filament_soluble = 0 -filament_type = FLEX -first_layer_bed_temperature = 50 -first_layer_temperature = 220 -max_fan_speed = 90 -min_fan_speed = 70 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 230 - -[filament:Taulman Bridge] -bed_temperature = 50 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 250 - -[filament:Taulman T-Glase] -bed_temperature = 90 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 240 - -[filament:Verbatim BVOH] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 1 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:Verbatim PP] -bed_temperature = 100 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 2 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 5 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nEsun PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nEUMAKERS PLA" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[printer:Original Prusa i3 MK2] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -extruder_colour = #FFFF00 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25 -min_layer_height = 0.07 -nozzle_diameter = 0.4 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\n -printer_settings_id = -retract_before_travel = 1 -retract_before_wipe = 0% -retract_layer_change = 1 -retract_length = 0.8 -retract_length_toolchange = 3 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 35 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 - -[printer:Original Prusa i3 MK2 0.25 nozzle] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -extruder_colour = #FFFF00 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.1 -min_layer_height = 0.05 -nozzle_diameter = 0.25 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\n -printer_settings_id = -retract_before_travel = 1 -retract_before_wipe = 0% -retract_layer_change = 1 -retract_length = 1 -retract_length_toolchange = 3 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 50 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 0 -wipe = 1 -z_offset = 0 - -[printer:Original Prusa i3 MK2 0.6 nozzle] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -extruder_colour = #FFFF00 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.35 -min_layer_height = 0.1 -nozzle_diameter = 0.6 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\n -printer_settings_id = -retract_before_travel = 1 -retract_before_wipe = 0% -retract_layer_change = 1 -retract_length = 0.8 -retract_length_toolchange = 3 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 35 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 - -[presets] -print = 0.15mm OPTIMAL -printer = Original Prusa i3 MK2 -filament = Prusa PLA diff --git a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini b/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini deleted file mode 100644 index 0b4dddb55..000000000 --- a/resources/profiles/Original Prusa i3 MK2, MK2S, MK2MM and MK3.ini +++ /dev/null @@ -1,995 +0,0 @@ -# generated by Slic3r Prusa Edition 1.39.0.29-prusa3d-win64 on 2018-01-22 at 14:53:14 - -# All presets starting with asterisk, for example *common*, are intermediate and they will -# not make it into the user interface. - -# Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. -# All other print presets will derive from the *common* print preset. -[print:*common*] -avoid_crossing_perimeters = 0 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeters_first = 0 -external_perimeter_extrusion_width = 0.45 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -interface_shells = 0 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -overhangs = 0 -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirts = 1 -skirt_distance = 2 -skirt_height = 3 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_extruder = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_enforce_layers = 0 -support_material_interface_contact_loops = 0 -support_material_interface_layers = 2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -# Print parameters common to a 0.25mm diameter nozzle. -[print:*0.25nozzle*] -external_perimeter_extrusion_width = 0.25 -extrusion_width = 0.25 -first_layer_extrusion_width = 0.25 -infill_extrusion_width = 0.25 -perimeter_extrusion_width = 0.25 -solid_infill_extrusion_width = 0.25 -top_infill_extrusion_width = 0.25 -support_material_extrusion_width = 0.18 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_spacing = 1 -support_material_xy_spacing = 150% - -# Print parameters common to a 0.6mm diameter nozzle. -[print:*0.6nozzle*] -external_perimeter_extrusion_width = 0.61 -extrusion_width = 0.67 -first_layer_extrusion_width = 0.65 -infill_extrusion_width = 0.75 -perimeter_extrusion_width = 0.65 -solid_infill_extrusion_width = 0.65 -top_infill_extrusion_width = 0.6 - -[print:*0.05mm*] -inherits = *common* -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_flow_ratio = 0.7 -default_acceleration = 500 -external_perimeter_speed = 20 -fill_density = 25% -first_layer_acceleration = 500 -gap_fill_speed = 20 -infill_acceleration = 800 -infill_speed = 30 -max_print_speed = 80 -small_perimeter_speed = 15 -solid_infill_speed = 30 -support_material_extrusion_width = 0.3 -support_material_interface_spacing = 0.2 -support_material_spacing = 1.5 -layer_height = 0.05 -perimeter_acceleration = 300 -perimeter_speed = 30 -perimeters = 3 -support_material_contact_distance = 0.15 -support_material_speed = 30 -top_solid_infill_speed = 20 -top_solid_layers = 15 - -[print:0.05mm DETAIL] -inherits = *0.05mm* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -infill_extrusion_width = 0.5 - -[print:0.05mm DETAIL MK3] -inherits = *0.05mm* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -fill_pattern = grid -top_infill_extrusion_width = 0.4 - -[print:0.05mm DETAIL 0.25 nozzle] -inherits = *0.05mm*; *0.25nozzle* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 and num_extruders==1 -external_perimeter_extrusion_width = 0 -extrusion_width = 0.28 -fill_density = 20% -first_layer_extrusion_width = 0.3 -infill_extrusion_width = 0 -infill_speed = 20 -max_print_speed = 100 -perimeter_extrusion_width = 0 -perimeter_speed = 20 -perimeters = 4 -small_perimeter_speed = 10 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -support_material_speed = 20 -top_infill_extrusion_width = 0 - -[print:*0.10mm*] -inherits = *common* -bottom_solid_layers = 7 -bridge_flow_ratio = 0.7 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -layer_height = 0.1 -perimeter_acceleration = 800 -support_material_contact_distance = 0.15 -support_material_interface_spacing = 0.2 -support_material_spacing = 2 -top_solid_layers = 9 - -[print:0.10mm DETAIL] -inherits = *0.10mm* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -perimeter_speed = 50 -perimeters = 3 -solid_infill_speed = 50 - -[print:0.10mm DETAIL MK3] -inherits = *0.10mm* -bridge_flow_ratio = 0.8 -bridge_speed = 30 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -perimeters = 2 -solid_infill_speed = 170 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 - -[print:0.10mm DETAIL 0.25 nozzle] -inherits = *0.10mm*; *0.25nozzle* -bridge_acceleration = 600 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -external_perimeter_speed = 20 -fill_density = 15% -infill_acceleration = 1600 -infill_speed = 40 -perimeter_acceleration = 600 -perimeter_speed = 25 -perimeters = 4 -small_perimeter_speed = 10 -solid_infill_speed = 40 -top_solid_infill_speed = 30 - -[print:*0.15mm*] -inherits = *common* -bottom_solid_layers = 5 -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.15 -perimeter_acceleration = 800 -perimeter_speed = 50 -perimeters = 3 -solid_infill_speed = 50 -support_material_contact_distance = 0.15 -support_material_interface_spacing = 0.2 -support_material_spacing = 2 -top_infill_extrusion_width = 0.4 -top_solid_layers = 7 - -[print:0.15mm 100mms Linear Advance] -inherits = *0.15mm* -bottom_solid_layers = 4 -bridge_flow_ratio = 0.95 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -external_perimeter_speed = 50 -infill_speed = 100 -max_print_speed = 150 -perimeter_speed = 60 -perimeters = 2 -small_perimeter_speed = 30 -solid_infill_speed = 100 -support_material_speed = 60 -top_solid_infill_speed = 70 -top_solid_layers = 5 - -[print:0.15mm OPTIMAL] -inherits = *0.15mm* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -top_infill_extrusion_width = 0.45 - -[print:0.15mm OPTIMAL 0.25 nozzle] -inherits = *0.15mm*; *0.25nozzle* -bridge_acceleration = 600 -bridge_flow_ratio = 0.7 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -external_perimeter_speed = 20 -infill_acceleration = 1600 -infill_speed = 40 -perimeter_acceleration = 600 -perimeter_speed = 25 -perimeters = 2 -small_perimeter_speed = 10 -solid_infill_speed = 40 -support_material_extrusion_width = 0.2 -support_material_threshold = 35 -top_solid_infill_speed = 30 - -[print:0.15mm OPTIMAL 0.6 nozzle] -inherits = *0.15mm*; *0.6nozzle* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -wipe_tower = 1 - -[print:0.15mm OPTIMAL MK3] -inherits = *0.15mm* -bridge_speed = 30 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -perimeters = 2 -solid_infill_speed = 170 -top_solid_infill_speed = 50 -wipe_tower = 1 - -[print:0.15mm OPTIMAL SOLUBLE FULL] -inherits = *0.15mm* -bottom_solid_layers = 5 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -external_perimeter_speed = 25 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -overhangs = 1 -perimeter_speed = 40 -skirts = 0 -solid_infill_speed = 40 -support_material = 1 -support_material_contact_distance = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_extruder = 4 -support_material_interface_spacing = 0.1 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 60% -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 - -[print:0.15mm OPTIMAL SOLUBLE INTERFACE] -inherits = 0.15mm OPTIMAL SOLUBLE FULL -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% - -[print:*0.20mm*] -inherits = *common* -bottom_solid_layers = 4 -bridge_flow_ratio = 0.95 -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.2 -perimeter_acceleration = 800 -perimeter_speed = 50 -perimeters = 2 -solid_infill_speed = 50 -support_material_contact_distance = 0.15 -support_material_interface_spacing = 0.2 -support_material_spacing = 2 -top_infill_extrusion_width = 0.4 -top_solid_layers = 5 -wipe_tower = 1 - -[print:0.20mm 100mms Linear Advance] -inherits = *0.20mm* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -external_perimeter_speed = 50 -infill_speed = 100 -max_print_speed = 150 -perimeter_speed = 60 -small_perimeter_speed = 30 -solid_infill_speed = 100 -support_material_speed = 60 -top_solid_infill_speed = 70 - -[print:0.20mm FAST MK3] -inherits = *0.20mm* -bridge_speed = 30 -bridge_flow_ratio = 0.8 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:0.20mm NORMAL] -inherits = *0.20mm* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 - -[print:0.20mm NORMAL 0.6 nozzle] -inherits = *0.20mm*; *0.6nozzle* -bridge_flow_ratio = 0.8 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -perimeters = 3 - -[print:0.20mm NORMAL SOLUBLE FULL] -inherits = *0.20mm* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -external_perimeter_speed = 30 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -overhangs = 1 -perimeter_speed = 40 -skirts = 0 -solid_infill_speed = 40 -support_material = 1 -support_material_contact_distance = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_extruder = 4 -support_material_interface_spacing = 0.1 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 120% -top_solid_infill_speed = 30 -wipe_tower_per_color_wipe = 20 - -[print:0.20mm NORMAL SOLUBLE INTERFACE] -inherits = 0.20mm NORMAL SOLUBLE FULL -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 - -[print:*0.35mm*] -inherits = *common* -bottom_solid_layers = 3 -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -first_layer_extrusion_width = 0.75 -infill_acceleration = 2000 -infill_extrusion_width = 0.75 -infill_speed = 60 -layer_height = 0.35 -perimeter_acceleration = 800 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 2 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -support_material_contact_distance = 0.15 -support_material_interface_spacing = 0.2 -support_material_spacing = 2 -top_solid_infill_speed = 50 -top_solid_layers = 4 -wipe_tower = 1 - -[print:0.35mm FAST] -inherits = *0.35mm* -bridge_flow_ratio = 0.95 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -first_layer_extrusion_width = 0.42 -infill_extrusion_width = 0.7 -perimeter_extrusion_width = 0.43 -solid_infill_extrusion_width = 0.7 -top_infill_extrusion_width = 0.43 - -[print:0.35mm FAST 0.6 nozzle] -inherits = *0.35mm*; *0.6nozzle* -bottom_solid_layers = 7 -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -perimeters = 3 -top_solid_layers = 9 - -[print:0.35mm FAST sol full 0.6 nozzle] -inherits = *0.35mm*; *0.6nozzle* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -overhangs = 1 -perimeter_speed = 40 -skirts = 0 -support_material = 1 -support_material_contact_distance = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.55 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_xy_spacing = 120% -top_infill_extrusion_width = 0.57 -wipe_tower_per_color_wipe = 20 - -[print:0.35mm FAST sol int 0.6 nozzle] -inherits = 0.35mm FAST sol full 0.6 nozzle -support_material_extruder = 0 -support_material_interface_layers = 2 -support_material_xy_spacing = 150% - -[filament:*common*] -cooling = 1 -compatible_printers = -compatible_printers_condition = -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_settings_id = -filament_soluble = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" - -[filament:*PLA*] -inherits = *common* -bed_temperature = 60 -bridge_fan_speed = 100 -disable_fan_first_layers = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_max_volumetric_speed = 15 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -temperature = 210 - -[filament:*PET*] -inherits = *common* -bed_temperature = 90 -bridge_fan_speed = 50 -disable_fan_first_layers = 3 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_max_volumetric_speed = 10 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:*ABS*] -inherits = *common* -bed_temperature = 100 -bridge_fan_speed = 30 -cooling = 0 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_max_volumetric_speed = 13 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 10 -temperature = 255 - -[filament:*FLEX*] -inherits = *common* -bridge_fan_speed = 100 -compatible_printers_condition = nozzle_diameter[0]>0.35 and num_extruders==1 -cooling = 0 -disable_fan_first_layers = 1 -extrusion_multiplier = 1.2 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_max_volumetric_speed = 1.5 -filament_type = FLEX -first_layer_bed_temperature = 50 -first_layer_temperature = 240 -max_fan_speed = 90 -min_fan_speed = 70 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 240 - -[filament:ColorFabb Brass Bronze] -inherits = *PLA* -compatible_printers_condition = nozzle_diameter[0]>0.35 -extrusion_multiplier = 1.3 -filament_colour = #804040 -filament_max_volumetric_speed = 10 -min_print_speed = 5 - -[filament:ColorFabb HT] -bed_temperature = 105 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 105 -first_layer_temperature = 270 -max_fan_speed = 20 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb PLA-PHA] -inherits = *PLA* -filament_colour = #FF3232 - -[filament:ColorFabb Woodfil] -inherits = *PLA* -compatible_printers_condition = nozzle_diameter[0]>0.35 -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 -first_layer_temperature = 200 -min_print_speed = 5 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 200 - -[filament:ColorFabb XT] -inherits = *PET* -filament_colour = #FF8000 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -temperature = 270 - -[filament:ColorFabb XT-CF20] -inherits = *PET* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 1 -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 260 - -[filament:ColorFabb nGen] -inherits = *PET* -bridge_fan_speed = 40 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_type = NGEN -first_layer_temperature = 240 -max_fan_speed = 35 -min_fan_speed = 20 - -[filament:ColorFabb nGen flex] -inherits = *flex* -bed_temperature = 85 -bridge_fan_speed = 40 -cooling = 1 -disable_fan_first_layers = 3 -extrusion_multiplier = 1 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_max_volumetric_speed = 5 -first_layer_bed_temperature = 85 -first_layer_temperature = 260 -max_fan_speed = 35 -min_fan_speed = 20 -temperature = 260 - -[filament:E3D Edge] -inherits = *PET* -filament_colour = #FF8000 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:E3D PC-ABS] -inherits = *ABS* -filament_colour = #3A80CA -first_layer_temperature = 270 -temperature = 270 - -[filament:Fillamentum ABS] -inherits = *ABS* -filament_colour = #3A80CA -first_layer_temperature = 240 -temperature = 240 - -[filament:Fillamentum ASA] -fan_always_on = 1 -filament_colour = #3A80CA -first_layer_temperature = 265 -temperature = 265 - -[filament:Fillamentum CPE HG100 HM100] -inherits = *PET* -disable_fan_first_layers = 1 -filament_colour = #FF8000 -filament_notes = "CPE HG100 , CPE HM100" -first_layer_bed_temperature = 90 -first_layer_temperature = 275 -max_fan_speed = 50 -min_fan_speed = 50 -temperature = 275 - -[filament:Fillamentum Timberfil] -inherits = *PLA* -compatible_printers_condition = nozzle_diameter[0]>0.35 -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 -first_layer_temperature = 190 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 190 - -[filament:Generic ABS] -inherits = *ABS* -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" - -[filament:Generic PET] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:Generic PLA] -inherits = *PLA* -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" - -[filament:Polymaker PC-Max] -inherits = *ABS* -bed_temperature = 120 -filament_colour = #3A80CA -first_layer_bed_temperature = 120 -first_layer_temperature = 270 -temperature = 270 - -[filament:Primavalue PVA] -inherits = *PLA* -cooling = 0 -fan_always_on = 0 -filament_colour = #FFFFD7 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PVA print settings for MK2:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'\nVerbatim BVOH" -filament_soluble = 1 -filament_type = PVA -first_layer_temperature = 195 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 195 - -[filament:Prusa ABS] -inherits = *ABS* -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" - -[filament:Prusa HIPS] -inherits = *ABS* -bridge_fan_speed = 50 -cooling = 1 -extrusion_multiplier = 0.9 -fan_always_on = 1 -fan_below_layer_time = 10 -filament_colour = #FFFFD7 -filament_soluble = 1 -filament_type = HIPS -first_layer_temperature = 220 -max_fan_speed = 20 -min_fan_speed = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[filament:Prusa PET] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:Prusa PLA] -inherits = *PLA* -filament_colour = #FF3232 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" - -[filament:SemiFlex or Flexfill 98A] -inherits = *flex* - -[filament:Taulman Bridge] -bed_temperature = 50 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 250 - -[filament:Taulman T-Glase] -inherits = *PET* -bridge_fan_speed = 40 -cooling = 0 -fan_always_on = 0 -filament_colour = #FF8000 -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" - -[filament:Verbatim BVOH] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 1 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:Verbatim PP] -bed_temperature = 100 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 2 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 5 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nEsun PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nEUMAKERS PLA" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[printer:*common*] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -extruder_colour = #FFFF00 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25 -min_layer_height = 0.07 -nozzle_diameter = 0.4 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\n -printer_settings_id = -retract_before_travel = 1 -retract_before_wipe = 0% -retract_layer_change = 1 -retract_length = 0.8 -retract_length_toolchange = 3 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 35 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 - -[printer:*multimaterial*] -inherits = *common* -deretract_speed = 50 -retract_before_travel = 3 -retract_before_wipe = 60% -retract_layer_change = 0 -retract_length = 4 -retract_length_toolchange = 4 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 80 -single_extruder_multi_material = 1 - -[printer:*mm-single*] -inherits = *multimaterial* -end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\nG92 E0.0 - -[printer:*mm-multi*] -inherits = *multimaterial* -end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes.\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors -extruder_colour = #FFAA55;#5182DB;#4ECDD3;#FB7259 -nozzle_diameter = 0.4,0.4,0.4,0.4 -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT[initial_tool]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100 ; set max feedrate\nM92 E140 ; E-steps per filament milimeter\n{if not has_wipe_tower}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\n{endif}\nG92 E0.0 -variable_layer_height = 0 - -[printer:Original Prusa i3 MK2] -inherits = *common* - -[printer:Original Prusa i3 MK2 0.25 nozzle] -inherits = *common* -max_layer_height = 0.1 -min_layer_height = 0.05 -nozzle_diameter = 0.25 -retract_length = 1 -retract_speed = 50 -variable_layer_height = 0 - -[printer:Original Prusa i3 MK2 0.6 nozzle] -inherits = *common* -max_layer_height = 0.35 -min_layer_height = 0.1 -nozzle_diameter = 0.6 - -[printer:Original Prusa i3 MK2 MM Single Mode] -inherits = *mm-single* - -[printer:Original Prusa i3 MK2 MM Single Mode 0.6 nozzle] -inherits = *mm-single* -nozzle_diameter = 0.6 - -[printer:Original Prusa i3 MK2 MultiMaterial] -inherits = *mm-multi* -nozzle_diameter = 0.4,0.4,0.4,0.4 - -[printer:Original Prusa i3 MK2 MultiMaterial 0.6 nozzle] -inherits = *mm-multi* -nozzle_diameter = 0.6,0.6,0.6,0.6 - -[printer:Original Prusa i3 MK3] -inherits = *common* -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n -retract_lift_below = 209 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} - -[presets] -print = 0.15mm OPTIMAL MK3 -printer = Original Prusa i3 MK3 -filament = Prusa PLA diff --git a/resources/profiles/Original Prusa i3 MK2MM.ini b/resources/profiles/Original Prusa i3 MK2MM.ini deleted file mode 100644 index 035d15515..000000000 --- a/resources/profiles/Original Prusa i3 MK2MM.ini +++ /dev/null @@ -1,3419 +0,0 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-01-06 at 15:12:06 - -[print:0.05mm DETAIL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 25% -fill_pattern = cubic -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.5 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 30 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 30 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 15 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 30 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.3 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1.5 -support_material_speed = 30 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.05mm DETAIL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 and num_extruders==1 -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.28 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.3 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 20 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 20 -perimeters = 4 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.18 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 20 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 200 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.05mm DETAIL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 25% -fill_pattern = grid -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 30 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 30 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 15 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 30 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.3 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1.5 -support_material_speed = 30 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 600 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.25 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.25 -fill_angle = 45 -fill_density = 15% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.25 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1600 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.25 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 40 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 600 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.25 -perimeter_speed = 25 -perimeters = 4 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.25 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.18 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.25 -top_solid_infill_speed = 30 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm 100mms Linear Advance] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 50 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 100 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 150 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 30 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 100 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 70 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 600 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.25 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.25 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.25 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1600 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.25 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 40 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 600 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.25 -perimeter_speed = 25 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.25 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.2 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 35 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.25 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 40 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL SOLUBLE FULL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 25 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL SOLUBLE INTERFACE] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 25 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm 100mms Linear Advance] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 50 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 100 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 150 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 30 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 100 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 70 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm FAST MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 3500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 200 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 250 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 200 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 250 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 40 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 40 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL SOLUBLE FULL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 30 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL SOLUBLE INTERFACE] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 30 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.7 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.43 -perimeter_speed = 50 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.7 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.43 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 50 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST sol full 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.55 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.57 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST sol int 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.55 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.57 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[filament:ColorFabb Brass Bronze] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.3 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 210 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:ColorFabb HT] -bed_temperature = 105 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 105 -first_layer_temperature = 270 -max_fan_speed = 20 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb PLA-PHA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:ColorFabb Woodfil] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 200 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 200 - -[filament:ColorFabb XT] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb XT-CF20] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 1 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 260 - -[filament:ColorFabb nGen] -bed_temperature = 85 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = NGEN -first_layer_bed_temperature = 85 -first_layer_temperature = 240 -max_fan_speed = 35 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:ColorFabb nGen flex] -bed_temperature = 85 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 5 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = FLEX -first_layer_bed_temperature = 85 -first_layer_temperature = 260 -max_fan_speed = 35 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 260 - -[filament:E3D Edge] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:E3D PC-ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 270 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 270 - -[filament:Fillamentum ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 240 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 240 - -[filament:Fillamentum ASA] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 265 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 265 - -[filament:Fillamentum CPE HG100 HM100] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "CPE HG100 , CPE HM100" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 80 -min_fan_speed = 80 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 260 - -[filament:Fillamentum Timberfil] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 190 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 190 - -[filament:Generic ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 255 - -[filament:Generic PET] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:Generic PLA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:Polymaker PC-Max] -bed_temperature = 120 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 120 -first_layer_temperature = 270 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 270 - -[filament:Primavalue PVA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PVA print settings for MK2:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 1 -filament_type = PVA -first_layer_bed_temperature = 60 -first_layer_temperature = 195 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 195 - -[filament:Prusa ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 255 - -[filament:Prusa HIPS] -bed_temperature = 100 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 0.9 -fan_always_on = 1 -fan_below_layer_time = 10 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 1 -filament_type = HIPS -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 20 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[filament:Prusa PET] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:Prusa PLA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:SemiFlex or Flexfill 98A] -bed_temperature = 50 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 and num_extruders==1 -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #00CA0A -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 2.5 -filament_notes = "List of materials tested with FLEX print settings & FLEX material settings for MK2:\n\nFillamentum Flex 98A\nFillamentum Flex 92A\nPlasty Mladeč PP\nPlasty Mladeč TPE32 \nPlasty Mladeč TPE88" -filament_settings_id = -filament_soluble = 0 -filament_type = FLEX -first_layer_bed_temperature = 50 -first_layer_temperature = 220 -max_fan_speed = 90 -min_fan_speed = 70 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 230 - -[filament:Taulman Bridge] -bed_temperature = 50 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 250 - -[filament:Taulman T-Glase] -bed_temperature = 90 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 240 - -[filament:Verbatim BVOH] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 1 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:Verbatim PP] -bed_temperature = 100 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 2 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 5 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nEsun PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nEUMAKERS PLA" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[printer:Original Prusa i3 MK2 MM Single Mode] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 50 -end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n -extruder_colour = #FFAA55 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25 -min_layer_height = 0.07 -nozzle_diameter = 0.4 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -printer_settings_id = -retract_before_travel = 3 -retract_before_wipe = 60% -retract_layer_change = 0 -retract_length = 4 -retract_length_toolchange = 6 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 80 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 1 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 - -[printer:Original Prusa i3 MK2 MM Single Mode 0.6 nozzle] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 50 -end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n -extruder_colour = #FFAA55 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25 -min_layer_height = 0.07 -nozzle_diameter = 0.6 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -printer_settings_id = -retract_before_travel = 3 -retract_before_wipe = 60% -retract_layer_change = 0 -retract_length = 4 -retract_length_toolchange = 6 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 80 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 1 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 - -[printer:Original Prusa i3 MK2 MultiMaterial] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 50,50,50,50 -end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes.\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors -extruder_colour = #FFAA55;#5182DB;#4ECDD3;#FB7259 -extruder_offset = 0x0,0x0,0x0,0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25,0.25,0.25,0.25 -min_layer_height = 0.07,0.07,0.07,0.07 -nozzle_diameter = 0.4,0.4,0.4,0.4 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -printer_settings_id = -retract_before_travel = 3,3,3,3 -retract_before_wipe = 60%,60%,60%,60% -retract_layer_change = 0,0,0,0 -retract_length = 4,4,4,4 -retract_length_toolchange = 4,4,4,4 -retract_lift = 0.6,0.6,0.6,0.6 -retract_lift_above = 0,0,0,0 -retract_lift_below = 199,199,199,199 -retract_restart_extra = 0,0,0,0 -retract_restart_extra_toolchange = 0,0,0,0 -retract_speed = 80,80,80,80 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 1 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT[initial_tool]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100 ; set max feedrate\nM92 E140 ; E-steps per filament milimeter\n{if not has_wipe_tower}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\n{endif}\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 0 -wipe = 1,1,1,1 -z_offset = 0 - -[printer:Original Prusa i3 MK2 MultiMaterial 0.6 nozzle] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 50,50,50,50 -end_gcode = {if not has_wipe_tower}\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n -extruder_colour = #FFAA55;#5182DB;#4ECDD3;#FB7259 -extruder_offset = 0x0,0x0,0x0,0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25,0.25,0.25,0.25 -min_layer_height = 0.07,0.07,0.07,0.07 -nozzle_diameter = 0.6,0.6,0.6,0.6 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -printer_settings_id = -retract_before_travel = 3,3,3,3 -retract_before_wipe = 60%,60%,60%,60% -retract_layer_change = 0,0,0,0 -retract_length = 4,4,4,4 -retract_length_toolchange = 4,4,4,4 -retract_lift = 0.6,0.6,0.6,0.6 -retract_lift_above = 0,0,0,0 -retract_lift_below = 199,199,199,199 -retract_restart_extra = 0,0,0,0 -retract_restart_extra_toolchange = 0,0,0,0 -retract_speed = 80,80,80,80 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 1 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT[initial_tool]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\n{if not has_wipe_tower}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\n{endif}\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 0 -wipe = 1,1,1,1 -z_offset = 0 - -[presets] -print = 0.15mm OPTIMAL -printer = Original Prusa i3 MK2 MultiMaterial -filament = Prusa PLA -filament_1 = Prusa PLA -filament_2 = Prusa PLA -filament_3 = Prusa PLA diff --git a/resources/profiles/Original Prusa i3 MK3.ini b/resources/profiles/Original Prusa i3 MK3.ini deleted file mode 100644 index b53006b0f..000000000 --- a/resources/profiles/Original Prusa i3 MK3.ini +++ /dev/null @@ -1,3295 +0,0 @@ -# generated by Slic3r Prusa Edition 1.39.0 on 2018-02-02 at 10:48:46 - -[print:0.05mm DETAIL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 25% -fill_pattern = cubic -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.5 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 30 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 30 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 15 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 30 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.3 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1.5 -support_material_speed = 30 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.05mm DETAIL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 and num_extruders==1 -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.28 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.3 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 20 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 20 -perimeters = 4 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.18 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 20 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 200 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.05mm DETAIL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 500 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 25% -fill_pattern = grid -first_layer_acceleration = 500 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 20 -gcode_comments = 0 -infill_acceleration = 800 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 30 -interface_shells = 0 -layer_height = 0.05 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 300 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 30 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 15 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 30 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.3 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1.5 -support_material_speed = 30 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 20 -top_solid_layers = 15 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 600 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.25 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.25 -fill_angle = 45 -fill_density = 15% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.25 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1600 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.25 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 40 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 600 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.25 -perimeter_speed = 25 -perimeters = 4 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.25 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.18 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.25 -top_solid_infill_speed = 30 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.10mm DETAIL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 170 -interface_shells = 0 -layer_height = 0.1 -max_print_speed = 170 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 170 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 9 -travel_speed = 170 -wipe_tower = 0 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm 100mms Linear Advance] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 50 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 100 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 150 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 30 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 100 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 70 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL 0.25 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 600 -bridge_angle = 0 -bridge_flow_ratio = 0.7 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.25 -external_perimeter_speed = 20 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.25 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.25 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1600 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.25 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 40 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 600 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.25 -perimeter_speed = 25 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 10 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.25 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.2 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 1 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 35 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.25 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 40 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 170 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 170 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 170 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 7 -travel_speed = 170 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL SOLUBLE FULL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 25 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.15mm OPTIMAL SOLUBLE INTERFACE] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 5 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 25 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.15 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -top_solid_layers = 7 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm 100mms Linear Advance] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 50 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 100 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 150 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 60 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 30 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 100 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 70 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm FAST MK3] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 30 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 35 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = grid -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 1500 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 170 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 170 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 45 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 170 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 -top_solid_layers = 5 -travel_speed = 170 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 50 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 40 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 50 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 40 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL SOLUBLE FULL] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 30 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.20mm NORMAL SOLUBLE INTERFACE] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 4 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.45 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.2 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -solid_infill_speed = 40 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.45 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.1 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 30 -top_solid_layers = 5 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.95 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.7 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.43 -perimeter_speed = 50 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.7 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.43 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 7 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.61 -external_perimeter_speed = 40 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 0 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -perimeters = 3 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 1 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.15 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.6 -top_solid_infill_speed = 50 -top_solid_layers = 9 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 15 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST sol full 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.55 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 3 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 120% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.57 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[print:0.35mm FAST sol int 0.6 nozzle] -avoid_crossing_perimeters = 0 -bottom_solid_layers = 3 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -external_perimeters_first = 0 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.67 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.65 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_acceleration = 2000 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.75 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 60 -interface_shells = 0 -layer_height = 0.35 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 800 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.65 -perimeter_speed = 40 -perimeters = 2 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirt_distance = 2 -skirt_height = 3 -skirts = 0 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0 -support_material_enforce_layers = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.55 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 4 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% -thin_walls = 0 -threads = 4 -top_infill_extrusion_width = 0.57 -top_solid_infill_speed = 50 -top_solid_layers = 4 -travel_speed = 120 -wipe_tower = 1 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -[filament:ColorFabb Brass Bronze] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.3 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 210 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:ColorFabb HT] -bed_temperature = 105 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 105 -first_layer_temperature = 270 -max_fan_speed = 20 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb PLA-PHA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:ColorFabb Woodfil] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 200 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 200 - -[filament:ColorFabb XT] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb XT-CF20] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 1 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 260 - -[filament:ColorFabb nGen] -bed_temperature = 85 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = NGEN -first_layer_bed_temperature = 85 -first_layer_temperature = 240 -max_fan_speed = 35 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:ColorFabb nGen flex] -bed_temperature = 85 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 5 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = FLEX -first_layer_bed_temperature = 85 -first_layer_temperature = 260 -max_fan_speed = 35 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 260 - -[filament:E3D Edge] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:E3D PC-ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 270 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 270 - -[filament:Fillamentum ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 240 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 240 - -[filament:Fillamentum ASA] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 265 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 265 - -[filament:Fillamentum CPE HG100 HM100] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "CPE HG100 , CPE HM100" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 275 -max_fan_speed = 50 -min_fan_speed = 50 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 275 - -[filament:Fillamentum Timberfil] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #804040 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 190 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 190 - -[filament:Generic ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 255 - -[filament:Generic PET] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:Generic PLA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:Polymaker PC-Max] -bed_temperature = 120 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 120 -first_layer_temperature = 270 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 270 - -[filament:Primavalue PVA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PVA print settings for MK2:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 1 -filament_type = PVA -first_layer_bed_temperature = 60 -first_layer_temperature = 195 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 195 - -[filament:Prusa ABS] -bed_temperature = 100 -bridge_fan_speed = 30 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" -filament_settings_id = -filament_soluble = 0 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 10 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 255 - -[filament:Prusa HIPS] -bed_temperature = 100 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 0.9 -fan_always_on = 1 -fan_below_layer_time = 10 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 13 -filament_notes = "" -filament_settings_id = -filament_soluble = 1 -filament_type = HIPS -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 20 -min_fan_speed = 20 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[filament:Prusa PET] -bed_temperature = 90 -bridge_fan_speed = 50 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:Prusa PLA] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 15 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 210 - -[filament:SemiFlex or Flexfill 98A] -bed_temperature = 50 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = nozzle_diameter[0]>0.35 and num_extruders==1 -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1.2 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #00CA0A -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 1.5 -filament_notes = "List of materials tested with FLEX print settings & FLEX material settings for MK2:\n\nFillamentum Flex 98A\nFillamentum Flex 92A\nPlasty Mladeč PP\nPlasty Mladeč TPE32 \nPlasty Mladeč TPE88" -filament_settings_id = -filament_soluble = 0 -filament_type = FLEX -first_layer_bed_temperature = 50 -first_layer_temperature = 240 -max_fan_speed = 90 -min_fan_speed = 70 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 240 - -[filament:Taulman Bridge] -bed_temperature = 50 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 250 - -[filament:Taulman T-Glase] -bed_temperature = 90 -bridge_fan_speed = 40 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 3 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 240 - -[filament:Verbatim BVOH] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 0 -disable_fan_first_layers = 1 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_settings_id = -filament_soluble = 1 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:Verbatim PP] -bed_temperature = 100 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -cooling = 1 -disable_fan_first_layers = 2 -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #DEE0E6 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_max_volumetric_speed = 5 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nEsun PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nEUMAKERS PLA" -filament_settings_id = -filament_soluble = 0 -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[printer:Original Prusa i3 MK3] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 0 -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -extruder_colour = #FFFF00 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25 -min_layer_height = 0.07 -nozzle_diameter = 0.4 -octoprint_apikey = -octoprint_host = -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n -retract_before_travel = 1 -retract_before_wipe = 0% -retract_layer_change = 1 -retract_length = 0.8 -retract_length_toolchange = 3 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 209 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 35 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 - -[presets] -print = 0.15mm OPTIMAL MK3 -printer = Original Prusa i3 MK3 -filament = Prusa PLA diff --git a/xs/src/libslic3r/Config.cpp b/xs/src/libslic3r/Config.cpp index 1a0b8fb4a..0a531849d 100644 --- a/xs/src/libslic3r/Config.cpp +++ b/xs/src/libslic3r/Config.cpp @@ -185,7 +185,7 @@ void ConfigBase::apply_only(const ConfigBase &other, const t_config_option_keys // This is only possible if other is of DynamicConfig type. if (ignore_nonexistent) continue; - throw UnknownOptionException(); + throw UnknownOptionException(opt_key); } const ConfigOption *other_opt = other.option(opt_key); if (other_opt != nullptr) @@ -232,7 +232,7 @@ bool ConfigBase::set_deserialize_raw(const t_config_option_key &opt_key_src, con // Try to deserialize the option by its name. const ConfigDef *def = this->def(); if (def == nullptr) - throw NoDefinitionException(); + throw NoDefinitionException(opt_key); const ConfigOptionDef *optdef = def->get(opt_key); if (optdef == nullptr) { // If we didn't find an option, look for any other option having this as an alias. @@ -248,7 +248,7 @@ bool ConfigBase::set_deserialize_raw(const t_config_option_key &opt_key_src, con break; } if (optdef == nullptr) - throw UnknownOptionException(); + throw UnknownOptionException(opt_key); } if (! optdef->shortcut.empty()) { @@ -278,7 +278,7 @@ double ConfigBase::get_abs_value(const t_config_option_key &opt_key) const // Get option definition. const ConfigDef *def = this->def(); if (def == nullptr) - throw NoDefinitionException(); + throw NoDefinitionException(opt_key); const ConfigOptionDef *opt_def = def->get(opt_key); assert(opt_def != nullptr); // Compute absolute value over the absolute value of the base option. @@ -468,7 +468,7 @@ ConfigOption* DynamicConfig::optptr(const t_config_option_key &opt_key, bool cre // Try to create a new ConfigOption. const ConfigDef *def = this->def(); if (def == nullptr) - throw NoDefinitionException(); + throw NoDefinitionException(opt_key); const ConfigOptionDef *optdef = def->get(opt_key); if (optdef == nullptr) // throw std::runtime_error(std::string("Invalid option name: ") + opt_key); diff --git a/xs/src/libslic3r/Config.hpp b/xs/src/libslic3r/Config.hpp index 3dccedbf0..1f4e85a34 100644 --- a/xs/src/libslic3r/Config.hpp +++ b/xs/src/libslic3r/Config.hpp @@ -1232,17 +1232,22 @@ protected: }; /// Specialization of std::exception to indicate that an unknown config option has been encountered. -class UnknownOptionException : public std::exception -{ +class UnknownOptionException : public std::runtime_error { public: - const char* what() const noexcept override { return "Unknown config option"; } + UnknownOptionException() : + std::runtime_error("Unknown option exception") {} + UnknownOptionException(const std::string &opt_key) : + std::runtime_error(std::string("Unknown option exception: ") + opt_key) {} }; /// Indicate that the ConfigBase derived class does not provide config definition (the method def() returns null). -class NoDefinitionException : public std::exception +class NoDefinitionException : public std::runtime_error { public: - const char* what() const noexcept override { return "No config definition"; } + NoDefinitionException() : + std::runtime_error("No definition exception") {} + NoDefinitionException(const std::string &opt_key) : + std::runtime_error(std::string("No definition exception: ") + opt_key) {} }; } diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 2b95ffa84..f66a4c7fb 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -176,6 +176,18 @@ PrintConfigDef::PrintConfigDef() def->min = 0; def->default_value = new ConfigOptionFloat(0); + def = this->add("default_filament_profile", coStrings); + def->label = L("Default filament profile"); + def->tooltip = L("Default filament profile associated with the current printer profile. " + "On selection of the current printer profile, this filament profile will be activated."); + def->default_value = new ConfigOptionStrings(); + + def = this->add("default_print_profile", coString); + def->label = L("Default print profile"); + def->tooltip = L("Default print profile associated with the current printer profile. " + "On selection of the current printer profile, this print profile will be activated."); + def->default_value = new ConfigOptionString(); + def = this->add("disable_fan_first_layers", coInts); def->label = L("Disable fan for the first"); def->tooltip = L("You can set this to a positive value to disable fan at all " @@ -753,6 +765,13 @@ PrintConfigDef::PrintConfigDef() def->min = 0; def->default_value = new ConfigOptionFloat(80); + def = this->add("inherits", coString); + def->label = L("Inherits profile"); + def->tooltip = L("Name of the profile, from which this profile inherits."); + def->full_width = true; + def->height = 50; + def->default_value = new ConfigOptionString(""); + def = this->add("interface_shells", coBool); def->label = L("Interface shells"); def->tooltip = L("Force the generation of solid shells between adjacent materials/volumes. " @@ -1017,6 +1036,11 @@ PrintConfigDef::PrintConfigDef() def->height = 60; def->default_value = new ConfigOptionStrings{ "" }; + def = this->add("printer_model", coString); + def->label = L("Printer type"); + def->tooltip = L("Type of the printer."); + def->default_value = new ConfigOptionString(); + def = this->add("printer_notes", coString); def->label = L("Printer notes"); def->tooltip = L("You can put your notes regarding the printer here."); @@ -1026,6 +1050,16 @@ PrintConfigDef::PrintConfigDef() def->height = 130; def->default_value = new ConfigOptionString(""); + def = this->add("printer_vendor", coString); + def->label = L("Printer vendor"); + def->tooltip = L("Name of the printer vendor."); + def->default_value = new ConfigOptionString(); + + def = this->add("printer_variant", coString); + def->label = L("Printer variant"); + def->tooltip = L("Name of the printer variant. For example, the printer variants may be differentiated by a nozzle diameter."); + def->default_value = new ConfigOptionString(); + def = this->add("print_settings_id", coString); def->default_value = new ConfigOptionString(""); diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index 52717e1fc..d3d569cae 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -200,7 +200,7 @@ const std::vector& Preset::print_options() "top_infill_extrusion_width", "support_material_extrusion_width", "infill_overlap", "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_per_color_wipe", - "compatible_printers", "compatible_printers_condition" + "compatible_printers", "compatible_printers_condition", "inherits" }; return s_opts; } @@ -213,7 +213,7 @@ const std::vector& Preset::filament_options() "first_layer_bed_temperature", "fan_always_on", "cooling", "min_fan_speed", "max_fan_speed", "bridge_fan_speed", "disable_fan_first_layers", "fan_below_layer_time", "slowdown_below_layer_time", "min_print_speed", "start_filament_gcode", "end_filament_gcode", - "compatible_printers", "compatible_printers_condition" + "compatible_printers", "compatible_printers_condition", "inherits" }; return s_opts; } @@ -226,7 +226,7 @@ const std::vector& Preset::printer_options() "bed_shape", "z_offset", "gcode_flavor", "use_relative_e_distances", "serial_port", "serial_speed", "octoprint_host", "octoprint_apikey", "octoprint_cafile", "use_firmware_retraction", "use_volumetric_e", "variable_layer_height", "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", - "between_objects_gcode", "printer_notes" + "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "default_print_profile", "default_filament_profile", "inherits", }; s_opts.insert(s_opts.end(), Preset::nozzle_options().begin(), Preset::nozzle_options().end()); } @@ -269,7 +269,7 @@ void PresetCollection::reset(bool delete_files) if (delete_files) { // Erase the preset files. for (Preset &preset : m_presets) - if (! preset.is_default && ! preset.is_external) + if (! preset.is_default && ! preset.is_external && ! preset.is_system) boost::nowide::remove(preset.file.c_str()); } // Don't use m_presets.resize() here as it requires a default constructor for Preset. @@ -284,7 +284,6 @@ void PresetCollection::load_presets(const std::string &dir_path, const std::stri { boost::filesystem::path dir = boost::filesystem::canonical(boost::filesystem::path(dir_path) / subdir).make_preferred(); m_dir_path = dir.string(); - m_presets.erase(m_presets.begin()+1, m_presets.end()); t_config_option_keys keys = this->default_preset().config.keys(); std::string errors_cummulative; for (auto &dir_entry : boost::filesystem::directory_iterator(dir)) @@ -292,6 +291,10 @@ void PresetCollection::load_presets(const std::string &dir_path, const std::stri std::string name = dir_entry.path().filename().string(); // Remove the .ini suffix. name.erase(name.size() - 4); + if (this->find_preset(name, false)) { + errors_cummulative += "The user preset \"" + name + "\" cannot be loaded. A system preset of the same name has already been loaded."; + continue; + } try { Preset preset(m_type, name, false); preset.file = dir_entry.path().string(); @@ -364,7 +367,7 @@ void PresetCollection::delete_current_preset() const Preset &selected = this->get_selected_preset(); if (selected.is_default) return; - if (! selected.is_external) { + if (! selected.is_external && ! selected.is_system) { // Erase the preset file. boost::nowide::remove(selected.file.c_str()); } diff --git a/xs/src/slic3r/GUI/Preset.hpp b/xs/src/slic3r/GUI/Preset.hpp index c1d85833b..c56b91bcf 100644 --- a/xs/src/slic3r/GUI/Preset.hpp +++ b/xs/src/slic3r/GUI/Preset.hpp @@ -23,6 +23,46 @@ enum ConfigFileType extern ConfigFileType guess_config_file_type(const boost::property_tree::ptree &tree); +class VendorProfile +{ +public: + std::string name; + std::string id; + std::string config_version; + std::string config_update_url; + + struct PrinterVariant { + PrinterVariant() {} + PrinterVariant(const std::string &name) : name(name) {} + std::string name; + bool enabled = true; + }; + + struct PrinterModel { + PrinterModel() {} + PrinterModel(const std::string &name) : name(name) {} + std::string name; + bool enabled = true; + std::vector variants; + PrinterVariant* variant(const std::string &name) { + for (auto &v : this->variants) + if (v.name == name) + return &v; + return nullptr; + } + const PrinterVariant* variant(const std::string &name) const { return const_cast(this)->variant(name); } + + bool operator< (const PrinterModel &rhs) const { return this->name < rhs.name; } + bool operator==(const PrinterModel &rhs) const { return this->name == rhs.name; } + }; + std::set models; + + size_t num_variants() const { size_t n = 0; for (auto &model : models) n += model.variants.size(); return n; } + + bool operator< (const VendorProfile &rhs) const { return this->id < rhs.id; } + bool operator==(const VendorProfile &rhs) const { return this->id == rhs.id; } +}; + class Preset { public: @@ -44,6 +84,8 @@ public: // External preset points to a configuration, which has been loaded but not imported // into the Slic3r default configuration location. bool is_external = false; + // System preset is read-only. + bool is_system = false; // Preset is visible, if it is compatible with the active Printer. // Also the "default" preset is only visible, if it is the only preset in the list. bool is_visible = true; @@ -55,9 +97,14 @@ public: // Name of the preset, usually derived form the file name. std::string name; // File name of the preset. This could be a Print / Filament / Printer preset, - // or a Configuration file bundling the Print + Filament + Printer presets (in that case is_external will be true), + // or a Configuration file bundling the Print + Filament + Printer presets (in that case is_external and possibly is_system will be true), // or it could be a G-code (again, is_external will be true). std::string file; + // A user profile may inherit its settings either from a system profile, or from a user profile. + // A system profile shall never derive from any other profile, as the system profile hierarchy is being flattened during loading. + std::string inherits; + // If this is a system profile, then there should be a vendor data available to display at the UI. + const VendorProfile *vendor = nullptr; // Has this profile been loaded? bool loaded = false; diff --git a/xs/src/slic3r/GUI/PresetBundle.cpp b/xs/src/slic3r/GUI/PresetBundle.cpp index bf79c6562..77eb5c081 100644 --- a/xs/src/slic3r/GUI/PresetBundle.cpp +++ b/xs/src/slic3r/GUI/PresetBundle.cpp @@ -51,6 +51,14 @@ PresetBundle::PresetBundle() : this->filaments.preset(0).config.optptr("compatible_printers_condition", true); this->prints.preset(0).config.optptr("compatible_printers", true); this->prints.preset(0).config.optptr("compatible_printers_condition", true); + // Create the "inherits" keys. + this->prints.preset(0).config.optptr("inherits", true); + this->filaments.preset(0).config.optptr("inherits", true); + this->printers.preset(0).config.optptr("inherits", true); + // Create the "printer_vendor", "printer_model" and "printer_variant" keys. + this->printers.preset(0).config.optptr("printer_vendor", true); + this->printers.preset(0).config.optptr("printer_model", true); + this->printers.preset(0).config.optptr("printer_variant", true); this->prints .load_bitmap_default("cog.png"); this->filaments.load_bitmap_default("spool.png"); @@ -84,7 +92,8 @@ void PresetBundle::setup_directories() { boost::filesystem::path data_dir = boost::filesystem::path(Slic3r::data_dir()); std::initializer_list paths = { - data_dir, + data_dir, + data_dir / "vendor", #ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR // Store the print/filament/printer presets into a "presets" directory. data_dir / "presets", @@ -107,10 +116,12 @@ void PresetBundle::setup_directories() } } -void PresetBundle::load_presets() +void PresetBundle::load_presets(const AppConfig &config) { - std::string errors_cummulative; - const std::string dir_path = data_dir() + // First load the vendor specific system presets. + std::string errors_cummulative = this->load_system_presets(); + + const std::string dir_user_presets = data_dir() #ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR // Store the print/filament/printer presets into a "presets" directory. + "/presets" @@ -119,17 +130,17 @@ void PresetBundle::load_presets() #endif ; try { - this->prints.load_presets(dir_path, "print"); + this->prints.load_presets(dir_user_presets, "print"); } catch (const std::runtime_error &err) { errors_cummulative += err.what(); } try { - this->filaments.load_presets(dir_path, "filament"); + this->filaments.load_presets(dir_user_presets, "filament"); } catch (const std::runtime_error &err) { errors_cummulative += err.what(); } try { - this->printers.load_presets(dir_path, "printer"); + this->printers.load_presets(dir_user_presets, "printer"); } catch (const std::runtime_error &err) { errors_cummulative += err.what(); } @@ -137,6 +148,31 @@ void PresetBundle::load_presets() this->update_compatible_with_printer(false); if (! errors_cummulative.empty()) throw std::runtime_error(errors_cummulative); + + this->load_selections(config); +} + +// Load system presets into this PresetBundle. +// For each vendor, there will be a single PresetBundle loaded. +std::string PresetBundle::load_system_presets() +{ + // Here the vendor specific read only Config Bundles are stored. + boost::filesystem::path dir = (boost::filesystem::path(data_dir()) / "vendor").make_preferred(); + std::string errors_cummulative; + for (auto &dir_entry : boost::filesystem::directory_iterator(dir)) + if (boost::filesystem::is_regular_file(dir_entry.status()) && boost::algorithm::iends_with(dir_entry.path().filename().string(), ".ini")) { + std::string name = dir_entry.path().filename().string(); + // Remove the .ini suffix. + name.erase(name.size() - 4); + try { + // Load the config bundle, flatten it. + this->load_configbundle(dir_entry.path().string(), LOAD_CFGBNDLE_SYSTEM); + } catch (const std::runtime_error &err) { + errors_cummulative += err.what(); + errors_cummulative += "\n"; + } + } + return errors_cummulative; } static inline std::string remove_ini_suffix(const std::string &name) @@ -147,6 +183,14 @@ static inline std::string remove_ini_suffix(const std::string &name) return out; } +// Set the "enabled" flag for printer vendors, printer models and printer variants +// based on the user configuration. +// If the "vendor" section is missing, enable all models and variants of the particular vendor. +void PresetBundle::load_installed_printers(const AppConfig &config) +{ + // m_storage +} + // Load selections (current print, current filaments, current printer) from config.ini // This is done just once on application start up. void PresetBundle::load_selections(const AppConfig &config) @@ -594,11 +638,54 @@ static void flatten_configbundle_hierarchy(boost::property_tree::ptree &tree) flatten_configbundle_hierarchy(tree, "printer"); } +static void load_vendor_profile(const boost::property_tree::ptree &tree, VendorProfile &vendor_profile) +{ + const std::string printer_model_key = "printer_model:"; + for (auto §ion : tree) + if (section.first == "vendor") { + // Load the names of the active presets. + for (auto &kvp : section.second) { + if (kvp.first == "name") + vendor_profile.name = kvp.second.data(); + else if (kvp.first == "id") + vendor_profile.id = kvp.second.data(); + else if (kvp.first == "config_version") + vendor_profile.config_version = kvp.second.data(); + else if (kvp.first == "config_update_url") + vendor_profile.config_update_url = kvp.second.data(); + } + } else if (boost::starts_with(section.first, printer_model_key)) { + VendorProfile::PrinterModel model; + model.name = section.first.substr(printer_model_key.size()); + section.second.get("variants", ""); + std::vector variants; + if (Slic3r::unescape_strings_cstyle(section.second.get("variants", ""), variants)) { + for (const std::string &variant_name : variants) { + if (model.variant(variant_name) == nullptr) + model.variants.emplace_back(VendorProfile::PrinterVariant(variant_name)); + } + } else { + // Log error? + } + if (! model.name.empty() && ! model.variants.empty()) + vendor_profile.models.insert(model); + } +} + +// Load a config bundle file, into presets and store the loaded presets into separate files +// of the local configuration directory. +void PresetBundle::install_vendor_configbundle(const std::string &src_path0) +{ + boost::filesystem::path src_path(src_path0); + boost::filesystem::copy_file(src_path, (boost::filesystem::path(data_dir()) / "vendor" / src_path.filename()).make_preferred(), boost::filesystem::copy_option::overwrite_if_exists); +} + // Load a config bundle file, into presets and store the loaded presets into separate files // of the local configuration directory. size_t PresetBundle::load_configbundle(const std::string &path, unsigned int flags) { - if (flags & LOAD_CFGBNDLE_RESET_USER_PROFILE) + if (flags & (LOAD_CFGBNDLE_RESET_USER_PROFILE | LOAD_CFGBNDLE_SYSTEM)) + // Reset this bundle, delete user profile files if LOAD_CFGBNDLE_SAVE. this->reset(flags & LOAD_CFGBNDLE_SAVE); // 1) Read the complete config file into a boost::property_tree. @@ -609,6 +696,17 @@ size_t PresetBundle::load_configbundle(const std::string &path, unsigned int fla // Flatten the config bundle by applying the inheritance rules. Internal profiles (with names starting with '*') are removed. flatten_configbundle_hierarchy(tree); + const VendorProfile *vendor_profile = nullptr; + if (flags & LOAD_CFGBNDLE_SYSTEM) { + VendorProfile vp; + load_vendor_profile(tree, vp); + if (vp.name.empty()) + throw std::runtime_error(std::string("Vendor Config Bundle is not valid: Missing vendor name key.")); + if (vp.num_variants() == 0) + return 0; + vendor_profile = &(*this->vendors.insert(vp).first); + } + // 2) Parse the property_tree, extract the active preset names and the profiles, save them into local config files. std::vector loaded_prints; std::vector loaded_filaments; @@ -622,15 +720,15 @@ size_t PresetBundle::load_configbundle(const std::string &path, unsigned int fla std::vector *loaded = nullptr; std::string preset_name; if (boost::starts_with(section.first, "print:")) { - presets = &prints; + presets = &this->prints; loaded = &loaded_prints; preset_name = section.first.substr(6); } else if (boost::starts_with(section.first, "filament:")) { - presets = &filaments; + presets = &this->filaments; loaded = &loaded_filaments; preset_name = section.first.substr(9); } else if (boost::starts_with(section.first, "printer:")) { - presets = &printers; + presets = &this->printers; loaded = &loaded_printers; preset_name = section.first.substr(8); } else if (section.first == "presets") { @@ -664,6 +762,40 @@ size_t PresetBundle::load_configbundle(const std::string &path, unsigned int fla for (auto &kvp : section.second) config.set_deserialize(kvp.first, kvp.second.data()); Preset::normalize(config); + if ((flags & LOAD_CFGBNDLE_SYSTEM) && presets == &printers) { + // Filter out printer presets, which are not mentioned in the vendor profile. + // These presets are considered not installed. + auto printer_model = config.opt_string("printer_model"); + if (printer_model.empty()) { + BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << + section.first << "\" defines no printer model, it will be ignored."; + continue; + } + auto printer_variant = config.opt_string("printer_variant"); + if (printer_variant.empty()) { + BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << + section.first << "\" defines no printer variant, it will be ignored."; + continue; + } + auto it_model = vendor_profile->models.find(VendorProfile::PrinterModel(printer_model)); + if (it_model == vendor_profile->models.end()) { + BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << + section.first << "\" defines invalid printer model \"" << printer_model << "\", it will be ignored."; + continue; + } + auto it_variant = it_model->variant(printer_variant); + if (it_variant == nullptr) { + BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << + section.first << "\" defines invalid printer variant \"" << printer_variant << "\", it will be ignored."; + continue; + } + const Preset *preset_existing = presets->find_preset(section.first, false); + if (preset_existing != nullptr) { + BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" << + section.first << "\" has already been loaded from another Confing Bundle."; + continue; + } + } // Decide a full path to this .ini file. auto file_name = boost::algorithm::iends_with(preset_name, ".ini") ? preset_name : preset_name + ".ini"; auto file_path = (boost::filesystem::path(data_dir()) @@ -678,24 +810,29 @@ size_t PresetBundle::load_configbundle(const std::string &path, unsigned int fla Preset &loaded = presets->load_preset(file_path.string(), preset_name, std::move(config), false); if (flags & LOAD_CFGBNDLE_SAVE) loaded.save(); + if (flags & LOAD_CFGBNDLE_SYSTEM) { + loaded.is_system = true; + loaded.vendor = vendor_profile; + } ++ presets_loaded; } } // 3) Activate the presets. - if (! active_print.empty()) - prints.select_preset_by_name(active_print, true); - if (! active_printer.empty()) - printers.select_preset_by_name(active_printer, true); - // Activate the first filament preset. - if (! active_filaments.empty() && ! active_filaments.front().empty()) - filaments.select_preset_by_name(active_filaments.front(), true); + if ((flags & LOAD_CFGBNDLE_SYSTEM) == 0) { + if (! active_print.empty()) + prints.select_preset_by_name(active_print, true); + if (! active_printer.empty()) + printers.select_preset_by_name(active_printer, true); + // Activate the first filament preset. + if (! active_filaments.empty() && ! active_filaments.front().empty()) + filaments.select_preset_by_name(active_filaments.front(), true); + this->update_multi_material_filament_presets(); + for (size_t i = 0; i < std::min(this->filament_presets.size(), active_filaments.size()); ++ i) + this->filament_presets[i] = filaments.find_preset(active_filaments[i], true)->name; + this->update_compatible_with_printer(false); + } - this->update_multi_material_filament_presets(); - for (size_t i = 0; i < std::min(this->filament_presets.size(), active_filaments.size()); ++ i) - this->filament_presets[i] = filaments.find_preset(active_filaments[i], true)->name; - - this->update_compatible_with_printer(false); return presets_loaded; } diff --git a/xs/src/slic3r/GUI/PresetBundle.hpp b/xs/src/slic3r/GUI/PresetBundle.hpp index e6aea206d..aaa66265a 100644 --- a/xs/src/slic3r/GUI/PresetBundle.hpp +++ b/xs/src/slic3r/GUI/PresetBundle.hpp @@ -4,6 +4,8 @@ #include "AppConfig.hpp" #include "Preset.hpp" +#include + namespace Slic3r { class PlaceholderParser; @@ -22,11 +24,10 @@ public: void setup_directories(); // Load ini files of all types (print, filament, printer) from Slic3r::data_dir() / presets. - void load_presets(); - // Load selections (current print, current filaments, current printer) from config.ini // This is done just once on application start up. - void load_selections(const AppConfig &config); + void load_presets(const AppConfig &config); + // Export selections (current print, current filaments, current printer) into config.ini void export_selections(AppConfig &config); // Export selections (current print, current filaments, current printer) into a placeholder parser. @@ -39,6 +40,10 @@ public: // extruders.size() should be the same as printers.get_edited_preset().config.nozzle_diameter.size() std::vector filament_presets; + // There will be an entry for each system profile loaded, + // and the system profiles will point to the VendorProfile instances owned by PresetBundle::vendors. + std::set vendors; + bool has_defauls_only() const { return prints.size() <= 1 && filaments.size() <= 1 && printers.size() <= 1; } @@ -69,11 +74,16 @@ public: // Save the profiles, which have been loaded. LOAD_CFGBNDLE_SAVE = 1, // Delete all old config profiles before loading. - LOAD_CFGBNDLE_RESET_USER_PROFILE = 2 + LOAD_CFGBNDLE_RESET_USER_PROFILE = 2, + // Load a system config bundle. + LOAD_CFGBNDLE_SYSTEM = 4, }; // Load the config bundle, store it to the user profile directory by default. size_t load_configbundle(const std::string &path, unsigned int flags = LOAD_CFGBNDLE_SAVE); + // Install the Vendor specific config bundle into user's directory. + void install_vendor_configbundle(const std::string &src_path); + // Export a config bundle file containing all the presets and the names of the active presets. void export_configbundle(const std::string &path); // , const DynamicPrintConfig &settings); @@ -99,6 +109,17 @@ public: void update_compatible_with_printer(bool select_other_if_incompatible); private: + std::string load_system_presets(); + + // Set the "enabled" flag for printer vendors, printer models and printer variants + // based on the user configuration. + // If the "vendor" section is missing, enable all models and variants of the particular vendor. + void load_installed_printers(const AppConfig &config); + + // Load selections (current print, current filaments, current printer) from config.ini + // This is done just once on application start up. + void load_selections(const AppConfig &config); + // Load print, filament & printer presets from a config. If it is an external config, then the name is extracted from the external path. // and the external config is just referenced, not stored into user profile directory. // If it is not an external config, then the config will be stored into the user profile directory. diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 7ce6790a1..7c29a3bea 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -1352,7 +1352,7 @@ void Tab::load_current_preset() auto preset = m_presets->get_edited_preset(); // try{ // local $SIG{ __WARN__ } = Slic3r::GUI::warning_catcher($self); - preset.is_default ? m_btn_delete_preset->Disable() : m_btn_delete_preset->Enable(true); + (preset.is_default || preset.is_system) ? m_btn_delete_preset->Disable() : m_btn_delete_preset->Enable(true); update(); // For the printer profile, generate the extruder pages. on_preset_loaded(); @@ -1557,7 +1557,7 @@ void Tab::save_preset(std::string name /*= ""*/) std::vector values; for (size_t i = 0; i < m_presets->size(); ++i) { const Preset &preset = m_presets->preset(i); - if (preset.is_default || preset.is_external) + if (preset.is_default || preset.is_system || preset.is_external) continue; values.push_back(preset.name); } @@ -1571,6 +1571,15 @@ void Tab::save_preset(std::string name /*= ""*/) show_error(this, _(L("The supplied name is empty. It can't be saved."))); return; } + const Preset *existing = m_presets->find_preset(name, false); + if (existing && (existing->is_default || existing->is_system)) { + show_error(this, _(L("Cannot overwrite a system profile."))); + return; + } + if (existing && (existing->is_external)) { + show_error(this, _(L("Cannot overwrite an external."))); + return; + } } // Save the preset into Slic3r::data_dir / presets / section_name / preset_name.ini @@ -1670,7 +1679,7 @@ wxSizer* Tab::compatible_printers_widget(wxWindow* parent, wxCheckBox** checkbox for (size_t idx = 0; idx < printers->size(); ++idx) { Preset& preset = printers->preset(idx); - if (!preset.is_default && !preset.is_external) + if (!preset.is_default && !preset.is_external && !preset.is_system) presets.Add(preset.name); } diff --git a/xs/xsp/GUI_Preset.xsp b/xs/xsp/GUI_Preset.xsp index 0033ebd0e..84efdde53 100644 --- a/xs/xsp/GUI_Preset.xsp +++ b/xs/xsp/GUI_Preset.xsp @@ -12,6 +12,7 @@ bool default() %code%{ RETVAL = THIS->is_default; %}; bool external() %code%{ RETVAL = THIS->is_external; %}; + bool system() %code%{ RETVAL = THIS->is_system; %}; bool visible() %code%{ RETVAL = THIS->is_visible; %}; bool dirty() %code%{ RETVAL = THIS->is_dirty; %}; bool compatible() %code%{ RETVAL = THIS->is_compatible; %}; @@ -110,10 +111,10 @@ PresetCollection::arrayref() croak("Cannot create configuration directories:\n%s\n", e.what()); } %}; - void load_presets() + void load_presets(AppConfig *config) %code%{ try { - THIS->load_presets(); + THIS->load_presets(*config); } catch (std::exception& e) { croak("Loading of Slic3r presets from %s failed.\n\n%s\n", Slic3r::data_dir().c_str(), e.what()); @@ -143,6 +144,14 @@ PresetCollection::arrayref() croak("Loading of a config bundle %s failed:\n%s\n", path, e.what()); } %}; + void install_vendor_configbundle(const char *path) + %code%{ + try { + THIS->install_vendor_configbundle(path); + } catch (std::exception& e) { + croak("Installing a vendor config bundle %s failed:\n%s\n", path, e.what()); + } + %}; void export_configbundle(char *path) %code%{ try { @@ -154,7 +163,6 @@ PresetCollection::arrayref() void set_default_suppressed(bool default_suppressed); - void load_selections (AppConfig *config) %code%{ THIS->load_selections(*config); %}; void export_selections(AppConfig *config) %code%{ THIS->export_selections(*config); %}; void export_selections_pp(PlaceholderParser *pp) %code%{ THIS->export_selections(*pp); %}; From 30c859ac7f8568ce6e102f7d511d6ec49898c5b7 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 12 Mar 2018 16:04:32 +0100 Subject: [PATCH 02/24] Added a lock icon to the list of filaments, added some helper methods to PresetBundle. --- xs/CMakeLists.txt | 2 + xs/src/slic3r/GUI/BitmapCache.cpp | 120 +++++++++++++++++++++++++++++ xs/src/slic3r/GUI/BitmapCache.hpp | 43 +++++++++++ xs/src/slic3r/GUI/Field.hpp | 4 +- xs/src/slic3r/GUI/Preset.cpp | 53 ++++++++++--- xs/src/slic3r/GUI/Preset.hpp | 19 ++++- xs/src/slic3r/GUI/PresetBundle.cpp | 83 ++++++++++---------- xs/src/slic3r/GUI/PresetBundle.hpp | 12 ++- 8 files changed, 277 insertions(+), 59 deletions(-) create mode 100644 xs/src/slic3r/GUI/BitmapCache.cpp create mode 100644 xs/src/slic3r/GUI/BitmapCache.hpp diff --git a/xs/CMakeLists.txt b/xs/CMakeLists.txt index 590b5d24f..d834b4608 100644 --- a/xs/CMakeLists.txt +++ b/xs/CMakeLists.txt @@ -171,6 +171,8 @@ add_library(libslic3r STATIC add_library(libslic3r_gui STATIC ${LIBDIR}/slic3r/GUI/AppConfig.cpp ${LIBDIR}/slic3r/GUI/AppConfig.hpp + ${LIBDIR}/slic3r/GUI/BitmapCache.cpp + ${LIBDIR}/slic3r/GUI/BitmapCache.hpp ${LIBDIR}/slic3r/GUI/3DScene.cpp ${LIBDIR}/slic3r/GUI/3DScene.hpp ${LIBDIR}/slic3r/GUI/GLShader.cpp diff --git a/xs/src/slic3r/GUI/BitmapCache.cpp b/xs/src/slic3r/GUI/BitmapCache.cpp new file mode 100644 index 000000000..f92369650 --- /dev/null +++ b/xs/src/slic3r/GUI/BitmapCache.cpp @@ -0,0 +1,120 @@ +#include "BitmapCache.hpp" + +namespace Slic3r { namespace GUI { + +void BitmapCache::clear() +{ + for (std::pair &bitmap : m_map) + delete bitmap.second; +} + +wxBitmap* BitmapCache::insert(const std::string &bitmap_key, size_t width, size_t height) +{ + wxBitmap *bitmap = nullptr; + auto it = m_map.find(bitmap_key); + if (it == m_map.end()) { + bitmap = new wxBitmap(width, height); + m_map[bitmap_key] = bitmap; + } else { + bitmap = it->second; + if (bitmap->GetWidth() != width || bitmap->GetHeight() != height) + bitmap->Create(width, height); + } +#if defined(__APPLE__) || defined(_MSC_VER) + bitmap->UseAlpha(); +#endif + return bitmap; +} + +wxBitmap* BitmapCache::insert(const std::string &bitmap_key, const wxBitmap &bmp) +{ + wxBitmap *bitmap = this->insert(bitmap_key, bmp.GetWidth(), bmp.GetHeight()); + + wxMemoryDC memDC; + memDC.SelectObject(*bitmap); + memDC.SetBackground(*wxTRANSPARENT_BRUSH); + memDC.Clear(); + memDC.DrawBitmap(bmp, 0, 0, true); + memDC.SelectObject(wxNullBitmap); + + return bitmap; +} + +wxBitmap* BitmapCache::insert(const std::string &bitmap_key, const wxBitmap &bmp, const wxBitmap &bmp2) +{ + wxBitmap *bitmap = this->insert(bitmap_key, bmp.GetWidth() + bmp2.GetWidth(), std::max(bmp.GetHeight(), bmp2.GetHeight())); + + wxMemoryDC memDC; + memDC.SelectObject(*bitmap); + memDC.SetBackground(*wxTRANSPARENT_BRUSH); + memDC.Clear(); + if (bmp.GetWidth() > 0) + memDC.DrawBitmap(bmp, 0, 0, true); + if (bmp2.GetWidth() > 0) + memDC.DrawBitmap(bmp2, bmp.GetWidth(), 0, true); + memDC.SelectObject(wxNullBitmap); + + return bitmap; +} + +wxBitmap* BitmapCache::insert(const std::string &bitmap_key, const wxBitmap &bmp, const wxBitmap &bmp2, const wxBitmap &bmp3) +{ + wxBitmap *bitmap = this->insert(bitmap_key, bmp.GetWidth() + bmp2.GetWidth() + bmp3.GetWidth(), std::max(std::max(bmp.GetHeight(), bmp2.GetHeight()), bmp3.GetHeight())); + + wxMemoryDC memDC; + memDC.SelectObject(*bitmap); + memDC.SetBackground(*wxTRANSPARENT_BRUSH); + memDC.Clear(); + if (bmp.GetWidth() > 0) + memDC.DrawBitmap(bmp, 0, 0, true); + if (bmp2.GetWidth() > 0) + memDC.DrawBitmap(bmp2, bmp.GetWidth(), 0, true); + if (bmp3.GetWidth() > 0) + memDC.DrawBitmap(bmp3, bmp.GetWidth() + bmp2.GetWidth(), 0, true); + memDC.SelectObject(wxNullBitmap); + + return bitmap; +} + +wxBitmap* BitmapCache::insert(const std::string &bitmap_key, std::vector &bmps) +{ + size_t width = 0; + size_t height = 0; + for (wxBitmap &bmp : bmps) { + width += bmp.GetWidth(); + height = std::max(height, bmp.GetHeight()); + } + wxBitmap *bitmap = this->insert(bitmap_key, width, height); + + wxMemoryDC memDC; + memDC.SelectObject(*bitmap); + memDC.SetBackground(*wxTRANSPARENT_BRUSH); + memDC.Clear(); + size_t x = 0; + for (wxBitmap &bmp : bmps) { + if (bmp.GetWidth() > 0) + memDC.DrawBitmap(bmp, x, 0, true); + x += bmp.GetWidth(); + } + memDC.SelectObject(wxNullBitmap); + + return bitmap; +} + +wxBitmap BitmapCache::mksolid(size_t width, size_t height, unsigned char r, unsigned char g, unsigned char b, unsigned char transparency) +{ + wxImage image(width, height); + image.InitAlpha(); + unsigned char* imgdata = image.GetData(); + unsigned char* imgalpha = image.GetAlpha(); + for (size_t i = 0; i < width * height; ++ i) { + *imgdata ++ = r; + *imgdata ++ = g; + *imgdata ++ = b; + *imgalpha ++ = transparency; + } + return wxBitmap(std::move(image)); +} + +} // namespace GUI +} // namespace Slic3r diff --git a/xs/src/slic3r/GUI/BitmapCache.hpp b/xs/src/slic3r/GUI/BitmapCache.hpp new file mode 100644 index 000000000..0cf9d8acf --- /dev/null +++ b/xs/src/slic3r/GUI/BitmapCache.hpp @@ -0,0 +1,43 @@ +#ifndef SLIC3R_GUI_BITMAP_CACHE_HPP +#define SLIC3R_GUI_BITMAP_CACHE_HPP + +#include +#ifndef WX_PRECOMP + #include +#endif + +#include "../../libslic3r/libslic3r.h" +#include "../../libslic3r/Config.hpp" + +#include "GUI.hpp" + +namespace Slic3r { namespace GUI { + +class BitmapCache +{ +public: + BitmapCache() {} + ~BitmapCache() { clear(); } + void clear(); + + wxBitmap* find(const std::string &name) { auto it = m_map.find(name); return (it == m_map.end()) ? nullptr : it->second; } + const wxBitmap* find(const std::string &name) const { return const_cast(this)->find(name); } + + wxBitmap* insert(const std::string &name, size_t width, size_t height); + wxBitmap* insert(const std::string &name, const wxBitmap &bmp); + wxBitmap* insert(const std::string &name, const wxBitmap &bmp, const wxBitmap &bmp2); + wxBitmap* insert(const std::string &name, const wxBitmap &bmp, const wxBitmap &bmp2, const wxBitmap &bmp3); + wxBitmap* insert(const std::string &name, std::vector &bmps); + + static wxBitmap mksolid(size_t width, size_t height, unsigned char r, unsigned char g, unsigned char b, unsigned char transparency); + static wxBitmap mksolid(size_t width, size_t height, const unsigned char rgb[3]) { return mksolid(width, height, rgb[0], rgb[1], rgb[2], wxALPHA_OPAQUE); } + static wxBitmap mkclear(size_t width, size_t height) { return mksolid(width, height, 0, 0, 0, wxALPHA_TRANSPARENT); } + +private: + std::map m_map; +}; + +} // GUI +} // Slic3r + +#endif /* SLIC3R_GUI_BITMAP_CACHE_HPP */ diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp index 492629b41..9d4febe2e 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/xs/src/slic3r/GUI/Field.hpp @@ -264,9 +264,7 @@ public: wxSizer* getSizer() override { return sizer; } }; - -#endif } // GUI } // Slic3r - +#endif /* SLIC3R_GUI_FIELD_HPP */ diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index d3d569cae..a1706ba47 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -345,16 +345,33 @@ void PresetCollection::save_current_preset(const std::string &new_name) if (it != m_presets.end() && it->name == new_name) { // Preset with the same name found. Preset &preset = *it; - if (preset.is_default) + if (preset.is_default || preset.is_external || preset.is_system) // Cannot overwrite the default preset. return; // Overwriting an existing preset. preset.config = std::move(m_edited_preset.config); } else { // Creating a new preset. - Preset &preset = *m_presets.insert(it, m_edited_preset); + Preset &preset = *m_presets.insert(it, m_edited_preset); + std::string &inherits = preset.config.opt_string("inherits", true); + std::string old_name = preset.name; preset.name = new_name; preset.file = this->path_from_name(new_name); + preset.vendor = nullptr; + if (preset.is_system) { + // Inheriting from a system preset. + inherits = /* preset.vendor->name + "/" + */ old_name; + } else if (inherits.empty()) { + // Inheriting from a user preset. Link the new preset to the old preset. + inherits = old_name; + } else { + // Inherited from a user preset. Just maintain the "inherited" flag, + // meaning it will inherit from either the system preset, or the inherited user preset. + } + preset.inherits = inherits; + preset.is_default = false; + preset.is_system = false; + preset.is_external = false; } // 2) Activate the saved preset. this->select_preset_by_name(new_name, true); @@ -387,6 +404,15 @@ bool PresetCollection::load_bitmap_default(const std::string &file_name) return m_bitmap_main_frame->LoadFile(wxString::FromUTF8(Slic3r::var(file_name).c_str()), wxBITMAP_TYPE_PNG); } +const Preset* PresetCollection::get_selected_preset_parent() const +{ + auto *inherits = dynamic_cast(this->get_edited_preset().config.option("inherits")); + if (inherits == nullptr || inherits->value.empty()) + return nullptr; + const Preset* preset = this->find_preset(inherits->value, false); + return (preset == nullptr || preset->is_default || preset->is_external) ? nullptr : preset; +} + // Return a preset by its name. If the preset is active, a temporary copy is returned. // If a preset is not found by its name, null is returned. Preset* PresetCollection::find_preset(const std::string &name, bool first_visible_if_not_found) @@ -530,16 +556,19 @@ bool PresetCollection::update_dirty_ui(wxBitmapComboBox *ui) return was_dirty != is_dirty; } -std::vector PresetCollection::current_dirty_options() const -{ - std::vector changed = this->get_selected_preset().config.diff(this->get_edited_preset().config); - // The "compatible_printers" option key is handled differently from the others: - // It is not mandatory. If the key is missing, it means it is compatible with any printer. - // If the key exists and it is empty, it means it is compatible with no printer. - std::initializer_list optional_keys { "compatible_printers", "compatible_printers_condition" }; - for (auto &opt_key : optional_keys) { - if (this->get_selected_preset().config.has(opt_key) != this->get_edited_preset().config.has(opt_key)) - changed.emplace_back(opt_key); +std::vector PresetCollection::dirty_options(const Preset *edited, const Preset *reference) +{ + std::vector changed; + if (edited != nullptr && reference != nullptr) { + changed = reference->config.diff(edited->config); + // The "compatible_printers" option key is handled differently from the others: + // It is not mandatory. If the key is missing, it means it is compatible with any printer. + // If the key exists and it is empty, it means it is compatible with no printer. + std::initializer_list optional_keys { "compatible_printers", "compatible_printers_condition" }; + for (auto &opt_key : optional_keys) { + if (reference->config.has(opt_key) != edited->config.has(opt_key)) + changed.emplace_back(opt_key); + } } return changed; } diff --git a/xs/src/slic3r/GUI/Preset.hpp b/xs/src/slic3r/GUI/Preset.hpp index c56b91bcf..a6ce77dfe 100644 --- a/xs/src/slic3r/GUI/Preset.hpp +++ b/xs/src/slic3r/GUI/Preset.hpp @@ -191,6 +191,8 @@ public: // Compatible & incompatible marks, to be placed at the wxBitmapComboBox items. void set_bitmap_compatible (const wxBitmap *bmp) { m_bitmap_compatible = bmp; } void set_bitmap_incompatible(const wxBitmap *bmp) { m_bitmap_incompatible = bmp; } + void set_bitmap_lock (const wxBitmap *bmp) { m_bitmap_lock = bmp; } + void set_bitmap_lock_open (const wxBitmap *bmp) { m_bitmap_lock_open = bmp; } // Enable / disable the "- default -" preset. void set_default_suppressed(bool default_suppressed); @@ -202,6 +204,11 @@ public: Preset& get_selected_preset() { return m_presets[m_idx_selected]; } const Preset& get_selected_preset() const { return m_presets[m_idx_selected]; } int get_selected_idx() const { return m_idx_selected; } + // For the current edited preset, return the parent preset if there is one. + // If there is no parent preset, nullptr is returned. + // The parent preset may be a system preset or a user preset, which will be + // reflected by the UI. + const Preset* get_selected_preset_parent() const; // Return the selected preset including the user modifications. Preset& get_edited_preset() { return m_edited_preset; } const Preset& get_edited_preset() const { return m_edited_preset; } @@ -238,7 +245,11 @@ public: // Compare the content of get_selected_preset() with get_edited_preset() configs, return true if they differ. bool current_is_dirty() const { return ! this->current_dirty_options().empty(); } // Compare the content of get_selected_preset() with get_edited_preset() configs, return the list of keys where they differ. - std::vector current_dirty_options() const; + std::vector current_dirty_options() const + { return dirty_options(&this->get_edited_preset(), &this->get_selected_preset()); } + // Compare the content of get_selected_preset() with get_edited_preset() configs, return the list of keys where they differ. + std::vector current_different_from_parent_options() const + { return dirty_options(&this->get_edited_preset(), this->get_selected_preset_parent()); } // Update the choice UI from the list of presets. // If show_incompatible, all presets are shown, otherwise only the compatible presets are shown. @@ -278,6 +289,8 @@ private: std::deque::const_iterator find_preset_internal(const std::string &name) const { return const_cast(this)->find_preset_internal(name); } + static std::vector dirty_options(const Preset *edited, const Preset *reference); + // Type of this PresetCollection: TYPE_PRINT, TYPE_FILAMENT or TYPE_PRINTER. Preset::Type m_type; // List of presets, starting with the "- default -" preset. @@ -292,8 +305,10 @@ private: bool m_default_suppressed = true; // Compatible & incompatible marks, to be placed at the wxBitmapComboBox items of a Platter. // These bitmaps are not owned by PresetCollection, but by a PresetBundle. - const wxBitmap *m_bitmap_compatible = nullptr; + const wxBitmap *m_bitmap_compatible = nullptr; const wxBitmap *m_bitmap_incompatible = nullptr; + const wxBitmap *m_bitmap_lock = nullptr; + const wxBitmap *m_bitmap_lock_open = nullptr; // Marks placed at the wxBitmapComboBox of a MainFrame. // These bitmaps are owned by PresetCollection. wxBitmap *m_bitmap_main_frame; diff --git a/xs/src/slic3r/GUI/PresetBundle.cpp b/xs/src/slic3r/GUI/PresetBundle.cpp index 77eb5c081..453208fde 100644 --- a/xs/src/slic3r/GUI/PresetBundle.cpp +++ b/xs/src/slic3r/GUI/PresetBundle.cpp @@ -2,6 +2,7 @@ #include #include "PresetBundle.hpp" +#include "BitmapCache.hpp" #include #include @@ -37,7 +38,10 @@ PresetBundle::PresetBundle() : filaments(Preset::TYPE_FILAMENT, Preset::filament_options()), printers(Preset::TYPE_PRINTER, Preset::printer_options()), m_bitmapCompatible(new wxBitmap), - m_bitmapIncompatible(new wxBitmap) + m_bitmapIncompatible(new wxBitmap), + m_bitmapLock(new wxBitmap), + m_bitmapLockOpen(new wxBitmap), + m_bitmapCache(new GUI::BitmapCache) { if (wxImage::FindHandler(wxBITMAP_TYPE_PNG) == nullptr) wxImage::AddHandler(new wxPNGHandler); @@ -70,12 +74,18 @@ PresetBundle::~PresetBundle() { assert(m_bitmapCompatible != nullptr); assert(m_bitmapIncompatible != nullptr); + assert(m_bitmapLock != nullptr); + assert(m_bitmapLockOpen != nullptr); delete m_bitmapCompatible; m_bitmapCompatible = nullptr; delete m_bitmapIncompatible; m_bitmapIncompatible = nullptr; - for (std::pair &bitmap : m_mapColorToBitmap) - delete bitmap.second; + delete m_bitmapLock; + m_bitmapLock = nullptr; + delete m_bitmapLockOpen; + m_bitmapLockOpen = nullptr; + delete m_bitmapCache; + m_bitmapCache = nullptr; } void PresetBundle::reset(bool delete_files) @@ -244,10 +254,16 @@ bool PresetBundle::load_compatible_bitmaps() { const std::string path_bitmap_compatible = "flag-green-icon.png"; const std::string path_bitmap_incompatible = "flag-red-icon.png"; + const std::string path_bitmap_lock = "lock.png"; + const std::string path_bitmap_lock_open = "lock_open.png"; bool loaded_compatible = m_bitmapCompatible ->LoadFile( wxString::FromUTF8(Slic3r::var(path_bitmap_compatible).c_str()), wxBITMAP_TYPE_PNG); bool loaded_incompatible = m_bitmapIncompatible->LoadFile( wxString::FromUTF8(Slic3r::var(path_bitmap_incompatible).c_str()), wxBITMAP_TYPE_PNG); + bool loaded_lock = m_bitmapLock->LoadFile( + wxString::FromUTF8(Slic3r::var(path_bitmap_lock).c_str()), wxBITMAP_TYPE_PNG); + bool loaded_lock_open = m_bitmapLockOpen->LoadFile( + wxString::FromUTF8(Slic3r::var(path_bitmap_lock_open).c_str()), wxBITMAP_TYPE_PNG); if (loaded_compatible) { prints .set_bitmap_compatible(m_bitmapCompatible); filaments.set_bitmap_compatible(m_bitmapCompatible); @@ -258,7 +274,17 @@ bool PresetBundle::load_compatible_bitmaps() filaments.set_bitmap_incompatible(m_bitmapIncompatible); // printers .set_bitmap_incompatible(m_bitmapIncompatible); } - return loaded_compatible && loaded_incompatible; + if (loaded_lock) { + prints .set_bitmap_lock(m_bitmapLock); + filaments.set_bitmap_lock(m_bitmapLock); + printers .set_bitmap_lock(m_bitmapLock); + } + if (loaded_lock_open) { + prints .set_bitmap_lock_open(m_bitmapLock); + filaments.set_bitmap_lock_open(m_bitmapLock); + printers .set_bitmap_lock_open(m_bitmapLock); + } + return loaded_compatible && loaded_incompatible && loaded_lock && loaded_lock_open; } DynamicPrintConfig PresetBundle::full_config() const @@ -973,49 +999,26 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, wxBitma // If the filament preset is not compatible and there is a "red flag" icon loaded, show it left // to the filament color image. if (wide_icons) - bitmap_key += preset.is_compatible ? "comp" : "notcomp"; - auto it = m_mapColorToBitmap.find(bitmap_key); - wxBitmap *bitmap = (it == m_mapColorToBitmap.end()) ? nullptr : it->second; + bitmap_key += preset.is_compatible ? ",cmpt" : ",ncmpt"; + bitmap_key += (preset.is_system || preset.is_default) ? ",syst" : ",nsyst"; + wxBitmap *bitmap = m_bitmapCache->find(bitmap_key); if (bitmap == nullptr) { // Create the bitmap with color bars. - bitmap = new wxBitmap((wide_icons ? 16 : 0) + 24, 16); -#if defined(__APPLE__) || defined(_MSC_VER) - bitmap->UseAlpha(); -#endif - wxMemoryDC memDC; - memDC.SelectObject(*bitmap); - memDC.SetBackground(*wxTRANSPARENT_BRUSH); - memDC.Clear(); - if (wide_icons && ! preset.is_compatible) - // Paint the red flag. - memDC.DrawBitmap(*m_bitmapIncompatible, 0, 0, true); + std::vector bmps; + if (wide_icons) + // Paint a red flag for incompatible presets. + bmps.emplace_back(preset.is_compatible ? m_bitmapCache->mkclear(16, 16) : *m_bitmapIncompatible); // Paint the color bars. parse_color(filament_rgb, rgb); - wxImage image(24, 16); - image.InitAlpha(); - unsigned char* imgdata = image.GetData(); - unsigned char* imgalpha = image.GetAlpha(); - for (size_t i = 0; i < image.GetWidth() * image.GetHeight(); ++ i) { - *imgdata ++ = rgb[0]; - *imgdata ++ = rgb[1]; - *imgdata ++ = rgb[2]; - *imgalpha ++ = wxALPHA_OPAQUE; - } + bmps.emplace_back(m_bitmapCache->mksolid(single_bar ? 24 : 16, 16, rgb)); if (! single_bar) { parse_color(extruder_rgb, rgb); - imgdata = image.GetData(); - for (size_t r = 0; r < 16; ++ r) { - imgdata = image.GetData() + r * image.GetWidth() * 3; - for (size_t c = 0; c < 16; ++ c) { - *imgdata ++ = rgb[0]; - *imgdata ++ = rgb[1]; - *imgdata ++ = rgb[2]; - } - } + bmps.emplace_back(m_bitmapCache->mksolid(8, 16, rgb)); } - memDC.DrawBitmap(wxBitmap(image), wide_icons ? 16 : 0, 0, true); - memDC.SelectObject(wxNullBitmap); - m_mapColorToBitmap[bitmap_key] = bitmap; + // Paint a lock at the system presets. + bmps.emplace_back(m_bitmapCache->mkclear(4, 16)); + bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmapLock : m_bitmapCache->mkclear(16, 16)); + bitmap = m_bitmapCache->insert(bitmap_key, bmps); } ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()), (bitmap == 0) ? wxNullBitmap : *bitmap); if (selected) diff --git a/xs/src/slic3r/GUI/PresetBundle.hpp b/xs/src/slic3r/GUI/PresetBundle.hpp index aaa66265a..f481ba374 100644 --- a/xs/src/slic3r/GUI/PresetBundle.hpp +++ b/xs/src/slic3r/GUI/PresetBundle.hpp @@ -8,6 +8,10 @@ namespace Slic3r { +namespace GUI { + class BitmapCache; +}; + class PlaceholderParser; // Bundle of Print + Filament + Printer presets. @@ -131,8 +135,12 @@ private: wxBitmap *m_bitmapCompatible; // Indicator, that the preset is NOT compatible with the selected printer. wxBitmap *m_bitmapIncompatible; - // Caching color bitmaps for the - std::map m_mapColorToBitmap; + // Indicator, that the preset is system and not modified. + wxBitmap *m_bitmapLock; + // Indicator, that the preset is system and user modified. + wxBitmap *m_bitmapLockOpen; + // Caching color bitmaps for the filament combo box. + GUI::BitmapCache *m_bitmapCache; }; } // namespace Slic3r From 729d879b0e80c0e0f2927b31aa308db83cdc4c91 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 13 Mar 2018 09:45:04 +0100 Subject: [PATCH 03/24] Added the Prusa's vendor specific Config Bundle. Added the "unlocked lock" icon when the system profile gets modified. --- resources/profiles/PrusaResearch.ini | 1026 ++++++++++++++++++++++++++ xs/src/slic3r/GUI/Preset.cpp | 9 +- xs/src/slic3r/GUI/PresetBundle.cpp | 5 +- 3 files changed, 1036 insertions(+), 4 deletions(-) create mode 100644 resources/profiles/PrusaResearch.ini diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini new file mode 100644 index 000000000..444203e2e --- /dev/null +++ b/resources/profiles/PrusaResearch.ini @@ -0,0 +1,1026 @@ +# Print profiles for the Prusa Research printers. + +[vendor] +# Vendor name will be shown by the Config Wizard. +name = Prusa Research +# Configuration version of this file. Config file will only be installed, if the config_version differs. +# This means, the server may force the Slic3r configuration to be downgraded. +config_version = 0.1 +# Where to get the updates from? +config_update_url = https://raw.githubusercontent.com/prusa3d/Slic3r-settings/master/live/PrusaResearch.ini + +# The printer models will be shown by the Configuration Wizard in this order, +# also the first model installed & the first nozzle installed will be activated after install. +#TODO: One day we may differentiate variants of the nozzles / hot ends, +#for example by the melt zone size, or whether the nozzle is hardened. +[printer_model:MK3] +variants = 0.4; 0.25; 0.6 + +[printer_model:MK2S] +variants = 0.4; 0.25; 0.6 + +[printer_model:MK2SMM] +# Printer model name will be shown by the installation wizard. +name = MK2S Multi Material +variants = 0.4; 0.6 + +# All presets starting with asterisk, for example *common*, are intermediate and they will +# not make it into the user interface. + +# Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. +# All other print presets will derive from the *common* print preset. +[print:*common*] +avoid_crossing_perimeters = 0 +bridge_acceleration = 1000 +bridge_angle = 0 +bridge_flow_ratio = 0.8 +bridge_speed = 20 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +complete_objects = 0 +default_acceleration = 1000 +dont_support_bridges = 1 +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 1 +external_fill_pattern = rectilinear +external_perimeters_first = 0 +external_perimeter_extrusion_width = 0.45 +extra_perimeters = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = cubic +first_layer_acceleration = 1000 +first_layer_extrusion_width = 0.42 +first_layer_height = 0.2 +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.45 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 25% +interface_shells = 0 +max_print_speed = 100 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 4 +notes = +overhangs = 0 +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +post_process = +print_settings_id = +raft_layers = 0 +resolution = 0 +seam_position = nearest +skirts = 1 +skirt_distance = 2 +skirt_height = 3 +small_perimeter_speed = 20 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_extruder = 0 +support_material_extrusion_width = 0.35 +support_material_interface_extruder = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_enforce_layers = 0 +support_material_interface_contact_loops = 0 +support_material_interface_layers = 2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear +support_material_speed = 50 +support_material_synchronize_layers = 0 +support_material_threshold = 45 +support_material_with_sheath = 0 +support_material_xy_spacing = 60% +thin_walls = 0 +top_infill_extrusion_width = 0.45 +top_solid_infill_speed = 40 +travel_speed = 180 +wipe_tower = 0 +wipe_tower_per_color_wipe = 15 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +# Print parameters common to a 0.25mm diameter nozzle. +[print:*0.25nozzle*] +external_perimeter_extrusion_width = 0.25 +extrusion_width = 0.25 +first_layer_extrusion_width = 0.25 +infill_extrusion_width = 0.25 +perimeter_extrusion_width = 0.25 +solid_infill_extrusion_width = 0.25 +top_infill_extrusion_width = 0.25 +support_material_extrusion_width = 0.18 +support_material_interface_layers = 0 +support_material_interface_spacing = 0.15 +support_material_spacing = 1 +support_material_xy_spacing = 150% + +# Print parameters common to a 0.6mm diameter nozzle. +[print:*0.6nozzle*] +external_perimeter_extrusion_width = 0.61 +extrusion_width = 0.67 +first_layer_extrusion_width = 0.65 +infill_extrusion_width = 0.75 +perimeter_extrusion_width = 0.65 +solid_infill_extrusion_width = 0.65 +top_infill_extrusion_width = 0.6 + +[print:*0.05mm*] +inherits = *common* +bottom_solid_layers = 10 +bridge_acceleration = 300 +bridge_flow_ratio = 0.7 +default_acceleration = 500 +external_perimeter_speed = 20 +fill_density = 25% +first_layer_acceleration = 500 +gap_fill_speed = 20 +infill_acceleration = 800 +infill_speed = 30 +max_print_speed = 80 +small_perimeter_speed = 15 +solid_infill_speed = 30 +support_material_extrusion_width = 0.3 +support_material_interface_spacing = 0.2 +support_material_spacing = 1.5 +layer_height = 0.05 +perimeter_acceleration = 300 +perimeter_speed = 30 +perimeters = 3 +support_material_contact_distance = 0.15 +support_material_speed = 30 +top_solid_infill_speed = 20 +top_solid_layers = 15 + +[print:0.05mm DETAIL] +inherits = *0.05mm* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 +infill_extrusion_width = 0.5 + +[print:0.05mm DETAIL MK3] +inherits = *0.05mm* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +fill_pattern = grid +top_infill_extrusion_width = 0.4 + +[print:0.05mm DETAIL 0.25 nozzle] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 and num_extruders==1 +external_perimeter_extrusion_width = 0 +extrusion_width = 0.28 +fill_density = 20% +first_layer_extrusion_width = 0.3 +infill_extrusion_width = 0 +infill_speed = 20 +max_print_speed = 100 +perimeter_extrusion_width = 0 +perimeter_speed = 20 +perimeters = 4 +small_perimeter_speed = 10 +solid_infill_extrusion_width = 0 +solid_infill_speed = 20 +support_material_speed = 20 +top_infill_extrusion_width = 0 + +[print:*0.10mm*] +inherits = *common* +bottom_solid_layers = 7 +bridge_flow_ratio = 0.7 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 +layer_height = 0.1 +perimeter_acceleration = 800 +support_material_contact_distance = 0.15 +support_material_interface_spacing = 0.2 +support_material_spacing = 2 +top_solid_layers = 9 + +[print:0.10mm DETAIL] +inherits = *0.10mm* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1 +external_perimeter_speed = 40 +infill_acceleration = 2000 +infill_speed = 60 +perimeter_speed = 50 +perimeters = 3 +solid_infill_speed = 50 + +[print:0.10mm DETAIL MK3] +inherits = *0.10mm* +bridge_flow_ratio = 0.8 +bridge_speed = 30 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +external_perimeter_speed = 35 +fill_pattern = grid +infill_acceleration = 1500 +infill_speed = 170 +max_print_speed = 170 +perimeter_speed = 45 +perimeters = 2 +solid_infill_speed = 170 +top_infill_extrusion_width = 0.4 +top_solid_infill_speed = 50 + +[print:0.10mm DETAIL 0.25 nozzle] +inherits = *0.10mm*; *0.25nozzle* +bridge_acceleration = 600 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 +external_perimeter_speed = 20 +fill_density = 15% +infill_acceleration = 1600 +infill_speed = 40 +perimeter_acceleration = 600 +perimeter_speed = 25 +perimeters = 4 +small_perimeter_speed = 10 +solid_infill_speed = 40 +top_solid_infill_speed = 30 + +[print:*0.15mm*] +inherits = *common* +bottom_solid_layers = 5 +external_perimeter_speed = 40 +infill_acceleration = 2000 +infill_speed = 60 +layer_height = 0.15 +perimeter_acceleration = 800 +perimeter_speed = 50 +perimeters = 3 +solid_infill_speed = 50 +support_material_contact_distance = 0.15 +support_material_interface_spacing = 0.2 +support_material_spacing = 2 +top_infill_extrusion_width = 0.4 +top_solid_layers = 7 + +[print:0.15mm 100mms Linear Advance] +inherits = *0.15mm* +bottom_solid_layers = 4 +bridge_flow_ratio = 0.95 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 +external_perimeter_speed = 50 +infill_speed = 100 +max_print_speed = 150 +perimeter_speed = 60 +perimeters = 2 +small_perimeter_speed = 30 +solid_infill_speed = 100 +support_material_speed = 60 +top_solid_infill_speed = 70 +top_solid_layers = 5 + +[print:0.15mm OPTIMAL] +inherits = *0.15mm* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 +top_infill_extrusion_width = 0.45 + +[print:0.15mm OPTIMAL 0.25 nozzle] +inherits = *0.15mm*; *0.25nozzle* +bridge_acceleration = 600 +bridge_flow_ratio = 0.7 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25 +external_perimeter_speed = 20 +infill_acceleration = 1600 +infill_speed = 40 +perimeter_acceleration = 600 +perimeter_speed = 25 +perimeters = 2 +small_perimeter_speed = 10 +solid_infill_speed = 40 +support_material_extrusion_width = 0.2 +support_material_threshold = 35 +top_solid_infill_speed = 30 + +[print:0.15mm OPTIMAL 0.6 nozzle] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 +wipe_tower = 1 + +[print:0.15mm OPTIMAL MK3] +inherits = *0.15mm* +bridge_speed = 30 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +external_perimeter_speed = 35 +fill_pattern = grid +infill_acceleration = 1500 +infill_speed = 170 +max_print_speed = 170 +perimeter_speed = 45 +perimeters = 2 +solid_infill_speed = 170 +top_solid_infill_speed = 50 +wipe_tower = 1 + +[print:0.15mm OPTIMAL SOLUBLE FULL] +inherits = *0.15mm* +bottom_solid_layers = 5 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 +external_perimeter_speed = 25 +notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder +overhangs = 1 +perimeter_speed = 40 +skirts = 0 +solid_infill_speed = 40 +support_material = 1 +support_material_contact_distance = 0 +support_material_extruder = 4 +support_material_extrusion_width = 0.45 +support_material_interface_extruder = 4 +support_material_interface_spacing = 0.1 +support_material_synchronize_layers = 1 +support_material_threshold = 80 +support_material_with_sheath = 1 +support_material_xy_spacing = 60% +top_infill_extrusion_width = 0.45 +top_solid_infill_speed = 30 +wipe_tower = 1 +wipe_tower_per_color_wipe = 20 + +[print:0.15mm OPTIMAL SOLUBLE INTERFACE] +inherits = 0.15mm OPTIMAL SOLUBLE FULL +notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder +support_material_extruder = 0 +support_material_interface_layers = 3 +support_material_with_sheath = 0 +support_material_xy_spacing = 120% + +[print:*0.20mm*] +inherits = *common* +bottom_solid_layers = 4 +bridge_flow_ratio = 0.95 +external_perimeter_speed = 40 +infill_acceleration = 2000 +infill_speed = 60 +layer_height = 0.2 +perimeter_acceleration = 800 +perimeter_speed = 50 +perimeters = 2 +solid_infill_speed = 50 +support_material_contact_distance = 0.15 +support_material_interface_spacing = 0.2 +support_material_spacing = 2 +top_infill_extrusion_width = 0.4 +top_solid_layers = 5 +wipe_tower = 1 + +[print:0.20mm 100mms Linear Advance] +inherits = *0.20mm* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 +external_perimeter_speed = 50 +infill_speed = 100 +max_print_speed = 150 +perimeter_speed = 60 +small_perimeter_speed = 30 +solid_infill_speed = 100 +support_material_speed = 60 +top_solid_infill_speed = 70 + +[print:0.20mm FAST MK3] +inherits = *0.20mm* +bridge_speed = 30 +bridge_flow_ratio = 0.8 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ +external_perimeter_speed = 35 +fill_pattern = grid +infill_acceleration = 1500 +infill_speed = 170 +max_print_speed = 170 +perimeter_speed = 45 +solid_infill_speed = 170 +top_solid_infill_speed = 50 + +[print:0.20mm NORMAL] +inherits = *0.20mm* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 + +[print:0.20mm NORMAL 0.6 nozzle] +inherits = *0.20mm*; *0.6nozzle* +bridge_flow_ratio = 0.8 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 +perimeters = 3 + +[print:0.20mm NORMAL SOLUBLE FULL] +inherits = *0.20mm* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders>1 +external_perimeter_speed = 30 +notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder +overhangs = 1 +perimeter_speed = 40 +skirts = 0 +solid_infill_speed = 40 +support_material = 1 +support_material_contact_distance = 0 +support_material_extruder = 4 +support_material_extrusion_width = 0.45 +support_material_interface_extruder = 4 +support_material_interface_spacing = 0.1 +support_material_synchronize_layers = 1 +support_material_threshold = 80 +support_material_with_sheath = 1 +support_material_xy_spacing = 120% +top_solid_infill_speed = 30 +wipe_tower_per_color_wipe = 20 + +[print:0.20mm NORMAL SOLUBLE INTERFACE] +inherits = 0.20mm NORMAL SOLUBLE FULL +notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder +support_material_extruder = 0 +support_material_interface_layers = 3 +support_material_with_sheath = 0 + +[print:*0.35mm*] +inherits = *common* +bottom_solid_layers = 3 +external_perimeter_extrusion_width = 0.6 +external_perimeter_speed = 40 +first_layer_extrusion_width = 0.75 +infill_acceleration = 2000 +infill_extrusion_width = 0.75 +infill_speed = 60 +layer_height = 0.35 +perimeter_acceleration = 800 +perimeter_extrusion_width = 0.65 +perimeter_speed = 50 +perimeters = 2 +solid_infill_extrusion_width = 0.65 +solid_infill_speed = 60 +support_material_contact_distance = 0.15 +support_material_interface_spacing = 0.2 +support_material_spacing = 2 +top_solid_infill_speed = 50 +top_solid_layers = 4 +wipe_tower = 1 + +[print:0.35mm FAST] +inherits = *0.35mm* +bridge_flow_ratio = 0.95 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 +first_layer_extrusion_width = 0.42 +infill_extrusion_width = 0.7 +perimeter_extrusion_width = 0.43 +solid_infill_extrusion_width = 0.7 +top_infill_extrusion_width = 0.43 + +[print:0.35mm FAST 0.6 nozzle] +inherits = *0.35mm*; *0.6nozzle* +bottom_solid_layers = 7 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 +perimeters = 3 +top_solid_layers = 9 + +[print:0.35mm FAST sol full 0.6 nozzle] +inherits = *0.35mm*; *0.6nozzle* +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 +external_perimeter_extrusion_width = 0.6 +external_perimeter_speed = 30 +notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder +overhangs = 1 +perimeter_speed = 40 +skirts = 0 +support_material = 1 +support_material_contact_distance = 0 +support_material_extruder = 4 +support_material_extrusion_width = 0.55 +support_material_interface_extruder = 4 +support_material_interface_layers = 3 +support_material_synchronize_layers = 1 +support_material_threshold = 80 +support_material_xy_spacing = 120% +top_infill_extrusion_width = 0.57 +wipe_tower_per_color_wipe = 20 + +[print:0.35mm FAST sol int 0.6 nozzle] +inherits = 0.35mm FAST sol full 0.6 nozzle +support_material_extruder = 0 +support_material_interface_layers = 2 +support_material_xy_spacing = 150% + +[filament:*common*] +cooling = 1 +compatible_printers = +compatible_printers_condition = +end_filament_gcode = "; Filament-specific end gcode" +extrusion_multiplier = 1 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_settings_id = +filament_soluble = 0 +min_print_speed = 5 +slowdown_below_layer_time = 20 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" + +[filament:*PLA*] +inherits = *common* +bed_temperature = 60 +bridge_fan_speed = 100 +disable_fan_first_layers = 1 +fan_always_on = 1 +fan_below_layer_time = 100 +filament_colour = #FF3232 +filament_max_volumetric_speed = 15 +filament_type = PLA +first_layer_bed_temperature = 60 +first_layer_temperature = 215 +max_fan_speed = 100 +min_fan_speed = 100 +temperature = 210 + +[filament:*PET*] +inherits = *common* +bed_temperature = 90 +bridge_fan_speed = 50 +disable_fan_first_layers = 3 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_colour = #FF8000 +filament_max_volumetric_speed = 10 +filament_type = PET +first_layer_bed_temperature = 85 +first_layer_temperature = 230 +max_fan_speed = 50 +min_fan_speed = 30 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" +temperature = 240 + +[filament:*ABS*] +inherits = *common* +bed_temperature = 100 +bridge_fan_speed = 30 +cooling = 0 +disable_fan_first_layers = 3 +fan_always_on = 0 +fan_below_layer_time = 20 +filament_colour = #3A80CA +filament_max_volumetric_speed = 13 +filament_type = ABS +first_layer_bed_temperature = 100 +first_layer_temperature = 255 +max_fan_speed = 30 +min_fan_speed = 10 +temperature = 255 + +[filament:*FLEX*] +inherits = *common* +bridge_fan_speed = 100 +compatible_printers_condition = nozzle_diameter[0]>0.35 and num_extruders==1 +cooling = 0 +disable_fan_first_layers = 1 +extrusion_multiplier = 1.2 +fan_always_on = 0 +fan_below_layer_time = 100 +filament_max_volumetric_speed = 1.5 +filament_type = FLEX +first_layer_bed_temperature = 50 +first_layer_temperature = 240 +max_fan_speed = 90 +min_fan_speed = 70 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 240 + +[filament:ColorFabb Brass Bronze] +inherits = *PLA* +compatible_printers_condition = nozzle_diameter[0]>0.35 +extrusion_multiplier = 1.3 +filament_colour = #804040 +filament_max_volumetric_speed = 10 +min_print_speed = 5 + +[filament:ColorFabb HT] +bed_temperature = 105 +bridge_fan_speed = 30 +compatible_printers = +compatible_printers_condition = +cooling = 1 +disable_fan_first_layers = 3 +end_filament_gcode = "; Filament-specific end gcode" +extrusion_multiplier = 1 +fan_always_on = 0 +fan_below_layer_time = 10 +filament_colour = #FF8000 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_max_volumetric_speed = 10 +filament_notes = "" +filament_settings_id = +filament_soluble = 0 +filament_type = PLA +first_layer_bed_temperature = 105 +first_layer_temperature = 270 +max_fan_speed = 20 +min_fan_speed = 10 +min_print_speed = 5 +slowdown_below_layer_time = 20 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" +temperature = 270 + +[filament:ColorFabb PLA-PHA] +inherits = *PLA* +filament_colour = #FF3232 + +[filament:ColorFabb Woodfil] +inherits = *PLA* +compatible_printers_condition = nozzle_diameter[0]>0.35 +extrusion_multiplier = 1.2 +filament_colour = #804040 +filament_max_volumetric_speed = 10 +first_layer_temperature = 200 +min_print_speed = 5 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 200 + +[filament:ColorFabb XT] +inherits = *PET* +filament_colour = #FF8000 +filament_type = PLA +first_layer_bed_temperature = 90 +first_layer_temperature = 260 +temperature = 270 + +[filament:ColorFabb XT-CF20] +inherits = *PET* +extrusion_multiplier = 1.2 +filament_colour = #804040 +filament_max_volumetric_speed = 1 +first_layer_bed_temperature = 90 +first_layer_temperature = 260 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" +temperature = 260 + +[filament:ColorFabb nGen] +inherits = *PET* +bridge_fan_speed = 40 +fan_always_on = 0 +fan_below_layer_time = 10 +filament_colour = #FF8000 +filament_type = NGEN +first_layer_temperature = 240 +max_fan_speed = 35 +min_fan_speed = 20 + +[filament:ColorFabb nGen flex] +inherits = *flex* +bed_temperature = 85 +bridge_fan_speed = 40 +cooling = 1 +disable_fan_first_layers = 3 +extrusion_multiplier = 1 +fan_below_layer_time = 10 +filament_colour = #FF8000 +filament_max_volumetric_speed = 5 +first_layer_bed_temperature = 85 +first_layer_temperature = 260 +max_fan_speed = 35 +min_fan_speed = 20 +temperature = 260 + +[filament:E3D Edge] +inherits = *PET* +filament_colour = #FF8000 +filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" + +[filament:E3D PC-ABS] +inherits = *ABS* +filament_colour = #3A80CA +first_layer_temperature = 270 +temperature = 270 + +[filament:Fillamentum ABS] +inherits = *ABS* +filament_colour = #3A80CA +first_layer_temperature = 240 +temperature = 240 + +[filament:Fillamentum ASA] +fan_always_on = 1 +filament_colour = #3A80CA +first_layer_temperature = 265 +temperature = 265 + +[filament:Fillamentum CPE HG100 HM100] +inherits = *PET* +disable_fan_first_layers = 1 +filament_colour = #FF8000 +filament_notes = "CPE HG100 , CPE HM100" +first_layer_bed_temperature = 90 +first_layer_temperature = 275 +max_fan_speed = 50 +min_fan_speed = 50 +temperature = 275 + +[filament:Fillamentum Timberfil] +inherits = *PLA* +compatible_printers_condition = nozzle_diameter[0]>0.35 +extrusion_multiplier = 1.2 +filament_colour = #804040 +filament_max_volumetric_speed = 10 +first_layer_temperature = 190 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 190 + +[filament:Generic ABS] +inherits = *ABS* +filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" + +[filament:Generic PET] +inherits = *PET* +filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" + +[filament:Generic PLA] +inherits = *PLA* +filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" + +[filament:Polymaker PC-Max] +inherits = *ABS* +bed_temperature = 120 +filament_colour = #3A80CA +first_layer_bed_temperature = 120 +first_layer_temperature = 270 +temperature = 270 + +[filament:Primavalue PVA] +inherits = *PLA* +cooling = 0 +fan_always_on = 0 +filament_colour = #FFFFD7 +filament_max_volumetric_speed = 10 +filament_notes = "List of materials tested with standart PVA print settings for MK2:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'\nVerbatim BVOH" +filament_soluble = 1 +filament_type = PVA +first_layer_temperature = 195 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 195 + +[filament:Prusa ABS] +inherits = *ABS* +filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" + +[filament:Prusa HIPS] +inherits = *ABS* +bridge_fan_speed = 50 +cooling = 1 +extrusion_multiplier = 0.9 +fan_always_on = 1 +fan_below_layer_time = 10 +filament_colour = #FFFFD7 +filament_soluble = 1 +filament_type = HIPS +first_layer_temperature = 220 +max_fan_speed = 20 +min_fan_speed = 20 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 220 + +[filament:Prusa PET] +inherits = *PET* +filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" + +[filament:Prusa PLA] +inherits = *PLA* +filament_colour = #FF3232 +filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" + +[filament:SemiFlex or Flexfill 98A] +inherits = *flex* + +[filament:Taulman Bridge] +bed_temperature = 50 +bridge_fan_speed = 40 +compatible_printers = +compatible_printers_condition = +cooling = 0 +disable_fan_first_layers = 3 +end_filament_gcode = "; Filament-specific end gcode" +extrusion_multiplier = 1 +fan_always_on = 0 +fan_below_layer_time = 20 +filament_colour = #DEE0E6 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_max_volumetric_speed = 10 +filament_notes = "" +filament_settings_id = +filament_soluble = 0 +filament_type = PLA +first_layer_bed_temperature = 90 +first_layer_temperature = 240 +max_fan_speed = 5 +min_fan_speed = 0 +min_print_speed = 5 +slowdown_below_layer_time = 20 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 250 + +[filament:Taulman T-Glase] +inherits = *PET* +bridge_fan_speed = 40 +cooling = 0 +fan_always_on = 0 +filament_colour = #FF8000 +first_layer_bed_temperature = 90 +first_layer_temperature = 240 +max_fan_speed = 5 +min_fan_speed = 0 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" + +[filament:Verbatim BVOH] +bed_temperature = 60 +bridge_fan_speed = 100 +compatible_printers = +compatible_printers_condition = +cooling = 0 +disable_fan_first_layers = 1 +end_filament_gcode = "; Filament-specific end gcode" +extrusion_multiplier = 1 +fan_always_on = 0 +fan_below_layer_time = 100 +filament_colour = #FFFFD7 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_max_volumetric_speed = 10 +filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" +filament_settings_id = +filament_soluble = 1 +filament_type = PLA +first_layer_bed_temperature = 60 +first_layer_temperature = 215 +max_fan_speed = 100 +min_fan_speed = 100 +min_print_speed = 15 +slowdown_below_layer_time = 20 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 210 + +[filament:Verbatim PP] +bed_temperature = 100 +bridge_fan_speed = 100 +compatible_printers = +compatible_printers_condition = +cooling = 1 +disable_fan_first_layers = 2 +end_filament_gcode = "; Filament-specific end gcode" +extrusion_multiplier = 1 +fan_always_on = 1 +fan_below_layer_time = 100 +filament_colour = #DEE0E6 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_max_volumetric_speed = 5 +filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nEsun PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nEUMAKERS PLA" +filament_settings_id = +filament_soluble = 0 +filament_type = PLA +first_layer_bed_temperature = 100 +first_layer_temperature = 220 +max_fan_speed = 100 +min_fan_speed = 100 +min_print_speed = 15 +slowdown_below_layer_time = 20 +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" +temperature = 220 + +[printer:*common*] +bed_shape = 0x0,250x0,250x210,0x210 +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 0 +end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +extruder_colour = #FFFF00 +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +max_layer_height = 0.25 +min_layer_height = 0.07 +nozzle_diameter = 0.4 +octoprint_apikey = +octoprint_host = +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\n +printer_settings_id = +retract_before_travel = 1 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.8 +retract_length_toolchange = 3 +retract_lift = 0.6 +retract_lift_above = 0 +retract_lift_below = 199 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +serial_port = +serial_speed = 250000 +single_extruder_multi_material = 0 +start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 1 +z_offset = 0 +printer_model = MK2S +printer_variant = 0.4 +default_print_profile = 0.15mm OPTIMAL +default_filament_profile = Prusa PLA + +[printer:*multimaterial*] +inherits = *common* +deretract_speed = 50 +retract_before_travel = 3 +retract_before_wipe = 60% +retract_layer_change = 0 +retract_length = 4 +retract_length_toolchange = 4 +retract_lift = 0.6 +retract_lift_above = 0 +retract_lift_below = 199 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 80 +single_extruder_multi_material = 1 +printer_model = MK2SMM + +[printer:*mm-single*] +inherits = *multimaterial* +end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN +start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\nG92 E0.0 + +[printer:*mm-multi*] +inherits = *multimaterial* +end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes.\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors +extruder_colour = #FFAA55;#5182DB;#4ECDD3;#FB7259 +nozzle_diameter = 0.4,0.4,0.4,0.4 +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN +start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT[initial_tool]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100 ; set max feedrate\nM92 E140 ; E-steps per filament milimeter\n{if not has_wipe_tower}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\n{endif}\nG92 E0.0 +variable_layer_height = 0 + +[printer:Original Prusa i3 MK2] +inherits = *common* + +[printer:Original Prusa i3 MK2 0.25 nozzle] +inherits = *common* +max_layer_height = 0.1 +min_layer_height = 0.05 +nozzle_diameter = 0.25 +retract_length = 1 +retract_speed = 50 +variable_layer_height = 0 +printer_variant = 0.25 +default_print_profile = 0.10mm DETAIL 0.25 nozzle + +[printer:Original Prusa i3 MK2 0.6 nozzle] +inherits = *common* +max_layer_height = 0.35 +min_layer_height = 0.1 +nozzle_diameter = 0.6 +printer_variant = 0.6 + +[printer:Original Prusa i3 MK2 MM Single Mode] +inherits = *mm-single* + +[printer:Original Prusa i3 MK2 MM Single Mode 0.6 nozzle] +inherits = *mm-single* +nozzle_diameter = 0.6 +printer_variant = 0.6 + +[printer:Original Prusa i3 MK2 MultiMaterial] +inherits = *mm-multi* +nozzle_diameter = 0.4,0.4,0.4,0.4 + +[printer:Original Prusa i3 MK2 MultiMaterial 0.6 nozzle] +inherits = *mm-multi* +nozzle_diameter = 0.6,0.6,0.6,0.6 +printer_variant = 0.6 + +[printer:Original Prusa i3 MK3] +inherits = *common* +end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n +retract_lift_below = 209 +start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} +printer_model = MK3 +default_print_profile = 0.15mm OPTIMAL MK3 diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index a1706ba47..0796a0f4a 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -226,13 +226,15 @@ const std::vector& Preset::printer_options() "bed_shape", "z_offset", "gcode_flavor", "use_relative_e_distances", "serial_port", "serial_speed", "octoprint_host", "octoprint_apikey", "octoprint_cafile", "use_firmware_retraction", "use_volumetric_e", "variable_layer_height", "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", - "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "default_print_profile", "default_filament_profile", "inherits", + "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "default_print_profile", "inherits", }; 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& Preset::nozzle_options() { // ConfigOptionFloats, ConfigOptionPercents, ConfigOptionBools, ConfigOptionStrings @@ -240,7 +242,8 @@ const std::vector& Preset::nozzle_options() "nozzle_diameter", "min_layer_height", "max_layer_height", "extruder_offset", "retract_length", "retract_lift", "retract_lift_above", "retract_lift_below", "retract_speed", "deretract_speed", "retract_before_wipe", "retract_restart_extra", "retract_before_travel", "wipe", - "retract_layer_change", "retract_length_toolchange", "retract_restart_extra_toolchange", "extruder_colour" + "retract_layer_change", "retract_length_toolchange", "retract_restart_extra_toolchange", "extruder_colour", + "default_filament_profile" }; return s_opts; } @@ -363,7 +366,7 @@ void PresetCollection::save_current_preset(const std::string &new_name) inherits = /* preset.vendor->name + "/" + */ old_name; } else if (inherits.empty()) { // Inheriting from a user preset. Link the new preset to the old preset. - inherits = old_name; + // inherits = old_name; } else { // Inherited from a user preset. Just maintain the "inherited" flag, // meaning it will inherit from either the system preset, or the inherited user preset. diff --git a/xs/src/slic3r/GUI/PresetBundle.cpp b/xs/src/slic3r/GUI/PresetBundle.cpp index 453208fde..7131bf771 100644 --- a/xs/src/slic3r/GUI/PresetBundle.cpp +++ b/xs/src/slic3r/GUI/PresetBundle.cpp @@ -1001,6 +1001,8 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, wxBitma if (wide_icons) bitmap_key += preset.is_compatible ? ",cmpt" : ",ncmpt"; bitmap_key += (preset.is_system || preset.is_default) ? ",syst" : ",nsyst"; + if (preset.is_dirty) + bitmap_key += ",drty"; wxBitmap *bitmap = m_bitmapCache->find(bitmap_key); if (bitmap == nullptr) { // Create the bitmap with color bars. @@ -1017,7 +1019,8 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, wxBitma } // Paint a lock at the system presets. bmps.emplace_back(m_bitmapCache->mkclear(4, 16)); - bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmapLock : m_bitmapCache->mkclear(16, 16)); + bmps.emplace_back((preset.is_system || preset.is_default) ? + (preset.is_dirty ? *m_bitmapLockOpen : *m_bitmapLock) : m_bitmapCache->mkclear(16, 16)); bitmap = m_bitmapCache->insert(bitmap_key, bmps); } ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()), (bitmap == 0) ? wxNullBitmap : *bitmap); From 7f31f7a3ab2afc7c0f507a90a2b7485837b3ec64 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 13 Mar 2018 13:39:46 +0100 Subject: [PATCH 04/24] Added lock and lock_open icons. --- resources/icons/lock.png | Bin 0 -> 749 bytes resources/icons/lock_open.png | Bin 0 -> 727 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/icons/lock.png create mode 100644 resources/icons/lock_open.png diff --git a/resources/icons/lock.png b/resources/icons/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..2ebc4f6f9663e32cad77d67ef93ab8843dfea3c0 GIT binary patch literal 749 zcmVe|tv9>?g+k#9o0pTxd@;_sq{kwlU;^VvV*?BV8P@}BoaZTQUROpWV6|-M`|^n&)=+8tHo3*<<$NU zU`%V~ZF;?hBSYsjJ6%JzV}E(D{pOLqQklliUf9um_tGl-wty`y*p?eYNW56P>X@1s zZs7KrRZKtmV7Lqj^5Fgr7_`LjhdJK@ltF&O`j7?*NUM$KvmNGz)3WjM?V$vHlPT0AFyF?kLE<#HZabCSW3-oa*6;Z zrXD`Ulwd<^2glP%1Y1Kc1Ij%DU^=ME(jKf6APNlA$Uu;J4bVilQHSWX5uJ$9Zsp4M z0%!@LvyTxz=Z6stxlichODIY+yNGt%RM;m`>H4LOKLFs9Y%b5aUN|2|{0Zw|<_~i} fmXz*V19AKYarLKlJyH=-*k3W|aiVYC~e{STzB+=%NyKm^5w z3m4+bm8cXnzG}0Gw2c^Ol0K$0_ity0#@^}dhsl97GUJu9lkxh`Okt_0|=(|h`!tol*)tahk*i! zgS8GLCq{|Gd7N1T=a4u`0gM4BU}M^~w|L$b3WtyL{rO$Q?PPfL6z$J7;&2In&vryC zqT@6`g9u_Zg@Xt1vO7RIY-D-g8eo{1!oIz%ujUZ52IBq#JOI%e5ertc^kIf}?KOA? zx9*6-2qdQcN5WDRs@&WP6I?Nxm{No*quRTbIBKa{opLb zA%3`w)e+)sGB0CNfH Date: Wed, 14 Mar 2018 12:44:53 +0100 Subject: [PATCH 05/24] Fixed a crash at the start of the application when the datadir is missing, due to the option "default_filament_profile" not being part of the FullPrinterConfig. --- My Settings | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 My Settings diff --git a/My Settings b/My Settings new file mode 100644 index 000000000..f896db767 --- /dev/null +++ b/My Settings @@ -0,0 +1,27 @@ +# generated by Slic3r Prusa Edition 1.38.4 on 2017-12-20 at 11:02:03 +bed_temperature = 0 +bridge_fan_speed = 100 +compatible_printers = +compatible_printers_condition = +cooling = 1 +disable_fan_first_layers = 3 +end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" +extrusion_multiplier = 1 +fan_always_on = 0 +fan_below_layer_time = 60 +filament_colour = #29b2b2 +filament_cost = 0 +filament_density = 0 +filament_diameter = 3 +filament_max_volumetric_speed = 0 +filament_notes = "" +filament_soluble = 0 +filament_type = PLA +first_layer_bed_temperature = 0 +first_layer_temperature = 205 +max_fan_speed = 100 +min_fan_speed = 35 +min_print_speed = 10 +slowdown_below_layer_time = 5 +start_filament_gcode = "; Filament gcode\n" +temperature = 200 From 1969a8b2c1c0b39ccb6fb800ee09ff9d03637c8a Mon Sep 17 00:00:00 2001 From: bubnikv Date: Wed, 14 Mar 2018 13:12:17 +0100 Subject: [PATCH 06/24] Fixed crash on start of the application in case there is no profile available. --- xs/src/slic3r/GUI/Preset.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index 0796a0f4a..661b11ee0 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -80,7 +80,7 @@ void Preset::set_num_extruders(DynamicPrintConfig &config, unsigned int num_extr auto *opt = config.option(key, false); assert(opt != nullptr); assert(opt->is_vector()); - if (opt != nullptr && opt->is_vector()) + if (opt != nullptr && opt->is_vector() && key != "default_filament_profile") static_cast(opt)->resize(num_extruders, defaults.option(key)); } } From e680658cf562dc0d4f21a0da1c851d01f1759335 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Wed, 14 Mar 2018 13:29:50 +0100 Subject: [PATCH 07/24] Fixed selection of sensible active print / filament / printer profile after the initial wizard run. --- lib/Slic3r/GUI/MainFrame.pm | 4 ++++ xs/src/slic3r/GUI/AppConfig.cpp | 11 +++++++++++ xs/src/slic3r/GUI/AppConfig.hpp | 5 +++++ xs/xsp/GUI_AppConfig.xsp | 2 ++ 4 files changed, 22 insertions(+) diff --git a/lib/Slic3r/GUI/MainFrame.pm b/lib/Slic3r/GUI/MainFrame.pm index 9e7bfacd8..d1f3a9d4c 100644 --- a/lib/Slic3r/GUI/MainFrame.pm +++ b/lib/Slic3r/GUI/MainFrame.pm @@ -723,6 +723,10 @@ sub config_wizard { } else { # Wizard returned a name of a preset bundle bundled with the installation. Unpack it. wxTheApp->{preset_bundle}->install_vendor_configbundle($directory . '/' . $result->{preset_name} . '.ini'); + # Reset the print / filament / printer selections, so that following line will select some sensible defaults. + if ($fresh_start) { + wxTheApp->{app_config}->reset_selections; + } # Reload all presets after the vendor config bundle has been installed. wxTheApp->{preset_bundle}->load_presets(wxTheApp->{app_config}); } diff --git a/xs/src/slic3r/GUI/AppConfig.cpp b/xs/src/slic3r/GUI/AppConfig.cpp index 99339e2f3..e32b645b4 100644 --- a/xs/src/slic3r/GUI/AppConfig.cpp +++ b/xs/src/slic3r/GUI/AppConfig.cpp @@ -145,6 +145,17 @@ void AppConfig::update_last_output_dir(const std::string &dir) this->set("", "last_output_path", dir); } +void AppConfig::reset_selections() +{ + auto it = m_storage.find("presets"); + if (it != m_storage.end()) { + it->second.erase("print"); + it->second.erase("filament"); + it->second.erase("printer"); + m_dirty = true; + } +} + std::string AppConfig::config_path() { return (boost::filesystem::path(Slic3r::data_dir()) / "slic3r.ini").make_preferred().string(); diff --git a/xs/src/slic3r/GUI/AppConfig.hpp b/xs/src/slic3r/GUI/AppConfig.hpp index c6d7766a4..9b1d5a712 100644 --- a/xs/src/slic3r/GUI/AppConfig.hpp +++ b/xs/src/slic3r/GUI/AppConfig.hpp @@ -73,6 +73,11 @@ public: std::string get_last_output_dir(const std::string &alt) const; void update_last_output_dir(const std::string &dir); + // reset the current print / filament / printer selections, so that + // the PresetBundle::load_selections(const AppConfig &config) call will select + // the first non-default preset when called. + void reset_selections(); + // Get the default config path from Slic3r::data_dir(). static std::string config_path(); diff --git a/xs/xsp/GUI_AppConfig.xsp b/xs/xsp/GUI_AppConfig.xsp index 8162b9a5e..08a88883d 100644 --- a/xs/xsp/GUI_AppConfig.xsp +++ b/xs/xsp/GUI_AppConfig.xsp @@ -41,4 +41,6 @@ void update_skein_dir(char *dir); std::string get_last_output_dir(const char *alt = ""); void update_last_output_dir(char *dir); + + void reset_selections(); }; From c3ec40c3ccb712fdb11b52ce2cb52f11402cee00 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 15 Mar 2018 09:55:31 +0100 Subject: [PATCH 08/24] Added prototype of an "Undo to system" button --- lib/Slic3r/GUI/Plater.pm | 4 ++-- xs/src/slic3r/GUI/Field.cpp | 11 ++++++++--- xs/src/slic3r/GUI/Field.hpp | 1 + xs/src/slic3r/GUI/OptionsGroup.cpp | 8 +++++++- xs/src/slic3r/GUI/Tab.cpp | 1 + 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index a99bbddef..71da1a26d 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -483,8 +483,8 @@ sub new { $right_sizer->Add($print_info_sizer, 0, wxEXPAND, 0); # Callback for showing / hiding the print info box. $self->{"print_info_box_show"} = sub { - if ($right_sizer->IsShown(4) != $_[0]) { - $right_sizer->Show(4, $_[0]); + if ($right_sizer->IsShown(5) != $_[0]) { + $right_sizer->Show(5, $_[0]); $self->Layout } }; diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index aed7ba12f..984aa05ae 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -19,12 +19,17 @@ namespace Slic3r { namespace GUI { } void Field::PostInitialize(){ - m_Undo_btn = new wxButton(m_parent, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT | wxNO_BORDER); - // use bouth of temporary_icons till don't have "undo_icon" auto color = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); - if (wxMSW) m_Undo_btn->SetBackgroundColour(color); + m_Undo_btn = new wxButton(m_parent, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT | wxNO_BORDER); + m_Undo_to_sys_btn = new wxButton(m_parent, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT | wxNO_BORDER); + if (wxMSW) { + m_Undo_btn->SetBackgroundColour(color); + m_Undo_to_sys_btn->SetBackgroundColour(color); + } m_Undo_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); m_Undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ on_back_to_initial_value(); })); + m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); + m_Undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ /*on_back_to_initial_value()*/; })); BUILD(); } diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp index e72316fc1..b5a4c66fa 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/xs/src/slic3r/GUI/Field.hpp @@ -89,6 +89,7 @@ public: wxStaticText* m_Label = nullptr; wxButton* m_Undo_btn = nullptr; + wxButton* m_Undo_to_sys_btn = nullptr; /// Fires the enable or disable function, based on the input. inline void toggle(bool en) { en ? enable() : disable(); } diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index 0be24824c..d672d4b47 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -82,7 +82,10 @@ const t_field& OptionsGroup::build_field(const t_config_option_key& id, const Co if (!this->m_disabled) this->back_to_initial_value(opt_id); }; - if (!m_is_tab_opt) field->m_Undo_btn->Hide(); + if (!m_is_tab_opt) { + field->m_Undo_btn->Hide(); + field->m_Undo_to_sys_btn->Hide(); + } // assign function objects for callbacks, etc. return field; @@ -112,6 +115,7 @@ void OptionsGroup::append_line(const Line& line) { const auto& option = option_set.front(); const auto& field = build_field(option); + sizer->Add(field->m_Undo_to_sys_btn); sizer->Add(field->m_Undo_btn); if (is_window_field(field)) sizer->Add(field->getWindow(), 0, wxEXPAND | wxALL, wxOSX ? 0 : 5); @@ -149,6 +153,7 @@ void OptionsGroup::append_line(const Line& line) { const auto& option = option_set.front(); const auto& field = build_field(option, label); + sizer->Add(field->m_Undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL); sizer->Add(field->m_Undo_btn, 0, wxALIGN_CENTER_VERTICAL); if (is_window_field(field)) sizer->Add(field->getWindow(), 0, (option.opt.full_width ? wxEXPAND : 0) | @@ -177,6 +182,7 @@ void OptionsGroup::append_line(const Line& line) { // add field const Option& opt_ref = opt; auto& field = build_field(opt_ref, label); + sizer->Add(field->m_Undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL); sizer->Add(field->m_Undo_btn, 0, wxALIGN_CENTER_VERTICAL, 0); is_sizer_field(field) ? sizer->Add(field->getSizer(), 0, wxALIGN_CENTER_VERTICAL, 0) : diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index a875072e5..ec5d2a55b 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -191,6 +191,7 @@ void Tab::update_changed_ui() field->m_Label->SetForegroundColour(*get_modified_label_clr()); field->m_Label->Refresh(true); } + // use bouth of temporary_icons till don't have "undo_icon" field->m_Undo_btn->SetBitmap(wxBitmap(from_u8(wxMSW ? var("action_undo.png") : var("arrow_undo.png")), wxBITMAP_TYPE_PNG)); field->m_is_modified_value = true; From 7f5bfe3ddc11be07f6dad9a2fdf92182a20bf324 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 16 Mar 2018 12:56:03 +0100 Subject: [PATCH 09/24] First visualization of system value changes --- lib/Slic3r/GUI/Plater.pm | 3 +- xs/src/libslic3r/Config.cpp | 12 +++++ xs/src/libslic3r/Config.hpp | 1 + xs/src/slic3r/GUI/Field.cpp | 7 ++- xs/src/slic3r/GUI/Field.hpp | 5 +- xs/src/slic3r/GUI/GUI.cpp | 7 ++- xs/src/slic3r/GUI/GUI.hpp | 1 + xs/src/slic3r/GUI/OptionsGroup.cpp | 8 +++- xs/src/slic3r/GUI/OptionsGroup.hpp | 2 + xs/src/slic3r/GUI/Preset.cpp | 24 +++++++++- xs/src/slic3r/GUI/Preset.hpp | 2 + xs/src/slic3r/GUI/Tab.cpp | 75 ++++++++++++++++++++++++++---- xs/src/slic3r/GUI/Tab.hpp | 3 ++ 13 files changed, 131 insertions(+), 19 deletions(-) diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm index 747567fe5..2fd4d6798 100644 --- a/lib/Slic3r/GUI/Plater.pm +++ b/lib/Slic3r/GUI/Plater.pm @@ -1941,7 +1941,8 @@ sub selection_changed { $self->{object_info_manifold}->SetToolTipString($message); $self->{object_info_manifold_warning_icon}->SetToolTipString($message); } else { - $self->{object_info_manifold}->SetLabel(L("Yes")); + $self->{object_info_manifold}->SetLabel(L("Yes")); + $self->{object_info_manifold_warning_icon}->Hide; } } else { $self->{object_info_facets}->SetLabel($object->facets); diff --git a/xs/src/libslic3r/Config.cpp b/xs/src/libslic3r/Config.cpp index 0a531849d..a4eaf3072 100644 --- a/xs/src/libslic3r/Config.cpp +++ b/xs/src/libslic3r/Config.cpp @@ -206,6 +206,18 @@ t_config_option_keys ConfigBase::diff(const ConfigBase &other) const return diff; } +t_config_option_keys ConfigBase::equal(const ConfigBase &other) const +{ + t_config_option_keys equal; + for (const t_config_option_key &opt_key : this->keys()) { + const ConfigOption *this_opt = this->option(opt_key); + const ConfigOption *other_opt = other.option(opt_key); + if (this_opt != nullptr && other_opt != nullptr && *this_opt == *other_opt) + equal.emplace_back(opt_key); + } + return equal; +} + std::string ConfigBase::serialize(const t_config_option_key &opt_key) const { const ConfigOption* opt = this->option(opt_key); diff --git a/xs/src/libslic3r/Config.hpp b/xs/src/libslic3r/Config.hpp index 1f4e85a34..6eb307c5c 100644 --- a/xs/src/libslic3r/Config.hpp +++ b/xs/src/libslic3r/Config.hpp @@ -1046,6 +1046,7 @@ public: void apply_only(const ConfigBase &other, const t_config_option_keys &keys, bool ignore_nonexistent = false); bool equals(const ConfigBase &other) const { return this->diff(other).empty(); } t_config_option_keys diff(const ConfigBase &other) const; + t_config_option_keys equal(const ConfigBase &other) const; std::string serialize(const t_config_option_key &opt_key) const; // Set a configuration value from a string, it will call an overridable handle_legacy() // to resolve renamed and removed configuration keys. diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index 984aa05ae..1d5a25e06 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -28,12 +28,15 @@ namespace Slic3r { namespace GUI { } m_Undo_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); m_Undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ on_back_to_initial_value(); })); - m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); - m_Undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ /*on_back_to_initial_value()*/; })); + m_Undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ /*on_back_to_sys_value()*/; })); BUILD(); } + void Field::set_nonsys_btn_icon(const std::string& icon){ + m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(icon)), wxBITMAP_TYPE_PNG)); + } + void Field::on_kill_focus(wxEvent& event) { // Without this, there will be nasty focus bugs on Windows. // Also, docs for wxEvent::Skip() say "In general, it is recommended to skip all diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp index b5a4c66fa..2a1f707a7 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/xs/src/slic3r/GUI/Field.hpp @@ -68,8 +68,8 @@ public: // This is used to avoid recursive invocation of the field change/update by wxWidgets. bool m_disable_change_event {false}; - // This is used to avoid recursive invocation of the field change/update by wxWidgets. bool m_is_modified_value {false}; + bool m_is_nonsys_value; /// Copy of ConfigOption for deduction purposes const ConfigOptionDef m_opt {ConfigOptionDef()}; @@ -96,6 +96,9 @@ public: virtual wxString get_tooltip_text(const wxString& default_string); + // set icon to "UndoToSystemValue" button according to an inheritance of preset + void set_nonsys_btn_icon(const std::string& icon); + Field(const ConfigOptionDef& opt, const t_config_option_key& id) : m_opt(opt), m_opt_id(id) {}; Field(wxWindow* parent, const ConfigOptionDef& opt, const t_config_option_key& id) : m_parent(parent), m_opt(opt), m_opt_id(id) {}; diff --git a/xs/src/slic3r/GUI/GUI.cpp b/xs/src/slic3r/GUI/GUI.cpp index 262d41a79..fdb97ef72 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/xs/src/slic3r/GUI/GUI.cpp @@ -518,11 +518,14 @@ wxApp* get_app(){ return g_wxApp; } -wxColour* get_modified_label_clr() -{ +wxColour* get_modified_label_clr(){ return new wxColour(253, 88, 0); } +wxColour* get_sys_label_clr(){ + return new wxColour(26, 132, 57); +} + void create_combochecklist(wxComboCtrl* comboCtrl, std::string text, std::string items, bool initial_value) { if (comboCtrl == nullptr) diff --git a/xs/src/slic3r/GUI/GUI.hpp b/xs/src/slic3r/GUI/GUI.hpp index 2baa10cb9..75b54652b 100644 --- a/xs/src/slic3r/GUI/GUI.hpp +++ b/xs/src/slic3r/GUI/GUI.hpp @@ -79,6 +79,7 @@ void set_preset_bundle(PresetBundle *preset_bundle); AppConfig* get_app_config(); wxApp* get_app(); wxColour* get_modified_label_clr(); +wxColour* get_sys_label_clr(); void add_debug_menu(wxMenuBar *menu, int event_language_change); diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index d672d4b47..7faf9baef 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -86,6 +86,8 @@ const t_field& OptionsGroup::build_field(const t_config_option_key& id, const Co field->m_Undo_btn->Hide(); field->m_Undo_to_sys_btn->Hide(); } + if (nonsys_btn_icon != "") + field->set_nonsys_btn_icon(nonsys_btn_icon); // assign function objects for callbacks, etc. return field; @@ -115,8 +117,10 @@ void OptionsGroup::append_line(const Line& line) { const auto& option = option_set.front(); const auto& field = build_field(option); - sizer->Add(field->m_Undo_to_sys_btn); - sizer->Add(field->m_Undo_btn); + auto btn_sizer = new wxBoxSizer(wxHORIZONTAL); + btn_sizer->Add(field->m_Undo_to_sys_btn); + btn_sizer->Add(field->m_Undo_btn); + sizer->Add(btn_sizer, 0, wxEXPAND | wxALL, 0); if (is_window_field(field)) sizer->Add(field->getWindow(), 0, wxEXPAND | wxALL, wxOSX ? 0 : 5); if (is_sizer_field(field)) diff --git a/xs/src/slic3r/GUI/OptionsGroup.hpp b/xs/src/slic3r/GUI/OptionsGroup.hpp index 42db22225..0fe162b7a 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.hpp +++ b/xs/src/slic3r/GUI/OptionsGroup.hpp @@ -83,6 +83,8 @@ public: wxFont sidetext_font {wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) }; wxFont label_font {wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) }; + std::string nonsys_btn_icon = ""; + /// Returns a copy of the pointer of the parent wxWindow. /// Accessor function is because users are not allowed to change the parent /// but defining it as const means a lot of const_casts to deal with wx functions. diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index 661b11ee0..a5ab65c9f 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -226,7 +226,8 @@ const std::vector& Preset::printer_options() "bed_shape", "z_offset", "gcode_flavor", "use_relative_e_distances", "serial_port", "serial_speed", "octoprint_host", "octoprint_apikey", "octoprint_cafile", "use_firmware_retraction", "use_volumetric_e", "variable_layer_height", "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", - "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "default_print_profile", "inherits", + "between_objects_gcode", "printer_vendor", "printer_model", "printer_variant", "printer_notes", "max_print_height", + "default_print_profile", "inherits", }; s_opts.insert(s_opts.end(), Preset::nozzle_options().begin(), Preset::nozzle_options().end()); } @@ -411,7 +412,7 @@ const Preset* PresetCollection::get_selected_preset_parent() const { auto *inherits = dynamic_cast(this->get_edited_preset().config.option("inherits")); if (inherits == nullptr || inherits->value.empty()) - return nullptr; + return this->get_selected_preset().is_system ? &this->get_selected_preset() : nullptr; // nullptr; const Preset* preset = this->find_preset(inherits->value, false); return (preset == nullptr || preset->is_default || preset->is_external) ? nullptr : preset; } @@ -576,6 +577,25 @@ std::vector PresetCollection::dirty_options(const Preset *edited, c return changed; } +std::vector PresetCollection::system_equal_options() const +{ + const Preset *edited = &this->get_edited_preset(); + const Preset *reference = this->get_selected_preset_parent(); + std::vector equal; + if (edited != nullptr && reference != nullptr) { + equal = reference->config.equal(edited->config); + // The "compatible_printers" option key is handled differently from the others: + // It is not mandatory. If the key is missing, it means it is compatible with any printer. + // If the key exists and it is empty, it means it is compatible with no printer. + std::initializer_list optional_keys{ "compatible_printers", "compatible_printers_condition" }; + for (auto &opt_key : optional_keys) { + if (reference->config.has(opt_key) == edited->config.has(opt_key)) + equal.emplace_back(opt_key); + } + } + return equal; +} + // Select a new preset. This resets all the edits done to the currently selected preset. // If the preset with index idx does not exist, a first visible preset is selected. Preset& PresetCollection::select_preset(size_t idx) diff --git a/xs/src/slic3r/GUI/Preset.hpp b/xs/src/slic3r/GUI/Preset.hpp index a6ce77dfe..3634c5dd9 100644 --- a/xs/src/slic3r/GUI/Preset.hpp +++ b/xs/src/slic3r/GUI/Preset.hpp @@ -250,6 +250,8 @@ public: // Compare the content of get_selected_preset() with get_edited_preset() configs, return the list of keys where they differ. std::vector current_different_from_parent_options() const { return dirty_options(&this->get_edited_preset(), this->get_selected_preset_parent()); } + // Compare the content of get_selected_preset() with get_selected_preset_parent() configs, return the list of keys where they equal. + std::vector system_equal_options() const; // Update the choice UI from the list of presets. // If show_incompatible, all presets are shown, otherwise only the compatible presets are shown. diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 4a4ba1d73..894e593c6 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -113,6 +113,14 @@ void Tab::create_preset_tab(PresetBundle *preset_bundle) update(); } +void Tab::load_initial_data() +{ + m_config = &m_presets->get_edited_preset().config; + m_nonsys_btn_icon = m_presets->get_selected_preset_parent() == nullptr ? + "bullet_white.png" : + wxMSW ? "sys_unlock.png" : "lock_open.png"; +} + PageShp Tab::add_options_page(wxString title, std::string icon, bool is_extruder_pages/* = false*/) { // Index of icon in an icon list $self->{icons}. @@ -186,17 +194,19 @@ void Tab::update_changed_ui() // Add new dirty options to m_dirty_options for (auto opt_key : dirty_options){ Field* field = get_field(opt_key); - if (field != nullptr && find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()){ - if (field->m_Label != nullptr){ - field->m_Label->SetForegroundColour(*get_modified_label_clr()); - field->m_Label->Refresh(true); - } + if (field != nullptr && + find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()){ // use bouth of temporary_icons till don't have "undo_icon" field->m_Undo_btn->SetBitmap(wxBitmap(from_u8(wxMSW ? var("action_undo.png") : var("arrow_undo.png")), wxBITMAP_TYPE_PNG)); field->m_is_modified_value = true; m_dirty_options.push_back(opt_key); } + + if (field != nullptr && field->m_Label != nullptr){ + field->m_Label->SetForegroundColour(*get_modified_label_clr()); + field->m_Label->Refresh(true); + } } // Delete clear options from m_dirty_options @@ -219,6 +229,47 @@ void Tab::update_changed_ui() } } } + + + //update system options (colored in green) + auto sys_options = m_presets->system_equal_options(); + // Add new system equal options to m_sys_options + for (auto opt_key : sys_options){ + Field* field = get_field(opt_key); + if (field != nullptr && find(m_sys_options.begin(), m_sys_options.end(), opt_key) == m_sys_options.end()){ + field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(wxMSW ? var("sys_lock.png") : var("lock.png")), wxBITMAP_TYPE_PNG)); + field->m_is_nonsys_value = false; + + m_sys_options.push_back(opt_key); + } + if (field != nullptr && field->m_Label != nullptr){ + field->m_Label->SetForegroundColour(*get_sys_label_clr()); + field->m_Label->Refresh(true); + } + } + // Delete clear options from m_dirty_options + for (auto i = 0; i < m_sys_options.size(); ++i) + { + const std::string &opt_key = m_sys_options[i]; + Field* field = get_field(opt_key); + if (field != nullptr && find(sys_options.begin(), sys_options.end(), opt_key) == sys_options.end()) + { + // use bouth of temporary_icons till don't have "unlock_icon" + field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(m_nonsys_btn_icon)), wxBITMAP_TYPE_PNG)); + if (field->m_Label != nullptr && + find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()){ + field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); + field->m_Label->Refresh(true); + } + field->m_is_nonsys_value = true; + std::vector::iterator itr = find(m_sys_options.begin(), m_sys_options.end(), opt_key); + if (itr != m_sys_options.end()){ + m_sys_options.erase(itr); + --i; + } + } + } + } // Update the combo box label of the selected preset based on its "dirty" state, @@ -376,7 +427,7 @@ void Tab::reload_compatible_printers_widget() void TabPrint::build() { m_presets = &m_preset_bundle->prints; - m_config = &m_presets->get_edited_preset().config; + load_initial_data(); auto page = add_options_page(_(L("Layers and perimeters")), "layers.png"); auto optgroup = page->new_optgroup(_(L("Layer height"))); @@ -853,7 +904,7 @@ void TabPrint::OnActivate() void TabFilament::build() { m_presets = &m_preset_bundle->filaments; - m_config = &m_preset_bundle->filaments.get_edited_preset().config; + load_initial_data(); auto page = add_options_page(_(L("Filament")), "spool.png"); auto optgroup = page->new_optgroup(_(L("Filament"))); @@ -1000,8 +1051,7 @@ bool Tab::current_preset_is_dirty() void TabPrinter::build() { m_presets = &m_preset_bundle->printers; - m_config = &m_preset_bundle->printers.get_edited_preset().config; - auto default_config = m_preset_bundle->full_config(); + load_initial_data(); auto *nozzle_diameter = dynamic_cast(m_config->option("nozzle_diameter")); m_initial_extruders_count = m_extruders_count = nozzle_diameter->values.size(); @@ -1414,6 +1464,9 @@ void TabPrinter::update(){ void Tab::load_current_preset() { auto preset = m_presets->get_edited_preset(); + m_nonsys_btn_icon = m_presets->get_selected_preset_parent() == nullptr ? + "bullet_white.png" : + wxMSW ? "sys_unlock.png" : "lock_open.png"; preset.is_default ? m_btn_delete_preset->Disable() : m_btn_delete_preset->Enable(true); update(); // For the printer profile, generate the extruder pages. @@ -1658,6 +1711,8 @@ void Tab::save_preset(std::string name /*= ""*/) update_tab_ui(); // Update the selection boxes at the platter. on_presets_changed(); + + update_changed_ui(); } // Called for a currently selected preset. @@ -1833,6 +1888,8 @@ ConfigOptionsGroupShp Page::new_optgroup(wxString title, int noncommon_label_wid return config; }; + optgroup->nonsys_btn_icon = static_cast(GetParent())->m_nonsys_btn_icon; + vsizer()->Add(optgroup->sizer, 0, wxEXPAND | wxALL, 10); m_optgroups.push_back(optgroup); diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp index e2dc51ee4..d3be0e8bc 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/xs/src/slic3r/GUI/Tab.hpp @@ -100,6 +100,7 @@ protected: std::vector m_reload_dependent_tabs = {}; std::vector m_dirty_options = {}; + std::vector m_sys_options = {}; // The two following two event IDs are generated at Plater.pm by calling Wx::NewEventType. wxEventType m_event_value_change = 0; @@ -110,6 +111,7 @@ public: bool m_show_btn_incompatible_presets = false; PresetCollection* m_presets; DynamicPrintConfig* m_config; + std::string m_nonsys_btn_icon; public: Tab() {} @@ -154,6 +156,7 @@ public: virtual void on_preset_loaded(){} virtual void build() = 0; virtual void update() = 0; + void load_initial_data(); void update_dirty(); void update_tab_ui(); void load_config(DynamicPrintConfig config); From 7e6887cca82e5c43279c55de64972b695d524d61 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 16 Mar 2018 17:25:11 +0100 Subject: [PATCH 10/24] Completed UI for system value changes --- xs/src/slic3r/GUI/Field.cpp | 10 +++++--- xs/src/slic3r/GUI/Field.hpp | 7 ++++-- xs/src/slic3r/GUI/OptionsGroup.cpp | 21 +++++++++++++++-- xs/src/slic3r/GUI/OptionsGroup.hpp | 7 +++++- xs/src/slic3r/GUI/Tab.cpp | 38 +++++++++++++++++++++++++----- 5 files changed, 69 insertions(+), 14 deletions(-) diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index 1d5a25e06..3247bc8b8 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -28,7 +28,7 @@ namespace Slic3r { namespace GUI { } m_Undo_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); m_Undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ on_back_to_initial_value(); })); - m_Undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ /*on_back_to_sys_value()*/; })); + m_Undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ on_back_to_sys_value(); })); BUILD(); } @@ -53,12 +53,16 @@ namespace Slic3r { namespace GUI { m_on_change(m_opt_id, get_value()); } - void Field::on_back_to_initial_value() - { + void Field::on_back_to_initial_value(){ if (m_back_to_initial_value != nullptr && m_is_modified_value) m_back_to_initial_value(m_opt_id); } + void Field::on_back_to_sys_value(){ + if (m_back_to_sys_value != nullptr && m_is_nonsys_value) + m_back_to_sys_value(m_opt_id); + } + wxString Field::get_tooltip_text(const wxString& default_string) { wxString tooltip_text(""); diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp index 2a1f707a7..cb1df9d81 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/xs/src/slic3r/GUI/Field.hpp @@ -52,6 +52,8 @@ protected: void on_change_field(); /// Call the attached m_back_to_initial_value method. void on_back_to_initial_value(); + /// Call the attached m_back_to_sys_value method. + void on_back_to_sys_value(); public: /// parent wx item, opportunity to refactor (probably not necessary - data duplication) @@ -63,13 +65,14 @@ public: /// Function object to store callback passed in from owning object. t_change m_on_change {nullptr}; - /// Function object to store callback passed in from owning object. + /// Function object to store callback passed in from owning object. t_back_to_init m_back_to_initial_value{ nullptr }; + t_back_to_init m_back_to_sys_value{ nullptr }; // This is used to avoid recursive invocation of the field change/update by wxWidgets. bool m_disable_change_event {false}; bool m_is_modified_value {false}; - bool m_is_nonsys_value; + bool m_is_nonsys_value {true}; /// Copy of ConfigOption for deduction purposes const ConfigOptionDef m_opt {ConfigOptionDef()}; diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index 7faf9baef..37f3fea68 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -82,6 +82,10 @@ const t_field& OptionsGroup::build_field(const t_config_option_key& id, const Co if (!this->m_disabled) this->back_to_initial_value(opt_id); }; + field->m_back_to_sys_value = [this](std::string opt_id){ + if (!this->m_disabled) + this->back_to_sys_value(opt_id); + }; if (!m_is_tab_opt) { field->m_Undo_btn->Hide(); field->m_Undo_to_sys_btn->Hide(); @@ -297,7 +301,20 @@ void ConfigOptionsGroup::back_to_initial_value(const std::string opt_key) { if (m_get_initial_config == nullptr) return; - DynamicPrintConfig config = m_get_initial_config(); + back_to_config_value(m_get_initial_config(), opt_key); +} + +void ConfigOptionsGroup::back_to_sys_value(const std::string opt_key) +{ + if (m_get_sys_config == nullptr) + return; + if (!have_sys_config()) + return; + back_to_config_value(m_get_sys_config(), opt_key); +} + +void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, const std::string opt_key) +{ boost::any value; if (opt_key == "extruders_count"){ auto *nozzle_diameter = dynamic_cast(config.option("nozzle_diameter")); @@ -345,7 +362,7 @@ boost::any ConfigOptionsGroup::config_value(std::string opt_key, int opt_index, } } -boost::any ConfigOptionsGroup::get_config_value(DynamicPrintConfig& config, std::string opt_key, int opt_index/* = -1*/) +boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config, std::string opt_key, int opt_index /*= -1*/) { size_t idx = opt_index == -1 ? 0 : opt_index; diff --git a/xs/src/slic3r/GUI/OptionsGroup.hpp b/xs/src/slic3r/GUI/OptionsGroup.hpp index 0fe162b7a..3efa42730 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.hpp +++ b/xs/src/slic3r/GUI/OptionsGroup.hpp @@ -79,6 +79,8 @@ public: column_t extra_column {nullptr}; t_change m_on_change {nullptr}; std::function m_get_initial_config{ nullptr }; + std::function m_get_sys_config{ nullptr }; + std::function have_sys_config{ nullptr }; wxFont sidetext_font {wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) }; wxFont label_font {wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) }; @@ -151,6 +153,7 @@ protected: virtual void on_kill_focus (){}; virtual void on_change_OG(t_config_option_key opt_id, boost::any value); virtual void back_to_initial_value(const std::string opt_key){}; + virtual void back_to_sys_value(const std::string opt_key){}; }; class ConfigOptionsGroup: public OptionsGroup { @@ -179,11 +182,13 @@ public: void on_change_OG(t_config_option_key opt_id, boost::any value) override; void back_to_initial_value(const std::string opt_key) override; + void back_to_sys_value(const std::string opt_key) override; + void back_to_config_value(const DynamicPrintConfig& config, const std::string opt_key); void on_kill_focus() override{ reload_config();} void reload_config(); boost::any config_value(std::string opt_key, int opt_index, bool deserialize); // return option value from config - boost::any get_config_value(DynamicPrintConfig& config, std::string opt_key, int opt_index = -1); + boost::any get_config_value(const DynamicPrintConfig& config, std::string opt_key, int opt_index = -1); Field* get_fieldc(t_config_option_key opt_key, int opt_index); }; diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 894e593c6..c101f1bd3 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -97,7 +97,6 @@ void Tab::create_preset_tab(PresetBundle *preset_bundle) if (selected_item >= 0){ std::string selected_string = m_presets_choice->GetString(selected_item).ToUTF8().data(); select_preset(selected_string); - update_changed_ui(); } })); @@ -247,6 +246,20 @@ void Tab::update_changed_ui() field->m_Label->Refresh(true); } } + if (sys_options.empty() && !m_sys_options.empty()){ + for (auto opt_key : m_config->keys()){ + Field* field = get_field(opt_key); + if (field != nullptr){ + field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(m_nonsys_btn_icon)), wxBITMAP_TYPE_PNG)); + field->m_is_nonsys_value = false; + if (field->m_Label != nullptr){ + field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); + field->m_Label->Refresh(true); + } + } + } + m_sys_options.resize(0); + } // Delete clear options from m_dirty_options for (auto i = 0; i < m_sys_options.size(); ++i) { @@ -646,9 +659,11 @@ void TabPrint::update() { Freeze(); + double fill_density = m_config->option("fill_density")->value; + if (m_config->opt_bool("spiral_vase") && !(m_config->opt_int("perimeters") == 1 && m_config->opt_int("top_solid_layers") == 0 && - m_config->option("fill_density")->value == 0)) { + fill_density == 0)) { wxString msg_text = _(L("The Spiral Vase mode requires:\n" "- one perimeter\n" "- no top solid layers\n" @@ -665,11 +680,13 @@ void TabPrint::update() new_conf.set_key_value("support_material", new ConfigOptionBool(false)); new_conf.set_key_value("support_material_enforce_layers", new ConfigOptionInt(0)); new_conf.set_key_value("ensure_vertical_shell_thickness", new ConfigOptionBool(false)); + fill_density = 0; } else { new_conf.set_key_value("spiral_vase", new ConfigOptionBool(false)); } load_config(new_conf); + on_value_change("fill_density", fill_density); } auto first_layer_height = m_config->option("first_layer_height")->value; @@ -783,7 +800,6 @@ void TabPrint::update() "\nShall I switch to rectilinear fill pattern?")); auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Infill")), wxICON_WARNING | wxYES | wxNO); DynamicPrintConfig new_conf = *m_config; - double fill_density; if (dialog->ShowModal() == wxID_YES) { new_conf.set_key_value("fill_pattern", new ConfigOptionEnum(ipRectilinear)); fill_density = 100; @@ -1464,15 +1480,16 @@ void TabPrinter::update(){ void Tab::load_current_preset() { auto preset = m_presets->get_edited_preset(); - m_nonsys_btn_icon = m_presets->get_selected_preset_parent() == nullptr ? - "bullet_white.png" : - wxMSW ? "sys_unlock.png" : "lock_open.png"; + preset.is_default ? m_btn_delete_preset->Disable() : m_btn_delete_preset->Enable(true); update(); // For the printer profile, generate the extruder pages. on_preset_loaded(); // Reload preset pages with the new configuration values. reload_config(); + m_nonsys_btn_icon = m_presets->get_selected_preset_parent() == nullptr ? + "bullet_white.png" : + wxMSW ? "sys_unlock.png" : "lock_open.png"; // use CallAfter because some field triggers schedule on_change calls using CallAfter, // and we don't want them to be called after this update_dirty() as they would mark the @@ -1888,6 +1905,15 @@ ConfigOptionsGroupShp Page::new_optgroup(wxString title, int noncommon_label_wid return config; }; + optgroup->m_get_sys_config = [this](){ + DynamicPrintConfig config = static_cast(GetParent())->m_presets->get_selected_preset_parent()->config; + return config; + }; + + optgroup->have_sys_config = [this](){ + return static_cast(GetParent())->m_presets->get_selected_preset_parent() != nullptr; + }; + optgroup->nonsys_btn_icon = static_cast(GetParent())->m_nonsys_btn_icon; vsizer()->Add(optgroup->sizer, 0, wxEXPAND | wxALL, 10); From f72bb895219f50164892ab3413ea57abced3fdc0 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 19 Mar 2018 17:21:37 +0100 Subject: [PATCH 11/24] Reset to system value works for Extruders too --- xs/src/slic3r/GUI/Tab.cpp | 86 ++++++++++++++++++++++++++++++--------- xs/src/slic3r/GUI/Tab.hpp | 1 + 2 files changed, 68 insertions(+), 19 deletions(-) diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index c101f1bd3..464734f9c 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -160,34 +160,78 @@ void add_correct_opts_to_dirty_options(const std::string &opt_key, std::vector +void add_correct_opts_to_sys_options(const std::string &opt_key, std::vector *vec, TabPrinter *tab) +{ + const Preset* sys_preset = tab->m_presets->get_selected_preset_parent(); + if (sys_preset == nullptr) + return; + T *opt_cur = static_cast(tab->m_config->option(opt_key)); + const T *opt_sys = static_cast(sys_preset->config.option(opt_key)); + int opt_max_id = opt_sys->values.size()-1; + for (int i = 0; i < opt_cur->values.size(); i++) + { + int init_id = i <= opt_max_id ? i : 0; + if (opt_cur->values[i] == opt_sys->values[init_id]) + vec->emplace_back(opt_key + "#" + std::to_string(i)); + } +} + // Update UI according to changes void Tab::update_changed_ui() { auto dirty_options = m_presets->current_dirty_options(); + auto sys_options = m_presets->system_equal_options(); + if (name() == "printer"){ // Update dirty_options in case changes of Extruder's options TabPrinter* tab = static_cast(this); - std::vector new_dirty; + std::vector new_options; for (auto opt_key : dirty_options) { switch (m_config->option(opt_key)->type()) { - case coInts: add_correct_opts_to_dirty_options(opt_key, &new_dirty, tab); break; - case coBools: add_correct_opts_to_dirty_options(opt_key, &new_dirty, tab); break; - case coFloats: add_correct_opts_to_dirty_options(opt_key, &new_dirty, tab); break; - case coStrings: add_correct_opts_to_dirty_options(opt_key, &new_dirty, tab); break; - case coPercents:add_correct_opts_to_dirty_options(opt_key, &new_dirty, tab); break; - case coPoints: add_correct_opts_to_dirty_options(opt_key, &new_dirty, tab); break; - default: new_dirty.emplace_back(opt_key); break; + case coInts: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; + case coBools: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; + case coFloats: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; + case coStrings: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; + case coPercents:add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; + case coPoints: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; + default: new_options.emplace_back(opt_key); break; } } dirty_options.resize(0); - dirty_options = new_dirty; - if (tab->m_initial_extruders_count != tab->m_extruders_count){ + dirty_options = new_options; + if (tab->m_initial_extruders_count != tab->m_extruders_count) dirty_options.emplace_back("extruders_count"); + + new_options.resize(0); + std::initializer_list optional_keys{"bed_shape", "compatible_printers", "compatible_printers_condition" }; + for (auto &opt_key : optional_keys) { + if (find(sys_options.begin(), sys_options.end(),opt_key) != sys_options.end()) + new_options.emplace_back(opt_key); } + for (auto opt_key : m_config->keys()) + { + if (opt_key == "bed_shape") continue; + switch (m_config->option(opt_key)->type()) + { + case coInts: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; + case coBools: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; + case coFloats: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; + case coStrings: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; + case coPercents:add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; + case coPoints: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; + default: new_options.emplace_back(opt_key); break; + } + } + + sys_options.resize(0); + sys_options = new_options; + if (tab->m_sys_extruders_count == tab->m_extruders_count) + sys_options.emplace_back("extruders_count"); } // Add new dirty options to m_dirty_options @@ -231,7 +275,6 @@ void Tab::update_changed_ui() //update system options (colored in green) - auto sys_options = m_presets->system_equal_options(); // Add new system equal options to m_sys_options for (auto opt_key : sys_options){ Field* field = get_field(opt_key); @@ -265,16 +308,18 @@ void Tab::update_changed_ui() { const std::string &opt_key = m_sys_options[i]; Field* field = get_field(opt_key); - if (field != nullptr && find(sys_options.begin(), sys_options.end(), opt_key) == sys_options.end()) + if (find(sys_options.begin(), sys_options.end(), opt_key) == sys_options.end()) { - // use bouth of temporary_icons till don't have "unlock_icon" - field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(m_nonsys_btn_icon)), wxBITMAP_TYPE_PNG)); - if (field->m_Label != nullptr && - find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()){ - field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); - field->m_Label->Refresh(true); + if (field != nullptr){ + // use bouth of temporary_icons till don't have "unlock_icon" + field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(m_nonsys_btn_icon)), wxBITMAP_TYPE_PNG)); + if (field->m_Label != nullptr && + find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()){ + field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); + field->m_Label->Refresh(true); + } + field->m_is_nonsys_value = true; } - field->m_is_nonsys_value = true; std::vector::iterator itr = find(m_sys_options.begin(), m_sys_options.end(), opt_key); if (itr != m_sys_options.end()){ m_sys_options.erase(itr); @@ -1071,6 +1116,7 @@ void TabPrinter::build() auto *nozzle_diameter = dynamic_cast(m_config->option("nozzle_diameter")); m_initial_extruders_count = m_extruders_count = nozzle_diameter->values.size(); + m_sys_extruders_count = static_cast(m_presets->get_selected_preset_parent()->config.option("nozzle_diameter"))->values.size(); auto page = add_options_page(_(L("General")), "printer_empty.png"); auto optgroup = page->new_optgroup(_(L("Size and coordinates"))); @@ -1729,6 +1775,8 @@ void Tab::save_preset(std::string name /*= ""*/) // Update the selection boxes at the platter. on_presets_changed(); + if (m_name == "printer") + static_cast(this)->m_initial_extruders_count = static_cast(this)->m_extruders_count; update_changed_ui(); } diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp index d3be0e8bc..a2cf648e9 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/xs/src/slic3r/GUI/Tab.hpp @@ -228,6 +228,7 @@ public: size_t m_extruders_count; size_t m_initial_extruders_count; + size_t m_sys_extruders_count; std::vector m_extruder_pages; TabPrinter() {} From 82f4e16a27f85ec3c5e277b8fb4843d006ee7680 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 21 Mar 2018 22:21:37 +0100 Subject: [PATCH 12/24] "Decorated" UI for options groups. * Added prototype of undo-buttons for options groups; * Fixed bugs with "decoration" updating after preset changing; * Fixed wrong Ukrainian translation. --- resources/localization/uk/Slic3rPE.mo | Bin 140066 -> 140068 bytes resources/localization/uk/Slic3rPE_uk.po | 8 +- xs/src/slic3r/GUI/OptionsGroup.cpp | 8 +- xs/src/slic3r/GUI/OptionsGroup.hpp | 5 +- xs/src/slic3r/GUI/Tab.cpp | 251 ++++++++++++++++------- xs/src/slic3r/GUI/Tab.hpp | 12 +- 6 files changed, 196 insertions(+), 88 deletions(-) diff --git a/resources/localization/uk/Slic3rPE.mo b/resources/localization/uk/Slic3rPE.mo index c980ae64db8cc2f277ea38c8f12587076ef3626a..7ced15dc8c91acee358022d27d2d1abdf88c2313 100644 GIT binary patch delta 5917 zcmXZgd7MwxAII@?zP7OqW=v)bvlxc#V;LE{?4%JwmJuZ;*|$`_{S+RyY(tDC`;;)4 z7*w{OD9Tn0MG_)QC|Sl2zt{Vo??3arpZmSvbI<*p&pGFQXXSyQ)dzw$)rs&IF~-ce zW=v6BgoQ8zJK`41kM_DdAB0tjL$NqE#c=F|LopTm;LjL@^=}ySEH=l&I5^-q>}ZYo z@P_ew7yNkBm?B*87}bG7e;Lyl!|)<@!5Vzwxm(6OBp!I%m}1!Pjxi;11Xjc;s19eM zI<_s~(STR64d?COw1@5f_8XJL!FW!nr(3Z!o)4HCFzg@KU`-sy=WS6>v=6J`5p0IJ z*Z>>ebq_EO)qXZc;@=pI!T%Z)fo1)HgL+tj6P=K2%ve;12H$g;S%9&`tFR+}gUVFN z`^J>OXe^HjsMNoV4KW4da0%-AJ=h2jqrT@a_`sOfq&5c)#P0oS62_B2Lwe^cszuBhr^H9mL^tK(c$ zYWHF*yotJToyV@B_c4Tc3##Mapq}(B>W1ct>qudoMpy>RUUyL{ zru0)|VlW9OlbN2_fcSS~y(f#Z)|4Wyf$C^$R7b|(NSunw*kc^P_d|Tv)FFO5k2Q(7 z5r4qTSjo>pR$l8><5^U36v=1JJd8x8G7}r&9t@+wC)kX*WC3fgiznOcpF ziTC64m?zkJL)01v5YI!c3%S?fQ8frH7YFQlW2ZVjpf+fW@ki~3@|Xm`UJ7)9I`m6?I4S+oe%k*yeu=Wr}O z#nU)8#$T@MuX3QCOh>I?pI~L&k80o+s$(U}Su>DKl)+DkC&jtALU~s!A60Nq zx)g)>JPVcjuTaH&2i0ENcsE3EVsXv?Ssc7i!^<&=3t}tr#6DwsA#0AARM~o)(?lvu z9i4?|a22W+-m7ZOO8g8peLGZh)3qlKq1{FJ83wU~b;2z*tzjmbytS-(kNcb8+SXjc z8Mp<9*P&-zP`<7;bFglrHG}YAJ*FQf)VHP;j!&|tB^}+{z?$8}1sYQux~_>eWohSZ zQ&%gwsD-CkGdF~-P(?lr{Yq6P2P(ep7>lQ|3Fe~4GO4+=Yw7y zU6pRd&YVAk1vpDTjbWPqOF7UNvv3stinXybc~VNJpjN_#sN&g$+7*wZ8j9)d z#<&{l`UwGNVN>Ges7zcyjd@TXSM0GE&;3nv4wRZfs2i<771=>l&vQ{P4B;s*{sXm8 z0q27|0qZX=7=)EDKI$~aB{_DvjIMCYO0(IjdsM)XrHBGLf zp7bdy^+o!*c^rl+zAC7pNW?za1~*^^>ib>$yQO_FRwbT;nq|BCGyfAfD8NAL!uqHe ziDcBfU>Yjr`%uMr5}V-zR6|LxyNeX$Q&FEUN7dSa0nC3r zdGR;gt5OnvO}rKLg^>f@e4d6%?HW{v4x)HoPpXs7o$412VcM< z>_D29ub|@f0drCJ^|u-7Za5mXHcvrS>r$+X`%yKKiyg4qFjq|Du?6v3R0gi2#x!xb zD^5R_BHoGW&68m$$HR}EUb5sYfpq?yhrhETS#5%;U2TaGd#7D6RMttOkCLUFk?NLKE3nMlE zmvNw9COc8{Jtq+Viz>p9S+2*=;!ffwxF2&-#k702tLjQ~toNI*BdWvGQM=$lEQc4d zGUlJ_h9Uv|nhxDL(AZBvjbR$b;W^ajcAk63tB5MP?${FNpqAbo)b)385{9K&lSS$m z<3-{Z7g+N#*8bRe!-NzKheBLL#+VQ=AR=7-zTIrmP>cIMy6piNRZcgY)im!4@ab+w_ z+z*w3A*e5;VN=Y&!Q9{~_9O1P)_T8ox1(l7Xa-|X$GW3lR9^qonhUrCYjA$?XKt1p z_OAB9Ra#0Ic%q}-1Y3S{K*qie~yRGTMbptSe9_HVdd#pLmiGBYi zm6-O8HN)}#0jeAaeao8z%=~NC`+q{88`iu{ zeEFs|KWYA_+#=PSsB_zz@9^h4*8GdB|6%{ebb@!dZrwd=7GnH;)``3nEq+{}nQ!$o!5^5XIKyAZkP@7J8KA-nHKNas1Z$M4wmHFNEDFu9f?_Vf$ z3iv$tpgMF5wQ`jU@_GN5Y>b)(9WXzR!b12C>J4WyhT{Tkg_-)CjNHSnXbbsF3`5e5 z0?}SDjz2GPesVFt&-;hL87k{8C-Q~(%&#<%8%m0Z&y;j2yBX$EmW#?r@H0Mdy{M1T z#GO&+N8&bIhV`&(DWCVYI}??mo2YF#I^5^Yy0`osq;O(PgnP16xP|x}_QlyuYQ0k3 z!6-VE9O*OjaA+By_g;`E%BR<8QyZ(}I@BI<2176{+6_?#ssrDlI{XN=>G>ncOHB@{ zqF%XrV;oM$f|!Xaq8+GR>j+YN<{ZZ2?^qP`#`?UKF9aJBcf$ghhPu%bRC^mxLzwO2 zer6X3T57+=^7s>~=MPauSfrfKTY}?I=i3J2UZ_1`B9_K%)NA{RK%76$XBcV|oAqan z^v#88SF4o}laQEHGa+l{g{MKm@yC`O+g$N@+OeI-Cz|-Ih1c>7u)DICB-_a+{tw;? BiDLi& delta 5915 zcmXZgd09>s6cfpC80Bh%frh^&9rLYw$Uo!td=+Z?q3<;`i7RbFm3F zzUN+G5~}@dEQ^0)5e&I+Oazwo`VZ=3WlnTKt}zo)sT=;lWo8LR6R*M~{05b&;tv@P zERU5i7M1#**cAI?3@%4qzXzM)Vbp!z0=c{msg1yJP7Ef$YG4YM#CNa+F2y>y5nsTI zI2^10V@yX}f}QafRBhCLY)n6Fj(YGitcz<=Lwgz{dA=$6#1&P2tj!NY@Ht$FO6^{3 zi#JgZj(h4F`WF@_-i+$_H>fu~k9y!UR7VOvGiDx^!E%_1%JhB=!@{2FqD%N)gvabuY8pH6i)^y~Jn&N5V+2veu4JhxfACD27UyND-v;60CP_y7Zs(n+z)mS)c zU1^J9=pExfn2EX}9aVH|P#xHY>d<-AjRBGFfwi#$aXVCIl2Nm0DXJq|F&Z!6WPFNe zablEfKPlSRp4SZIKs}j@TERZX8n_?Tz-?5=idM8Hg-n#emBce*TpUx$)yn&o-J7n! zAb#J1O8qWWG2cP8*RF~iqSr7~^FNh?X*8UHjkzGQ8gJ}j^+MJhGoyy}?T*u^EOj&$ z&*3UmExc9Bn$`FjYWjAp?WSvA97VfJ@pBAh2kVBL>sZ4~G@dwX-sbrxq@Fdu;XM2j zN5|7ME~r@FnnhTzfi4LlxsTRP7vT&HUGe*Etb|cm0O7aq~AG)v?Z~)Q&_I=Ty`>kc#TiWmL^X zC%WS7get~lztd6cK?Z8t?Lh4rM-siRNG@|in@l))ZIAu2A%2QV{m-a1y*>HY8}`R- zq<$ePwTUlS-|jaR%Mc$yEnHWzD@Jy*rVEboyARc&P;X~fT-7m#2Q|PK`JrEutJ1C5 zgY##w0OxCVb?5700&ySI5Tv7T+M+tT4Ye*DMve6qT!9s-z?W%n4~`=CmZkNX9L&Qp zShS~003#cJ_imHk7y{&JbAB|d?SD}jW5GteBa3EIb zW6dP(|Nr7(FemO~2ki5rd$U#e3O)T5wePp<=N`BiRWsSBFPJ^3H$9H3fg7j}m3+x9 zVD(WQcnOu6H!uX}V@b{b6&&csEjR&x!g|<^JSnBKP%GhwsN&g;+7*wX8miFWjd4xX z^;7+(VghjnDign;#yoIh}y(t$mx!{MW8lWSIL@ zYJ^`CZ$;fOHpR{7IjGdGL3QW=swmH5N36sm5rw01I4(p@ugBOGhYx2R!LKj{E5GiX z@8v*m@(|ULN+VnSSP`l?cRLAyUXAEWs(zJXL z6|eW3i+ZlN?P&MF@u;IK-7*9OZZ#s4$K8hh&YQ7tqN~ogjfEuz?EUWqd5eNFq zWG8CA=lJ8lQAHTK!1cH)?jml6-(oJRn7&@-(Fp6RN{=QM=#)tcaJf2Ifn1 zLlKK!O^4nbXzZt=#xMiRo43&WOJvz62@!z;v{ zKeT2k)?I2%FFcHzMUm;u|A`#LrMnEQ!!Nn<0IIsDEVpJiZb7AZ)CxB=YjA_c7Hi>K zAG_jQm*IA~`#6v>U$l}>JMQ~ymCMAq)z0~-4y<2I(P(~t%?Z6pku`29u7-t(2ca@B z0(C@&umj`c=;s0>|a&1Kwyv7BG_xtk@2z3csB z!s}?PV^PJ`7Q?u30O}KL+(x&1Eys$)U!bb{M{I~|HnC9Ap$lJF;~{>qg+Da#5$PPt z^-Z@~lZKz5renQqYx?rL*ULc=2j{k1lfw_c?qGK#-nrA7OyUB&-1eM>Er^SLWz7ui zg3IwF&c#u?$rShHq86?Sd)$zup>OxY{+tioYfVqCdj$gnn1BD?XUz#t?E8jPV%h;~ z#^U{hR5=bi#Fr1&I>I#N4def7%{3ZIJZjAYto4I6*_@9##*pDT8moaaIX4Ckj^w}y8xi*H!p|0leB%bGWcuiUog zl;(f`JEWQuaerEK7|;G?&3#<`H~TlH6THQB>mFE>j+Gv=PUNF#@lXI`{@9vlT(>sQ zZO3b@$M^TcCe#rlu+ka5S z*)^ZX_m!K1(Zn-Q+ju5w8$N^Dbi(s{e1GSs;636EsOkJkpu4_*0gu=BUnmO-czo_b zb?7!~<%$aOn8Mf;H48doAdbUed;|4`GZRbW5^RfE`kjp2!(NzI&|{()l3o;u_JT?L z)1C7(i+Vl2|1da1W!>XMKyi=xnFeyhND=Xw5-w#oOS+WhqB0T^?(wY`4Kb3q8|wU6 z+>Re%L+nw?X^(H#z3$~;ASWh7xHmh6UlL!yK{%gDtxu{uSb+{D zmGzj#II^6__g!Esc=Q=<>f&>_4z)*|!Qz+}>4qp1)q(F&9e#w`^t=(|MQeKvtc@>W z49>-Zn1w2$9jIOFd!+Wv1&qc^s3G!1dweTjC^jYTg#|DT^`Pab_BNn~Fx$mL%x(^} z)E>l2_#>+44^c%JT+!oOf}>IA+xg>us6AmCmceYShsXVKz8H^Ts7>V7>#@tX1jp5m tYZO&CzHy!St*Mvuf\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -3330,7 +3330,7 @@ msgstr "" #: c:\src\Slic3r\xs\src\libslic3r\GCode\PreviewData.cpp:137 msgid "None" -msgstr "Жадне" +msgstr "Жодне" #: c:\src\Slic3r\xs\src\libslic3r\GCode\PreviewData.cpp:138 #: c:\src\Slic3r\lib\Slic3r\GUI\Plater\3DPreview.pm:80 @@ -3718,11 +3718,11 @@ msgstr "Файл" #: c:\src\Slic3r\lib\Slic3r\GUI\MainFrame.pm:419 msgid "&Plater" -msgstr "Платер" +msgstr "&Платер" #: c:\src\Slic3r\lib\Slic3r\GUI\MainFrame.pm:420 msgid "&Object" -msgstr "Об'єкт" +msgstr "&Об'єкт" #: c:\src\Slic3r\lib\Slic3r\GUI\MainFrame.pm:421 msgid "&Window" diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index 37f3fea68..3a97c98c7 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -90,8 +90,8 @@ const t_field& OptionsGroup::build_field(const t_config_option_key& id, const Co field->m_Undo_btn->Hide(); field->m_Undo_to_sys_btn->Hide(); } - if (nonsys_btn_icon != "") - field->set_nonsys_btn_icon(nonsys_btn_icon); + if (nonsys_btn_icon != nullptr) + field->set_nonsys_btn_icon(nonsys_btn_icon()); // assign function objects for callbacks, etc. return field; @@ -335,7 +335,7 @@ void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, } void ConfigOptionsGroup::reload_config(){ - for (std::map< std::string, std::pair >::iterator it = m_opt_map.begin(); it != m_opt_map.end(); ++it) { + for (t_opt_map::iterator it = m_opt_map.begin(); it != m_opt_map.end(); ++it) { auto opt_id = it->first; std::string opt_key = m_opt_map.at(opt_id).first; int opt_index = m_opt_map.at(opt_id).second; @@ -455,7 +455,7 @@ Field* ConfigOptionsGroup::get_fieldc(t_config_option_key opt_key, int opt_index if (field != nullptr) return field; std::string opt_id = ""; - for (std::map< std::string, std::pair >::iterator it = m_opt_map.begin(); it != m_opt_map.end(); ++it) { + for (t_opt_map::iterator it = m_opt_map.begin(); it != m_opt_map.end(); ++it) { if (opt_key == m_opt_map.at(it->first).first && opt_index == m_opt_map.at(it->first).second){ opt_id = it->first; break; diff --git a/xs/src/slic3r/GUI/OptionsGroup.hpp b/xs/src/slic3r/GUI/OptionsGroup.hpp index 3efa42730..7884271e1 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.hpp +++ b/xs/src/slic3r/GUI/OptionsGroup.hpp @@ -69,6 +69,7 @@ private: }; using t_optionfield_map = std::map; +using t_opt_map = std::map< std::string, std::pair >; class OptionsGroup { public: @@ -85,7 +86,7 @@ public: wxFont sidetext_font {wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) }; wxFont label_font {wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) }; - std::string nonsys_btn_icon = ""; + std::function nonsys_btn_icon{ nullptr }; /// Returns a copy of the pointer of the parent wxWindow. /// Accessor function is because users are not allowed to change the parent @@ -164,7 +165,7 @@ public: /// reference to libslic3r config, non-owning pointer (?). DynamicPrintConfig* m_config {nullptr}; bool m_full_labels {0}; - std::map< std::string, std::pair > m_opt_map; + t_opt_map m_opt_map; Option get_option(const std::string opt_key, int opt_index = -1); Line create_single_option_line(const std::string title, int idx = -1) /*const*/{ diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 464734f9c..926679664 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -55,6 +55,17 @@ void Tab::create_preset_tab(PresetBundle *preset_bundle) m_btn_delete_preset->SetToolTip(_(L("Delete this preset"))); m_btn_delete_preset->Disable(); + m_undo_btn = new wxButton(panel, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT | wxNO_BORDER); + m_undo_to_sys_btn = new wxButton(panel, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT | wxNO_BORDER); + if (wxMSW) { + m_undo_btn->SetBackgroundColour(color); + m_undo_to_sys_btn->SetBackgroundColour(color); + } + m_undo_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); + m_undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ })); + m_undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); + m_undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ })); + m_hsizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(m_hsizer, 0, wxBOTTOM, 3); m_hsizer->Add(m_presets_choice, 1, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, 3); @@ -64,6 +75,9 @@ void Tab::create_preset_tab(PresetBundle *preset_bundle) m_hsizer->Add(m_btn_delete_preset, 0, wxALIGN_CENTER_VERTICAL); m_hsizer->AddSpacer(16); m_hsizer->Add(m_btn_hide_incompatible_presets, 0, wxALIGN_CENTER_VERTICAL); + m_hsizer->AddSpacer(64); + m_hsizer->Add(m_undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL); + m_hsizer->Add(m_undo_btn, 0, wxALIGN_CENTER_VERTICAL); //Horizontal sizer to hold the tree and the selected page. m_hsizer = new wxBoxSizer(wxHORIZONTAL); @@ -182,8 +196,6 @@ void Tab::update_changed_ui() { auto dirty_options = m_presets->current_dirty_options(); - auto sys_options = m_presets->system_equal_options(); - if (name() == "printer"){ // Update dirty_options in case changes of Extruder's options TabPrinter* tab = static_cast(this); @@ -201,38 +213,40 @@ void Tab::update_changed_ui() default: new_options.emplace_back(opt_key); break; } } - dirty_options.resize(0); dirty_options = new_options; if (tab->m_initial_extruders_count != tab->m_extruders_count) dirty_options.emplace_back("extruders_count"); - new_options.resize(0); - std::initializer_list optional_keys{"bed_shape", "compatible_printers", "compatible_printers_condition" }; - for (auto &opt_key : optional_keys) { - if (find(sys_options.begin(), sys_options.end(),opt_key) != sys_options.end()) - new_options.emplace_back(opt_key); - } - for (auto opt_key : m_config->keys()) - { - if (opt_key == "bed_shape") continue; - switch (m_config->option(opt_key)->type()) - { - case coInts: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; - case coBools: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; - case coFloats: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; - case coStrings: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; - case coPercents:add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; - case coPoints: add_correct_opts_to_sys_options(opt_key, &new_options, tab); break; - default: new_options.emplace_back(opt_key); break; + m_sys_options.resize(0); + const auto sys_preset = m_presets->get_selected_preset_parent(); + if (sys_preset){ + std::initializer_list optional_keys{"compatible_printers", "compatible_printers_condition" }; + for (auto &opt_key : optional_keys) { + if (m_config->has(opt_key) == sys_preset->config.has(opt_key)) + m_sys_options.emplace_back(opt_key); + } + for (auto opt_key : m_config->keys()) + { + if (opt_key == "bed_shape"){ m_sys_options.emplace_back(opt_key); continue; } + switch (m_config->option(opt_key)->type()) + { + case coInts: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; + case coBools: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; + case coFloats: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; + case coStrings: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; + case coPercents:add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; + case coPoints: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; + default: m_sys_options.emplace_back(opt_key); break; + } } - } - sys_options.resize(0); - sys_options = new_options; - if (tab->m_sys_extruders_count == tab->m_extruders_count) - sys_options.emplace_back("extruders_count"); + if (tab->m_sys_extruders_count == tab->m_extruders_count) + m_sys_options.emplace_back("extruders_count"); + } } + else + m_sys_options = m_presets->system_equal_options(); // Add new dirty options to m_dirty_options for (auto opt_key : dirty_options){ @@ -272,62 +286,139 @@ void Tab::update_changed_ui() } } } - //update system options (colored in green) - // Add new system equal options to m_sys_options - for (auto opt_key : sys_options){ + for (const auto opt_key : m_full_options_list) + { Field* field = get_field(opt_key); - if (field != nullptr && find(m_sys_options.begin(), m_sys_options.end(), opt_key) == m_sys_options.end()){ - field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(wxMSW ? var("sys_lock.png") : var("lock.png")), wxBITMAP_TYPE_PNG)); + if (field == nullptr) continue; + std::string icon = wxMSW ? "sys_lock.png" : "lock.png"; + wxColor& color = *get_sys_label_clr(); + if (find(m_sys_options.begin(), m_sys_options.end(), opt_key) != m_sys_options.end()) { field->m_is_nonsys_value = false; - - m_sys_options.push_back(opt_key); } - if (field != nullptr && field->m_Label != nullptr){ - field->m_Label->SetForegroundColour(*get_sys_label_clr()); + else { + field->m_is_nonsys_value = true; + icon = m_nonsys_btn_icon; + if(find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()) + color = wxSYS_COLOUR_WINDOWTEXT; + } + field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(icon)), wxBITMAP_TYPE_PNG)); + if (field->m_Label != nullptr){ + field->m_Label->SetForegroundColour(color); field->m_Label->Refresh(true); } } - if (sys_options.empty() && !m_sys_options.empty()){ - for (auto opt_key : m_config->keys()){ - Field* field = get_field(opt_key); - if (field != nullptr){ - field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(m_nonsys_btn_icon)), wxBITMAP_TYPE_PNG)); - field->m_is_nonsys_value = false; - if (field->m_Label != nullptr){ - field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); - field->m_Label->Refresh(true); - } - } - } - m_sys_options.resize(0); - } - // Delete clear options from m_dirty_options - for (auto i = 0; i < m_sys_options.size(); ++i) - { - const std::string &opt_key = m_sys_options[i]; - Field* field = get_field(opt_key); - if (find(sys_options.begin(), sys_options.end(), opt_key) == sys_options.end()) - { - if (field != nullptr){ - // use bouth of temporary_icons till don't have "unlock_icon" - field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(m_nonsys_btn_icon)), wxBITMAP_TYPE_PNG)); - if (field->m_Label != nullptr && - find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()){ - field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); - field->m_Label->Refresh(true); - } - field->m_is_nonsys_value = true; - } - std::vector::iterator itr = find(m_sys_options.begin(), m_sys_options.end(), opt_key); - if (itr != m_sys_options.end()){ - m_sys_options.erase(itr); - --i; - } - } + + wxTheApp->CallAfter([this]() { + update_changed_tree_ui(); + }); +} + +template +void add_correct_opts_to_full_options_list(const std::string &opt_key, std::vector *vec, TabPrinter *tab) +{ + T *opt_cur = static_cast(tab->m_config->option(opt_key)); + for (int i = 0; i < opt_cur->values.size(); i++) + vec->emplace_back(opt_key + "#" + std::to_string(i)); +} + +void Tab::update_full_options_list() +{ + if (!m_full_options_list.empty()) + m_full_options_list.resize(0); + + if (m_name != "printer"){ + m_full_options_list = m_config->keys(); + return; } + TabPrinter* tab = static_cast(this); + for (const auto opt_key : m_config->keys()) + { + if (opt_key == "bed_shape"){ + m_full_options_list.emplace_back(opt_key); + continue; + } + switch (m_config->option(opt_key)->type()) + { + case coInts: add_correct_opts_to_full_options_list(opt_key, &m_full_options_list, tab); break; + case coBools: add_correct_opts_to_full_options_list(opt_key, &m_full_options_list, tab); break; + case coFloats: add_correct_opts_to_full_options_list(opt_key, &m_full_options_list, tab); break; + case coStrings: add_correct_opts_to_full_options_list(opt_key, &m_full_options_list, tab); break; + case coPercents:add_correct_opts_to_full_options_list(opt_key, &m_full_options_list, tab); break; + case coPoints: add_correct_opts_to_full_options_list(opt_key, &m_full_options_list, tab); break; + default: m_full_options_list.emplace_back(opt_key); break; + } + } + m_full_options_list.emplace_back("extruders_count"); + + std::initializer_list optional_keys{ "compatible_printers", "compatible_printers_condition" }; + for (auto &opt_key : optional_keys) { + if (m_config->has(opt_key)) + m_full_options_list.emplace_back(opt_key); + } +} + +void Tab::update_sys_ui_after_sel_preset() +{ + for (const auto opt_key : m_full_options_list){ + Field* field = get_field(opt_key); + if (field != nullptr){ + field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(m_nonsys_btn_icon)), wxBITMAP_TYPE_PNG)); + field->m_is_nonsys_value = true; + if (field->m_Label != nullptr){ + field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); + field->m_Label->Refresh(true); + } + } + } + m_sys_options.resize(0); +} + +void Tab::update_changed_tree_ui() +{ + auto cur_item = m_treectrl->GetFirstVisibleItem(); + while (cur_item){ + auto title = m_treectrl->GetItemText(cur_item); + int i=0; + for (auto page : m_pages) + { + if (page->title() != title) + continue; + bool sys_page = true; + bool modified_page = false; + if (title == _("General")){ + if (sys_page && find(m_sys_options.begin(), m_sys_options.end(), "extruders_count") == m_sys_options.end()) + sys_page = false; + if (!modified_page && find(m_dirty_options.begin(), m_dirty_options.end(), "extruders_count") != m_dirty_options.end()) + modified_page = true; + } + for (auto group : page->m_optgroups) + { + for (t_opt_map::iterator it = group->m_opt_map.begin(); it != group->m_opt_map.end(); ++it) { + const std::string& opt_key = it->first; + if (sys_page && find(m_sys_options.begin(), m_sys_options.end(), opt_key) == m_sys_options.end()) + sys_page = false; + if (!modified_page && find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) != m_dirty_options.end()) + modified_page = true; + } + if (!sys_page && modified_page) + break; + } + if (sys_page){ + m_treectrl->SetItemTextColour(cur_item, *get_sys_label_clr()); + } + else if (modified_page){ + m_treectrl->SetItemTextColour(cur_item, *get_modified_label_clr()); + } + else + m_treectrl->SetItemTextColour(cur_item, wxSYS_COLOUR_WINDOWTEXT); + break; + } + auto next_item = m_treectrl->GetNextVisible(cur_item); + cur_item = next_item; + } } // Update the combo box label of the selected preset based on its "dirty" state, @@ -1116,7 +1207,9 @@ void TabPrinter::build() auto *nozzle_diameter = dynamic_cast(m_config->option("nozzle_diameter")); m_initial_extruders_count = m_extruders_count = nozzle_diameter->values.size(); - m_sys_extruders_count = static_cast(m_presets->get_selected_preset_parent()->config.option("nozzle_diameter"))->values.size(); + const Preset* parent_preset = m_presets->get_selected_preset_parent(); + m_sys_extruders_count = parent_preset == nullptr ? 0 : + static_cast(parent_preset->config.option("nozzle_diameter"))->values.size(); auto page = add_options_page(_(L("General")), "printer_empty.png"); auto optgroup = page->new_optgroup(_(L("Size and coordinates"))); @@ -1550,8 +1643,14 @@ void Tab::load_current_preset() if (name() == "print") update_frequently_changed_parameters(); - if (m_name == "printer") + if (m_name == "printer"){ static_cast(this)->m_initial_extruders_count = static_cast(this)->m_extruders_count; + const Preset* parent_preset = m_presets->get_selected_preset_parent(); + static_cast(this)->m_sys_extruders_count = parent_preset == nullptr ? 0 : + static_cast(parent_preset->config.option("nozzle_diameter"))->values.size(); + } + update_sys_ui_after_sel_preset(); + update_full_options_list(); update_changed_ui(); }); } @@ -1962,7 +2061,9 @@ ConfigOptionsGroupShp Page::new_optgroup(wxString title, int noncommon_label_wid return static_cast(GetParent())->m_presets->get_selected_preset_parent() != nullptr; }; - optgroup->nonsys_btn_icon = static_cast(GetParent())->m_nonsys_btn_icon; + optgroup->nonsys_btn_icon = [this](){ + return static_cast(GetParent())->m_nonsys_btn_icon; + }; vsizer()->Add(optgroup->sizer, 0, wxEXPAND | wxALL, 10); m_optgroups.push_back(optgroup); diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp index a2cf648e9..8dd667bd1 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/xs/src/slic3r/GUI/Tab.hpp @@ -90,10 +90,12 @@ protected: wxImageList* m_icons; wxCheckBox* m_compatible_printers_checkbox; wxButton* m_compatible_printers_btn; + wxButton* m_undo_btn; + wxButton* m_undo_to_sys_btn; int m_icon_count; - std::map m_icon_index; // Map from an icon file name to its index in $self->{icons}. - std::vector m_pages; // $self->{pages} = []; + std::map m_icon_index; // Map from an icon file name to its index + std::vector m_pages; bool m_disable_tree_sel_changed_event; bool m_show_incompatible_presets; bool m_no_controller; @@ -101,6 +103,7 @@ protected: std::vector m_reload_dependent_tabs = {}; std::vector m_dirty_options = {}; std::vector m_sys_options = {}; + std::vector m_full_options_list = {}; // The two following two event IDs are generated at Plater.pm by calling Wx::NewEventType. wxEventType m_event_value_change = 0; @@ -149,7 +152,10 @@ public: void update_show_hide_incompatible_button(); void update_ui_from_settings(); void update_changed_ui(); - + void update_full_options_list(); + void update_sys_ui_after_sel_preset(); + void update_changed_tree_ui(); + PageShp add_options_page(wxString title, std::string icon, bool is_extruder_pages = false); virtual void OnActivate(){} From 78208620c0a044fb0b1d602df29846e8af3c1a93 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 22 Mar 2018 09:37:42 +0100 Subject: [PATCH 13/24] Correct updating of "Undo"-buttons according to the option changes --- xs/src/slic3r/GUI/Tab.cpp | 35 ++++++++++++++++++++++++++++++----- xs/src/slic3r/GUI/Tab.hpp | 7 +++++++ 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 926679664..52b7ea94e 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -293,7 +293,7 @@ void Tab::update_changed_ui() Field* field = get_field(opt_key); if (field == nullptr) continue; std::string icon = wxMSW ? "sys_lock.png" : "lock.png"; - wxColor& color = *get_sys_label_clr(); + wxColour& color = *get_sys_label_clr(); if (find(m_sys_options.begin(), m_sys_options.end(), opt_key) != m_sys_options.end()) { field->m_is_nonsys_value = false; } @@ -302,6 +302,8 @@ void Tab::update_changed_ui() icon = m_nonsys_btn_icon; if(find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()) color = wxSYS_COLOUR_WINDOWTEXT; + else + color = *get_modified_label_clr(); } field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(icon)), wxBITMAP_TYPE_PNG)); if (field->m_Label != nullptr){ @@ -379,6 +381,7 @@ void Tab::update_sys_ui_after_sel_preset() void Tab::update_changed_tree_ui() { auto cur_item = m_treectrl->GetFirstVisibleItem(); + auto selection = m_treectrl->GetItemText(m_treectrl->GetSelection()); while (cur_item){ auto title = m_treectrl->GetItemText(cur_item); int i=0; @@ -406,19 +409,37 @@ void Tab::update_changed_tree_ui() if (!sys_page && modified_page) break; } - if (sys_page){ + if (sys_page) m_treectrl->SetItemTextColour(cur_item, *get_sys_label_clr()); - } - else if (modified_page){ + else if (modified_page) m_treectrl->SetItemTextColour(cur_item, *get_modified_label_clr()); - } else m_treectrl->SetItemTextColour(cur_item, wxSYS_COLOUR_WINDOWTEXT); + + page->m_is_nonsys_values = !sys_page; + page->m_is_modified_values = modified_page; + + if (selection == title){ + m_is_nonsys_values = page->m_is_nonsys_values; + m_is_modified_values = page->m_is_modified_values; + } break; } auto next_item = m_treectrl->GetNextVisible(cur_item); cur_item = next_item; } + update_undo_buttons(); +} + +void Tab::update_undo_buttons() +{ + const std::string& undo_icon = !m_is_modified_values ? "bullet_white.png" : + wxMSW ? "action_undo.png" : "arrow_undo.png"; + const std::string& undo_to_sys_icon = m_is_nonsys_values ? m_nonsys_btn_icon : + wxMSW ? "sys_lock.png" : "lock.png"; + + m_undo_btn->SetBitmap(wxBitmap(from_u8(var(undo_icon)), wxBITMAP_TYPE_PNG)); + m_undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(undo_to_sys_icon)), wxBITMAP_TYPE_PNG)); } // Update the combo box label of the selected preset based on its "dirty" state, @@ -1796,6 +1817,8 @@ void Tab::OnTreeSelChange(wxTreeEvent& event) if (p->title() == selection) { page = p.get(); + m_is_nonsys_values = page->m_is_nonsys_values; + m_is_modified_values = page->m_is_modified_values; break; } if (page == nullptr) return; @@ -1805,6 +1828,8 @@ void Tab::OnTreeSelChange(wxTreeEvent& event) page->Show(); m_hsizer->Layout(); Refresh(); + + update_undo_buttons(); } void Tab::OnKeyDown(wxKeyEvent& event) diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp index 8dd667bd1..fbc65745c 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/xs/src/slic3r/GUI/Tab.hpp @@ -54,6 +54,9 @@ public: } ~Page(){} + bool m_is_modified_values{ false }; + bool m_is_nonsys_values{ true }; + public: std::vector m_optgroups; DynamicPrintConfig* m_config; @@ -109,6 +112,9 @@ protected: wxEventType m_event_value_change = 0; wxEventType m_event_presets_changed = 0; + bool m_is_modified_values{ false }; + bool m_is_nonsys_values{ true }; + public: PresetBundle* m_preset_bundle; bool m_show_btn_incompatible_presets = false; @@ -155,6 +161,7 @@ public: void update_full_options_list(); void update_sys_ui_after_sel_preset(); void update_changed_tree_ui(); + void update_undo_buttons(); PageShp add_options_page(wxString title, std::string icon, bool is_extruder_pages = false); From d7e23056860b7b73bd8f755702bfbc95aae48684 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 22 Mar 2018 10:56:57 +0100 Subject: [PATCH 14/24] "Undo"-buttons work --- xs/src/libslic3r/PrintConfig.cpp | 2 +- xs/src/slic3r/GUI/Tab.cpp | 49 ++++++++++++++++++++++++++++++-- xs/src/slic3r/GUI/Tab.hpp | 3 ++ 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 83de577aa..a49124f87 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -418,7 +418,7 @@ PrintConfigDef::PrintConfigDef() def->tooltip = L("This is only used in the Slic3r interface as a visual help."); def->cli = "filament-color=s@"; def->gui_type = "color"; - def->default_value = new ConfigOptionStrings { "#29b2b2" }; + def->default_value = new ConfigOptionStrings { "#29B2B2" }; def = this->add("filament_notes", coStrings); def->label = L("Filament notes"); diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 52b7ea94e..7cb3491f6 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -62,9 +62,9 @@ void Tab::create_preset_tab(PresetBundle *preset_bundle) m_undo_to_sys_btn->SetBackgroundColour(color); } m_undo_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); - m_undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ })); + m_undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ on_back_to_initial_value(); })); m_undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); - m_undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ })); + m_undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent){ on_back_to_sys_value(); })); m_hsizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(m_hsizer, 0, wxBOTTOM, 3); @@ -442,6 +442,51 @@ void Tab::update_undo_buttons() m_undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(undo_to_sys_icon)), wxBITMAP_TYPE_PNG)); } +void Tab::on_back_to_initial_value() +{ + if (!m_is_modified_values) return; + + auto selection = m_treectrl->GetItemText(m_treectrl->GetSelection()); + for (auto page : m_pages) + if (page->title() == selection) { + for (auto group : page->m_optgroups){ + if (group->title == _("Capabilities")){ + if (find(m_dirty_options.begin(), m_dirty_options.end(), "extruders_count") != m_dirty_options.end()) + group->back_to_initial_value("extruders_count"); + } + for (t_opt_map::iterator it = group->m_opt_map.begin(); it != group->m_opt_map.end(); ++it) { + const std::string& opt_key = it->first; + if (find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) != m_dirty_options.end()) + group->back_to_initial_value(opt_key); + } + } + break; + } + +} + +void Tab::on_back_to_sys_value() +{ + if (!m_is_nonsys_values) return; + + auto selection = m_treectrl->GetItemText(m_treectrl->GetSelection()); + for (auto page : m_pages) + if (page->title() == selection) { + for (auto group : page->m_optgroups) { + if (group->title == _("Capabilities")){ + if (find(m_sys_options.begin(), m_sys_options.end(), "extruders_count") == m_sys_options.end()) + group->back_to_sys_value("extruders_count"); + } + for (t_opt_map::iterator it = group->m_opt_map.begin(); it != group->m_opt_map.end(); ++it) { + const std::string& opt_key = it->first; + if (find(m_sys_options.begin(), m_sys_options.end(), opt_key) == m_sys_options.end()) + group->back_to_sys_value(opt_key); + } + } + break; + } +} + // Update the combo box label of the selected preset based on its "dirty" state, // comparing the selected preset config with $self->{config}. void Tab::update_dirty(){ diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp index fbc65745c..eaf188df4 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/xs/src/slic3r/GUI/Tab.hpp @@ -163,6 +163,9 @@ public: void update_changed_tree_ui(); void update_undo_buttons(); + void on_back_to_initial_value(); + void on_back_to_sys_value(); + PageShp add_options_page(wxString title, std::string icon, bool is_extruder_pages = false); virtual void OnActivate(){} From 44b711953f89b35cc05444df99a45695390ec942 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 22 Mar 2018 11:46:15 +0100 Subject: [PATCH 15/24] Added preset parent description line to Dependencies --- xs/src/slic3r/GUI/Tab.cpp | 31 ++++++++++++++++++++++++++++++- xs/src/slic3r/GUI/Tab.hpp | 1 + 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 7cb3491f6..97f496b20 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -849,6 +849,13 @@ void TabPrint::build() option = optgroup->get_option("compatible_printers_condition"); option.opt.full_width = true; optgroup->append_single_option_line(option); + + line = Line{ "", "" }; + line.full_width = 1; + line.widget = [this](wxWindow* parent) { + return description_line_widget(parent, &m_parent_preset_description_line); + }; + optgroup->append_line(line); } // Reload current config (aka presets->edited_preset->config) into the UI fields. @@ -1216,6 +1223,13 @@ void TabFilament::build() option = optgroup->get_option("compatible_printers_condition"); option.opt.full_width = true; optgroup->append_single_option_line(option); + + line = Line{ "", "" }; + line.full_width = 1; + line.widget = [this](wxWindow* parent) { + return description_line_widget(parent, &m_parent_preset_description_line); + }; + optgroup->append_line(line); } // Reload current config (aka presets->edited_preset->config) into the UI fields. @@ -1504,6 +1518,15 @@ void TabPrinter::build() option.opt.height = 250; optgroup->append_single_option_line(option); + page = add_options_page(_(L("Dependencies")), "wrench.png"); + optgroup = page->new_optgroup(_(L("Profile dependencies"))); + line = Line{ "", "" }; + line.full_width = 1; + line.widget = [this](wxWindow* parent) { + return description_line_widget(parent, &m_parent_preset_description_line); + }; + optgroup->append_line(line); + build_extruder_pages(); if (!m_no_controller) @@ -1692,10 +1715,16 @@ void Tab::load_current_preset() on_preset_loaded(); // Reload preset pages with the new configuration values. reload_config(); - m_nonsys_btn_icon = m_presets->get_selected_preset_parent() == nullptr ? + const Preset* parent = m_presets->get_selected_preset_parent(); + m_nonsys_btn_icon = parent == nullptr ? "bullet_white.png" : wxMSW ? "sys_unlock.png" : "lock_open.png"; + wxString description_line = parent == nullptr ? + _(L("It's default preset")) : + _(L("Current preset is inherited from")) + ":\n" + parent->name; + m_parent_preset_description_line->SetText(description_line); + // use CallAfter because some field triggers schedule on_change calls using CallAfter, // and we don't want them to be called after this update_dirty() as they would mark the // preset dirty again diff --git a/xs/src/slic3r/GUI/Tab.hpp b/xs/src/slic3r/GUI/Tab.hpp index eaf188df4..285e4f8fc 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/xs/src/slic3r/GUI/Tab.hpp @@ -121,6 +121,7 @@ public: PresetCollection* m_presets; DynamicPrintConfig* m_config; std::string m_nonsys_btn_icon; + ogStaticText* m_parent_preset_description_line; public: Tab() {} From 57b61470a3a0736d801bd49697100ea0b924e243 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 22 Mar 2018 14:12:29 +0100 Subject: [PATCH 16/24] "Advanced" options alignment --- xs/src/slic3r/GUI/Tab.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 97f496b20..fd3e6efe2 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -784,7 +784,7 @@ void TabPrint::build() optgroup->append_single_option_line("interface_shells"); page = add_options_page(_(L("Advanced")), "wrench.png"); - optgroup = page->new_optgroup(_(L("Extrusion width")), 180); + optgroup = page->new_optgroup(_(L("Extrusion width"))); optgroup->append_single_option_line("extrusion_width"); optgroup->append_single_option_line("first_layer_extrusion_width"); optgroup->append_single_option_line("perimeter_extrusion_width"); From 1c5970d0a2ea0a4fde1af36502ea93b577208504 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 22 Mar 2018 15:16:30 +0100 Subject: [PATCH 17/24] Added sys_lock and sys_unlock icons. --- resources/icons/sys_lock.png | Bin 0 -> 448 bytes resources/icons/sys_unlock.png | Bin 0 -> 454 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/icons/sys_lock.png create mode 100644 resources/icons/sys_unlock.png diff --git a/resources/icons/sys_lock.png b/resources/icons/sys_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..0519c44a17c8f8f30b5f0a5b558e4bd71dfc13d6 GIT binary patch literal 448 zcmV;x0YCnUP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&0aZyvK~y+Tg_F<9 zfzy-m&y3pR zAJnkh?XcNwa6X@57zTR19ww7X{`E<%zqL!1Y*~qEaA95?rrWn5LOWUNoCc zoKB~FR8s;4j>jWx+s-2|_WQk*I2a6M{2}1`z9cmo4M{BPGp^p#>9iZfTc6W-&xuH$~cSDUC{LZ{QgY&Me<;R0oT3iSJZ=?{lP*+rSJ z0xV~>T1lVg@(9a(6;K|K@@Xgv0#!+^Rtt;80&yIRaqlp{5TRlGVOYCrgqMoRY${Ge qDgJShq9~G!#O>F?DV*#$4*metbIFXR3JD(o0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&0b5B#K~y+TjgzsC zgD?z+9T-3?l{!@{ofsIpl!;fU)V&Mu#KOb_@Dj{CK-nuHQ89HxLQp6dyCj$N?t1+s z%TD6_HL=U4X_`5JFvb95(==(_G!3+E3!dlE8qXe&hs;9{<2cT$Az7B8qGnMP(HR%e z@-+b@j$?Vrb=^4#0=ae^hjOs$9|8iAoagznGt>Egzn_bukZWO@K$0YM`E)wbT0Ikp zJz)mFAgSw`d>Dr01-xWwuV@1I`#`?yI`Y_!zf8cW48x$doX=;tTrS}IK5RA{{JbUY z8*HO(+pt=#o)w`0lBTJA!2fKw+tD5E4S0*l<8aV`aIiAoN{ZF}^?FSn(ca*dvMk|x zy;977kUS!UkhcQ-v!JRfiq%W1*js_)@d(@Pmg0{qz(kRJI2^#TEQ%4a|7!)J_bPqg w!!SH&L*;h6EfKE<{}`yK4#y|p3^2yv3&cNQZ!+1pRR91007*qoM6N<$f|!5CDgXcg literal 0 HcmV?d00001 From 53e100b89087121565e64f3e3bd96dd935452037 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 23 Mar 2018 09:41:04 +0100 Subject: [PATCH 18/24] Changed PrusaResearch.ini. *(Uncommented "printer_model","printer_vendor", "printer_variant", "default_filament_profile") * Added msg "It's system preset" to Dependencies --- resources/profiles/PrusaResearch.ini | 32 ++++++++++++++-------------- xs/src/slic3r/GUI/Tab.cpp | 12 ++++++----- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 43d2ecbd1..fa4d48cda 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -909,10 +909,10 @@ use_volumetric_e = 0 variable_layer_height = 1 wipe = 1 z_offset = 0 -#printer_model = MK2S -#printer_variant = 0.4 -#default_print_profile = 0.15mm OPTIMAL -#default_filament_profile = Prusa PLA +printer_model = MK2S +printer_variant = 0.4 +default_print_profile = 0.15mm OPTIMAL +default_filament_profile = Prusa PLA [printer:*multimaterial*] inherits = *common* @@ -928,7 +928,7 @@ retract_restart_extra = 0 retract_restart_extra_toolchange = 0 retract_speed = 80 single_extruder_multi_material = 1 -#printer_model = MK2SMM +printer_model = MK2SMM [printer:*mm-single*] inherits = *multimaterial* @@ -956,15 +956,15 @@ nozzle_diameter = 0.25 retract_length = 1 retract_speed = 50 variable_layer_height = 0 -#printer_variant = 0.25 -#default_print_profile = 0.10mm DETAIL 0.25 nozzle +printer_variant = 0.25 +default_print_profile = 0.10mm DETAIL 0.25 nozzle [printer:Original Prusa i3 MK2 0.6 nozzle] inherits = *common* max_layer_height = 0.35 min_layer_height = 0.1 nozzle_diameter = 0.6 -#printer_variant = 0.6 +printer_variant = 0.6 [printer:Original Prusa i3 MK2 MM Single Mode] inherits = *mm-single* @@ -972,7 +972,7 @@ inherits = *mm-single* [printer:Original Prusa i3 MK2 MM Single Mode 0.6 nozzle] inherits = *mm-single* nozzle_diameter = 0.6 -#printer_variant = 0.6 +printer_variant = 0.6 [printer:Original Prusa i3 MK2 MultiMaterial] inherits = *mm-multi* @@ -981,7 +981,7 @@ nozzle_diameter = 0.4,0.4,0.4,0.4 [printer:Original Prusa i3 MK2 MultiMaterial 0.6 nozzle] inherits = *mm-multi* nozzle_diameter = 0.6,0.6,0.6,0.6 -#printer_variant = 0.6 +printer_variant = 0.6 [printer:Original Prusa i3 MK3] inherits = *common* @@ -989,8 +989,8 @@ end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -#printer_model = MK3 -#default_print_profile = 0.15mm OPTIMAL MK3 +printer_model = MK3 +default_print_profile = 0.15mm OPTIMAL MK3 [printer:Original Prusa i3 MK3 0.25 nozzle] inherits = *common* @@ -999,8 +999,8 @@ end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -#printer_model = MK3 -#default_print_profile = 0.10mm DETAIL MK3 +printer_model = MK3 +default_print_profile = 0.10mm DETAIL MK3 [printer:Original Prusa i3 MK3 0.6 nozzle] inherits = *common* @@ -1009,8 +1009,8 @@ end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -#printer_model = MK3 -#default_print_profile = 0.15mm OPTIMAL MK3 +printer_model = MK3 +default_print_profile = 0.15mm OPTIMAL MK3 [presets] print = 0.15mm OPTIMAL MK3 diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index 26cf74d55..ac972f9e4 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -617,6 +617,13 @@ void Tab::on_presets_changed() event.SetString(m_name); g_wxMainFrame->ProcessWindowEvent(event); } + + const Preset* parent = m_presets->get_selected_preset_parent(); + const wxString description_line = parent == nullptr ? + _(L("It's default preset")) : parent == &m_presets->get_selected_preset() ? + _(L("It's system preset")) : + _(L("Current preset is inherited from")) + ":\n" + parent->name; + m_parent_preset_description_line->SetText(description_line); } void Tab::update_frequently_changed_parameters() @@ -1727,11 +1734,6 @@ void Tab::load_current_preset() "bullet_white.png" : wxMSW ? "sys_unlock.png" : "lock_open.png"; - wxString description_line = parent == nullptr ? - _(L("It's default preset")) : - _(L("Current preset is inherited from")) + ":\n" + parent->name; - m_parent_preset_description_line->SetText(description_line); - // use CallAfter because some field triggers schedule on_change calls using CallAfter, // and we don't want them to be called after this update_dirty() as they would mark the // preset dirty again From 77f5ed68511232b62050e4f2dc827d991a759acb Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 23 Mar 2018 12:52:37 +0100 Subject: [PATCH 19/24] Fixed bugs from SPE-180 --- xs/src/libslic3r/PrintConfig.cpp | 2 +- xs/src/slic3r/GUI/Field.cpp | 3 ++- xs/src/slic3r/GUI/OptionsGroup.cpp | 5 +++-- xs/src/slic3r/GUI/Preset.cpp | 8 -------- xs/src/slic3r/GUI/Tab.cpp | 19 +++++++------------ 5 files changed, 13 insertions(+), 24 deletions(-) diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index a49124f87..657e5a452 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -1041,7 +1041,7 @@ PrintConfigDef::PrintConfigDef() def->multiline = true; def->full_width = true; def->height = 60; - def->default_value = new ConfigOptionStrings{ "" }; + def->default_value = new ConfigOptionStrings(); def = this->add("printer_model", coString); def->label = L("Printer type"); diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index 9bb5f13e5..70a8b84cf 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -404,6 +404,7 @@ void Choice::set_value(boost::any value, bool change_event) case coInt: case coFloat: case coPercent: + case coString: case coStrings:{ wxString text_value; if (m_opt.type == coInt) @@ -417,7 +418,6 @@ void Choice::set_value(boost::any value, bool change_event) break; ++idx; } -// if (m_opt.type == coPercent) text_value += "%"; idx == m_opt.enum_values.size() ? dynamic_cast(window)->SetValue(text_value) : dynamic_cast(window)->SetSelection(idx); @@ -446,6 +446,7 @@ void Choice::set_values(const std::vector values) auto ww = dynamic_cast(window); auto value = ww->GetValue(); ww->Clear(); + ww->Append(""); for (auto el : values) ww->Append(wxString(el)); ww->SetValue(value); diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index 3a97c98c7..2c055c9dd 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -406,8 +406,9 @@ boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config ret = text_value; else if (opt->gui_flags.compare("serialized") == 0){ std::vector values = config.option(opt_key)->values; - for (auto el : values) - text_value += el + ";"; + if (!values.empty() && values[0].compare("") != 0) + for (auto el : values) + text_value += el + ";"; ret = text_value; } else diff --git a/xs/src/slic3r/GUI/Preset.cpp b/xs/src/slic3r/GUI/Preset.cpp index a5ab65c9f..c437f8b41 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/xs/src/slic3r/GUI/Preset.cpp @@ -584,14 +584,6 @@ std::vector PresetCollection::system_equal_options() const std::vector equal; if (edited != nullptr && reference != nullptr) { equal = reference->config.equal(edited->config); - // The "compatible_printers" option key is handled differently from the others: - // It is not mandatory. If the key is missing, it means it is compatible with any printer. - // If the key exists and it is empty, it means it is compatible with no printer. - std::initializer_list optional_keys{ "compatible_printers", "compatible_printers_condition" }; - for (auto &opt_key : optional_keys) { - if (reference->config.has(opt_key) == edited->config.has(opt_key)) - equal.emplace_back(opt_key); - } } return equal; } diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index ac972f9e4..e15ffa8c2 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -225,11 +225,6 @@ void Tab::update_changed_ui() m_sys_options.resize(0); const auto sys_preset = m_presets->get_selected_preset_parent(); if (sys_preset){ - std::initializer_list optional_keys{"compatible_printers", "compatible_printers_condition" }; - for (auto &opt_key : optional_keys) { - if (m_config->has(opt_key) == sys_preset->config.has(opt_key)) - m_sys_options.emplace_back(opt_key); - } for (auto opt_key : m_config->keys()) { if (opt_key == "bed_shape"){ m_sys_options.emplace_back(opt_key); continue; } @@ -241,7 +236,13 @@ void Tab::update_changed_ui() case coStrings: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; case coPercents:add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; case coPoints: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; - default: m_sys_options.emplace_back(opt_key); break; + default:{ + const ConfigOption *opt_cur = tab->m_config->option(opt_key); + const ConfigOption *opt_sys = sys_preset->config.option(opt_key); + if (opt_cur != nullptr && opt_sys != nullptr && *opt_cur == *opt_sys) + m_sys_options.emplace_back(opt_key); + break; + } } } @@ -358,12 +359,6 @@ void Tab::update_full_options_list() } } m_full_options_list.emplace_back("extruders_count"); - - std::initializer_list optional_keys{ "compatible_printers", "compatible_printers_condition" }; - for (auto &opt_key : optional_keys) { - if (m_config->has(opt_key)) - m_full_options_list.emplace_back(opt_key); - } } void Tab::update_sys_ui_after_sel_preset() From e7edb512b81abab0ea9188a55d44c181a42fefee Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 23 Mar 2018 17:27:43 +0100 Subject: [PATCH 20/24] Saved bed_shape changes. *code review --- xs/src/slic3r/GUI/BedShapeDialog.cpp | 3 +- xs/src/slic3r/GUI/GUI.cpp | 7 +- xs/src/slic3r/GUI/OptionsGroup.cpp | 10 ++- xs/src/slic3r/GUI/Tab.cpp | 124 ++++++++++++--------------- 4 files changed, 71 insertions(+), 73 deletions(-) diff --git a/xs/src/slic3r/GUI/BedShapeDialog.cpp b/xs/src/slic3r/GUI/BedShapeDialog.cpp index 51dbd6a27..24d84a7df 100644 --- a/xs/src/slic3r/GUI/BedShapeDialog.cpp +++ b/xs/src/slic3r/GUI/BedShapeDialog.cpp @@ -183,7 +183,8 @@ void BedShapePanel::set_shape(ConfigOptionPoints* points) vertex_distances.push_back(distance); avg_dist += distance; } - + + avg_dist /= vertex_distances.size(); bool defined_value = true; for (auto el: vertex_distances) { diff --git a/xs/src/slic3r/GUI/GUI.cpp b/xs/src/slic3r/GUI/GUI.cpp index 4dea4965a..7e0296121 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/xs/src/slic3r/GUI/GUI.cpp @@ -428,8 +428,7 @@ void change_opt_value(DynamicPrintConfig& config, t_config_option_key opt_key, b std::vector values = boost::any_cast>(value); if (values.size() == 1 && values[0] == "") break; - for (auto el : values) - config.option(opt_key)->values.push_back(el); + config.option(opt_key)->values = values; } else{ ConfigOptionStrings* vec_new = new ConfigOptionStrings{ boost::any_cast(value) }; @@ -465,6 +464,10 @@ void change_opt_value(DynamicPrintConfig& config, t_config_option_key opt_key, b } break; case coPoints:{ + if (opt_key.compare("bed_shape") == 0){ + config.option(opt_key)->values = boost::any_cast>(value); + break; + } ConfigOptionPoints* vec_new = new ConfigOptionPoints{ boost::any_cast(value) }; config.option(opt_key)->set_at(vec_new, opt_index, 0); } diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/xs/src/slic3r/GUI/OptionsGroup.cpp index 2c055c9dd..24e1ddf2e 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/xs/src/slic3r/GUI/OptionsGroup.cpp @@ -327,8 +327,11 @@ void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, int opt_index = m_opt_map.at(opt_id).second; value = get_config_value(config, opt_short_key, opt_index); } - else + else{ value = get_config_value(config, opt_key); + change_opt_value(*m_config, opt_key, value); + return; + } set_value(opt_key, value); on_change_OG(opt_key, get_value(opt_key)); @@ -442,7 +445,10 @@ boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config } break; case coPoints: - ret = config.option(opt_key)->get_at(idx); + if (opt_key.compare("bed_shape") == 0) + ret = config.option(opt_key)->values; + else + ret = config.option(opt_key)->get_at(idx); break; case coNone: default: diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index e15ffa8c2..babff7d80 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -203,31 +203,34 @@ void Tab::update_changed_ui() if (name() == "printer"){ // Update dirty_options in case changes of Extruder's options TabPrinter* tab = static_cast(this); - std::vector new_options; + m_dirty_options.resize(0); for (auto opt_key : dirty_options) { + if (opt_key == "bed_shape"){ m_dirty_options.emplace_back(opt_key); continue; } switch (m_config->option(opt_key)->type()) { - case coInts: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; - case coBools: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; - case coFloats: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; - case coStrings: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; - case coPercents:add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; - case coPoints: add_correct_opts_to_dirty_options(opt_key, &new_options, tab); break; - default: new_options.emplace_back(opt_key); break; + case coInts: add_correct_opts_to_dirty_options(opt_key, &m_dirty_options, tab); break; + case coBools: add_correct_opts_to_dirty_options(opt_key, &m_dirty_options, tab); break; + case coFloats: add_correct_opts_to_dirty_options(opt_key, &m_dirty_options, tab); break; + case coStrings: add_correct_opts_to_dirty_options(opt_key, &m_dirty_options, tab); break; + case coPercents:add_correct_opts_to_dirty_options(opt_key, &m_dirty_options, tab); break; + case coPoints: add_correct_opts_to_dirty_options(opt_key, &m_dirty_options, tab); break; + default: m_dirty_options.emplace_back(opt_key); break; } } - dirty_options.resize(0); - dirty_options = new_options; if (tab->m_initial_extruders_count != tab->m_extruders_count) - dirty_options.emplace_back("extruders_count"); + m_dirty_options.emplace_back("extruders_count"); m_sys_options.resize(0); const auto sys_preset = m_presets->get_selected_preset_parent(); if (sys_preset){ for (auto opt_key : m_config->keys()) { - if (opt_key == "bed_shape"){ m_sys_options.emplace_back(opt_key); continue; } + if (opt_key == "bed_shape"){ + if (*tab->m_config->option(opt_key) == *sys_preset->config.option(opt_key)) + m_sys_options.emplace_back(opt_key); + continue; + } switch (m_config->option(opt_key)->type()) { case coInts: add_correct_opts_to_sys_options(opt_key, &m_sys_options, tab); break; @@ -250,67 +253,38 @@ void Tab::update_changed_ui() m_sys_options.emplace_back("extruders_count"); } } - else + else{ m_sys_options = m_presets->system_equal_options(); - - // Add new dirty options to m_dirty_options - for (auto opt_key : dirty_options){ - Field* field = get_field(opt_key); - if (field != nullptr && - find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()){ - // use bouth of temporary_icons till don't have "undo_icon" - field->m_Undo_btn->SetBitmap(wxBitmap(from_u8(wxMSW ? var("action_undo.png") : var("arrow_undo.png")), wxBITMAP_TYPE_PNG)); - field->m_is_modified_value = true; - - m_dirty_options.push_back(opt_key); - } - - if (field != nullptr && field->m_Label != nullptr){ - field->m_Label->SetForegroundColour(*get_modified_label_clr()); - field->m_Label->Refresh(true); - } + m_dirty_options = dirty_options; } - // Delete clear options from m_dirty_options - for (auto i = 0; i < m_dirty_options.size(); ++i) - { - const std::string &opt_key = m_dirty_options[i]; - Field* field = get_field(opt_key); - if (field != nullptr && find(dirty_options.begin(), dirty_options.end(), opt_key) == dirty_options.end()) - { - field->m_Undo_btn->SetBitmap(wxBitmap(from_u8(var("bullet_white.png")), wxBITMAP_TYPE_PNG)); - if (field->m_Label != nullptr){ - field->m_Label->SetForegroundColour(wxSYS_COLOUR_WINDOWTEXT); - field->m_Label->Refresh(true); - } - field->m_is_modified_value = false; - std::vector::iterator itr = find(m_dirty_options.begin(), m_dirty_options.end(), opt_key); - if (itr != m_dirty_options.end()){ - m_dirty_options.erase(itr); - --i; - } - } - } - - //update system options (colored in green) + //update options "decoration" for (const auto opt_key : m_full_options_list) { - Field* field = get_field(opt_key); - if (field == nullptr) continue; - std::string icon = wxMSW ? "sys_lock.png" : "lock.png"; + bool is_nonsys_value = false; + bool is_modified_value = true; + std::string sys_icon = wxMSW ? "sys_lock.png" : "lock.png"; + std::string icon = wxMSW ? "action_undo.png" : "arrow_undo.png"; wxColour& color = *get_sys_label_clr(); - if (find(m_sys_options.begin(), m_sys_options.end(), opt_key) != m_sys_options.end()) { - field->m_is_nonsys_value = false; - } - else { - field->m_is_nonsys_value = true; - icon = m_nonsys_btn_icon; + if (find(m_sys_options.begin(), m_sys_options.end(), opt_key) == m_sys_options.end()) { + is_nonsys_value = true; + sys_icon = m_nonsys_btn_icon; if(find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()) color = wxSYS_COLOUR_WINDOWTEXT; else color = *get_modified_label_clr(); } - field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(icon)), wxBITMAP_TYPE_PNG)); + if (find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) == m_dirty_options.end()) + { + is_modified_value = false; + icon = "bullet_white.png"; + } + Field* field = get_field(opt_key); + if (field == nullptr) continue; + field->m_is_nonsys_value = is_nonsys_value; + field->m_is_modified_value = is_modified_value; + field->m_Undo_btn->SetBitmap(wxBitmap(from_u8(var(icon)), wxBITMAP_TYPE_PNG)); + field->m_Undo_to_sys_btn->SetBitmap(wxBitmap(from_u8(var(sys_icon)), wxBITMAP_TYPE_PNG)); if (field->m_Label != nullptr){ field->m_Label->SetForegroundColour(color); field->m_Label->Refresh(true); @@ -391,10 +365,13 @@ void Tab::update_changed_tree_ui() bool sys_page = true; bool modified_page = false; if (title == _("General")){ - if (sys_page && find(m_sys_options.begin(), m_sys_options.end(), "extruders_count") == m_sys_options.end()) - sys_page = false; - if (!modified_page && find(m_dirty_options.begin(), m_dirty_options.end(), "extruders_count") != m_dirty_options.end()) - modified_page = true; + std::initializer_list optional_keys{ "extruders_count", "bed_shape" }; + for (auto &opt_key : optional_keys) { + if (sys_page && find(m_sys_options.begin(), m_sys_options.end(), opt_key) == m_sys_options.end()) + sys_page = false; + if (!modified_page && find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) != m_dirty_options.end()) + modified_page = true; + } } for (auto group : page->m_optgroups) { @@ -453,6 +430,10 @@ void Tab::on_back_to_initial_value() if (find(m_dirty_options.begin(), m_dirty_options.end(), "extruders_count") != m_dirty_options.end()) group->back_to_initial_value("extruders_count"); } + if (group->title == _("Size and coordinates")){ + if (find(m_dirty_options.begin(), m_dirty_options.end(), "bed_shape") != m_dirty_options.end()) + group->back_to_initial_value("bed_shape"); + } for (t_opt_map::iterator it = group->m_opt_map.begin(); it != group->m_opt_map.end(); ++it) { const std::string& opt_key = it->first; if (find(m_dirty_options.begin(), m_dirty_options.end(), opt_key) != m_dirty_options.end()) @@ -461,7 +442,7 @@ void Tab::on_back_to_initial_value() } break; } - + update_changed_ui(); } void Tab::on_back_to_sys_value() @@ -476,6 +457,10 @@ void Tab::on_back_to_sys_value() if (find(m_sys_options.begin(), m_sys_options.end(), "extruders_count") == m_sys_options.end()) group->back_to_sys_value("extruders_count"); } + if (group->title == _("Size and coordinates")){ + if (find(m_sys_options.begin(), m_sys_options.end(), "bed_shape") == m_sys_options.end()) + group->back_to_sys_value("bed_shape"); + } for (t_opt_map::iterator it = group->m_opt_map.begin(); it != group->m_opt_map.end(); ++it) { const std::string& opt_key = it->first; if (find(m_sys_options.begin(), m_sys_options.end(), opt_key) == m_sys_options.end()) @@ -484,6 +469,7 @@ void Tab::on_back_to_sys_value() } break; } + update_changed_ui(); } // Update the combo box label of the selected preset based on its "dirty" state, @@ -1313,8 +1299,10 @@ void TabPrinter::build() { auto dlg = new BedShapeDialog(this); dlg->build_dialog(m_config->option("bed_shape")); - if (dlg->ShowModal() == wxID_OK) + if (dlg->ShowModal() == wxID_OK){ load_key_value("bed_shape", dlg->GetValue()); + update_changed_ui(); + } })); return sizer; From 2eee3a64b77c165bd6166caf3e1a24fd32b931b9 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 4 Apr 2018 20:37:37 +0200 Subject: [PATCH 21/24] First try to fix bug with CheckBox selection if cursor is in SpinCtrl. --- xs/src/slic3r/GUI/Field.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp index e4475b3f3..e8f055aea 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/xs/src/slic3r/GUI/Field.hpp @@ -207,7 +207,7 @@ public: m_disable_change_event = false; } boost::any get_value() override { - return boost::any(dynamic_cast(window)->GetValue()); + return boost::any(tmp_value); } void enable() override { dynamic_cast(window)->Enable(); } From 28b6d222f2988d3cd7a4c2b2ae9d3e28eb3ee3f8 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 5 Apr 2018 12:12:35 +0200 Subject: [PATCH 22/24] Next try to fix bug with CheckBox selection if cursor is in SpinCtrl. --- xs/src/slic3r/GUI/Field.cpp | 4 ++-- xs/src/slic3r/GUI/Field.hpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index 70a8b84cf..36ef9098f 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -265,8 +265,8 @@ void SpinCtrl::BUILD() { auto temp = new wxSpinCtrl(m_parent, wxID_ANY, text_value, wxDefaultPosition, size, 0, min_val, max_val, default_value); - temp->Bind(wxEVT_SPINCTRL, ([this](wxCommandEvent e) { tmp_value = undef_spin_val; on_change_field(); }), temp->GetId()); - temp->Bind(wxEVT_KILL_FOCUS, ([this](wxEvent& e) { tmp_value = undef_spin_val; on_kill_focus(e); }), temp->GetId()); +// temp->Bind(wxEVT_SPINCTRL, ([this](wxCommandEvent e) { tmp_value = undef_spin_val; on_change_field(); }), temp->GetId()); +// temp->Bind(wxEVT_KILL_FOCUS, ([this](wxEvent& e) { tmp_value = undef_spin_val; on_kill_focus(e); }), temp->GetId()); temp->Bind(wxEVT_TEXT, ([this](wxCommandEvent e) { // # On OSX / Cocoa, wxSpinCtrl::GetValue() doesn't return the new value diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp index e8f055aea..da3e23ccd 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/xs/src/slic3r/GUI/Field.hpp @@ -203,7 +203,8 @@ public: } void set_value(boost::any value, bool change_event = false) { m_disable_change_event = !change_event; - dynamic_cast(window)->SetValue(boost::any_cast(value)); + tmp_value = boost::any_cast(value); + dynamic_cast(window)->SetValue(tmp_value/*boost::any_cast(value)*/); m_disable_change_event = false; } boost::any get_value() override { From 6053c8f54d362c3ac276a9e088de32025a1bc198 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 5 Apr 2018 13:52:30 +0200 Subject: [PATCH 23/24] Try to fix bug with CheckBox selection if cursor is in TextCtrl. --- xs/src/slic3r/GUI/Field.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp index 36ef9098f..fee08e27e 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/xs/src/slic3r/GUI/Field.cpp @@ -173,7 +173,8 @@ namespace Slic3r { namespace GUI { temp->Bind(wxEVT_KILL_FOCUS, ([this, temp](wxEvent& e) { - on_kill_focus(e); +// on_kill_focus(e); + e.Skip(); temp->GetToolTip()->Enable(true); }), temp->GetId()); From abe94706f69a45714541330f02c8a558e3844576 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 6 Apr 2018 13:27:51 +0200 Subject: [PATCH 24/24] Gyroid infill bug fix: abs vs std::abs --- xs/src/libslic3r/Fill/FillGyroid.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/Fill/FillGyroid.cpp b/xs/src/libslic3r/Fill/FillGyroid.cpp index a3920caab..dbe6ec896 100644 --- a/xs/src/libslic3r/Fill/FillGyroid.cpp +++ b/xs/src/libslic3r/Fill/FillGyroid.cpp @@ -65,7 +65,7 @@ static Polylines make_gyroid_waves(double gridZ, double density_adjusted, double double z_sin = sin(z); double z_cos = cos(z); Polylines result; - if (abs(z_sin) <= abs(z_cos)) { + if (std::abs(z_sin) <= std::abs(z_cos)) { // Vertical wave double x0 = M_PI * (int)((- 0.5 * M_PI) / M_PI - 1.); bool flip = ((int)(x0 / M_PI + 1.) & 1) != 0;