Merge branch 'master' into fs_svg_SPE-1517

This commit is contained in:
Filip Sykala - NTB T15p 2023-09-21 09:38:05 +02:00
commit cbcda3bd0e
29 changed files with 4825 additions and 2765 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
min_slic3r_version = 2.6.0-alpha2
1.0.0 Initial

View File

@ -0,0 +1,604 @@
# Print profiles for the Creality printers.
[vendor]
# Vendor name will be shown by the Config Wizard.
name = Cocoa Press
# Configuration version of this file. Config file will only be installed, if the config_version differs.
# This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 1.0.0
# Where to get the updates from?
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/CocoaPress/
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
# 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.
# Printer model name will be shown by the installation wizard.
# All presets starting with asterisk, for example *common*, are intermediate and they will
# not make it into the user interface.
[printer_model:Cocoa_Press]
name = Cocoa Press
variants = 0.8; 1.6
technology = FFF
bed_model = minichef_bed.stl
bed_texture = minichef_texture.svg
default_materials = Cocoa Press Chocolates;
thumbnail = CocoaPress_MiniChef.png
[print:*common*]
gcode_label_objects = 1
gcode_resolution = 0.0125
gcode_substitutions = "(;PAUSE_PRINT)(\\n|\\r\\n|\\r)(.*?)(M117)";$1$2M0;r;"Pause command allows you to get a full screen message."
output_filename_format = {input_filename_base}_{nozzle_diameter[initial_tool]}n_{print_time}_{round(total_weight)}g.gcode
notes = PRINTER_VENDOR_COCOA_PRESS\nPRINTER_MODEL_MINICHEF\nPRINTER_MATERIAL_PASTE
[print:Cocoa Press (0.5mm layerheight)]
inherit = *common*
avoid_crossing_curled_overhangs = 0
avoid_crossing_perimeters = 0
avoid_crossing_perimeters_max_detour = 0
bottom_fill_pattern = rectilinear
bottom_solid_layers = 2
bottom_solid_min_thickness = 0
bridge_acceleration = 1500
bridge_angle = 0
bridge_flow_ratio = 1
bridge_speed = 20
brim_separation = 0
brim_type = outer_only
brim_width = 0
compatible_printers =
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_COCOA_PRESS.*/ and printer_notes=~/.*PRINTER_MATERIAL_PASTE.*/ and nozzle_diameter[0]==0.8
complete_objects = 0
default_acceleration = 1500
dont_support_bridges = 1
draft_shield = disabled
elefant_foot_compensation = 0
enable_dynamic_overhang_speeds = 0
external_perimeter_acceleration = 0
external_perimeter_extrusion_width = 0
external_perimeter_speed = 25
external_perimeters_first = 0
extra_perimeters = 1
extra_perimeters_on_overhangs = 0
extruder_clearance_height = 60
extruder_clearance_radius = 65
extrusion_width = 0
fill_angle = 45
fill_density = 25%
fill_pattern = grid
first_layer_acceleration = 1500
first_layer_acceleration_over_raft = 0
first_layer_extrusion_width = 0
first_layer_height = 0.4
first_layer_speed = 15
first_layer_speed_over_raft = 30
fuzzy_skin = none
fuzzy_skin_point_dist = 0.8
fuzzy_skin_thickness = 0.3
gap_fill_enabled = 0
gap_fill_speed = 0
gcode_comments = 0
infill_acceleration = 1500
infill_anchor = 600%
infill_anchor_max = 50
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_overlap = 50%
infill_speed = 40
inherits =
interface_shells = 0
ironing = 0
ironing_flowrate = 15%
ironing_spacing = 0.1
ironing_speed = 15
ironing_type = top
layer_height = 0.5
max_print_speed = 80
max_volumetric_extrusion_rate_slope_negative = 0
max_volumetric_extrusion_rate_slope_positive = 0
max_volumetric_speed = 0
min_bead_width = 85%
min_feature_size = 25%
min_skirt_length = 0
mmu_segmented_region_max_width = 0
only_retract_when_crossing_perimeters = 0
ooze_prevention = 0
overhang_speed_0 = 15
overhang_speed_1 = 15
overhang_speed_2 = 20
overhang_speed_3 = 25
overhangs = 1
perimeter_acceleration = 1500
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_generator = arachne
perimeter_speed = 35
perimeters = 2
post_process =
print_settings_id = 0.5mm Speed2
raft_contact_distance = 0.1
raft_expansion = 1.5
raft_first_layer_density = 90%
raft_first_layer_expansion = 3
raft_layers = 0
resolution = 0
seam_position = rear
single_extruder_multi_material_priming = 1
skirt_distance = 5
skirt_height = 1
skirts = 0
slice_closing_radius = 0.049
slicing_mode = regular
small_perimeter_speed = 20
solid_infill_acceleration = 0
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0
solid_infill_speed = 40
spiral_vase = 0
staggered_inner_seams = 0
standby_temperature_delta = -5
support_material = 0
support_material_angle = 0
support_material_auto = 0
support_material_bottom_contact_distance = 0
support_material_bottom_interface_layers = -1
support_material_buildplate_only = 0
support_material_closing_radius = 2
support_material_contact_distance = 0.2
support_material_enforce_layers = 0
support_material_extruder = 0
support_material_extrusion_width = 0
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_layers = 0
support_material_interface_pattern = rectilinear
support_material_interface_spacing = 0
support_material_interface_speed = 100%
support_material_pattern = honeycomb
support_material_spacing = 5
support_material_speed = 25
support_material_style = organic
support_material_synchronize_layers = 0
support_material_threshold = 0
support_material_with_sheath = 0
support_material_xy_spacing = 50%
support_tree_angle = 40
support_tree_angle_slow = 25
support_tree_branch_diameter = 2
support_tree_branch_diameter_angle = 5
support_tree_branch_diameter_double_wall = 3
support_tree_branch_distance = 1
support_tree_tip_diameter = 0.8
support_tree_top_rate = 15%
thick_bridges = 1
thin_walls = 0
threads = 12
top_fill_pattern = rectilinear
top_infill_extrusion_width = 0
top_solid_infill_acceleration = 0
top_solid_infill_speed = 25
top_solid_layers = 5
top_solid_min_thickness = 0
travel_acceleration = 0
travel_speed = 100
travel_speed_z = 0
wall_distribution_count = 1
wall_transition_angle = 10
wall_transition_filter_deviation = 25%
wall_transition_length = 100%
wipe_tower = 0
wipe_tower_bridging = 10
wipe_tower_brim_width = 2
wipe_tower_cone_angle = 0
wipe_tower_extra_spacing = 100%
wipe_tower_extruder = 0
wipe_tower_no_sparse_layers = 0
wipe_tower_rotation_angle = 0
wipe_tower_width = 60
wipe_tower_x = 180
wipe_tower_y = 140
xy_size_compensation = 0
[print:Cocoa Press (1.0mm layerheight)]
inherit = *common*
avoid_crossing_curled_overhangs = 0
avoid_crossing_perimeters = 0
avoid_crossing_perimeters_max_detour = 0
bottom_fill_pattern = rectilinear
bottom_solid_layers = 1
bottom_solid_min_thickness = 0
bridge_acceleration = 1500
bridge_angle = 0
bridge_flow_ratio = 1
bridge_speed = 20
brim_separation = 0
brim_type = outer_only
brim_width = 0
compatible_printers =
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_COCOA_PRESS.*/ and printer_notes=~/.*PRINTER_MATERIAL_PASTE.*/ and nozzle_diameter[0]==1.6
complete_objects = 0
default_acceleration = 1500
dont_support_bridges = 1
draft_shield = disabled
elefant_foot_compensation = 0
enable_dynamic_overhang_speeds = 0
external_perimeter_acceleration = 0
external_perimeter_extrusion_width = 0
external_perimeter_speed = 25
external_perimeters_first = 0
extra_perimeters = 1
extra_perimeters_on_overhangs = 0
extruder_clearance_height = 60
extruder_clearance_radius = 65
extrusion_width = 0
fill_angle = 45
fill_density = 25%
fill_pattern = grid
first_layer_acceleration = 1500
first_layer_acceleration_over_raft = 0
first_layer_extrusion_width = 0
first_layer_height = 0.8
first_layer_speed = 15
first_layer_speed_over_raft = 30
fuzzy_skin = none
fuzzy_skin_point_dist = 0.8
fuzzy_skin_thickness = 0.3
gap_fill_enabled = 0
gap_fill_speed = 0
gcode_comments = 0
infill_acceleration = 1500
infill_anchor = 600%
infill_anchor_max = 50
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_overlap = 70%
infill_speed = 40
inherits =
interface_shells = 0
ironing = 0
ironing_flowrate = 15%
ironing_spacing = 0.1
ironing_speed = 15
ironing_type = top
layer_height = 1
max_print_speed = 80
max_volumetric_extrusion_rate_slope_negative = 0
max_volumetric_extrusion_rate_slope_positive = 0
max_volumetric_speed = 0
min_bead_width = 85%
min_feature_size = 25%
min_skirt_length = 0
mmu_segmented_region_max_width = 0
only_retract_when_crossing_perimeters = 0
ooze_prevention = 0
overhang_speed_0 = 15
overhang_speed_1 = 15
overhang_speed_2 = 20
overhang_speed_3 = 25
overhangs = 1
perimeter_acceleration = 1500
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_generator = arachne
perimeter_speed = 35
perimeters = 1
post_process =
print_settings_id = 0.5mm Speed2
raft_contact_distance = 0.1
raft_expansion = 1.5
raft_first_layer_density = 90%
raft_first_layer_expansion = 3
raft_layers = 0
resolution = 0
seam_position = rear
single_extruder_multi_material_priming = 1
skirt_distance = 5
skirt_height = 1
skirts = 0
slice_closing_radius = 0.049
slicing_mode = regular
small_perimeter_speed = 20
solid_infill_acceleration = 0
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0
solid_infill_speed = 40
spiral_vase = 0
staggered_inner_seams = 0
standby_temperature_delta = -5
support_material = 0
support_material_angle = 0
support_material_auto = 0
support_material_bottom_contact_distance = 0
support_material_bottom_interface_layers = -1
support_material_buildplate_only = 0
support_material_closing_radius = 2
support_material_contact_distance = 0.2
support_material_enforce_layers = 0
support_material_extruder = 0
support_material_extrusion_width = 0
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_layers = 0
support_material_interface_pattern = rectilinear
support_material_interface_spacing = 0
support_material_interface_speed = 100%
support_material_pattern = honeycomb
support_material_spacing = 5
support_material_speed = 25
support_material_style = grid
support_material_synchronize_layers = 0
support_material_threshold = 0
support_material_with_sheath = 0
support_material_xy_spacing = 50%
support_tree_angle = 40
support_tree_angle_slow = 25
support_tree_branch_diameter = 2
support_tree_branch_diameter_angle = 5
support_tree_branch_diameter_double_wall = 3
support_tree_branch_distance = 1
support_tree_tip_diameter = 0.8
support_tree_top_rate = 15%
thick_bridges = 1
thin_walls = 0
threads = 12
top_fill_pattern = rectilinear
top_infill_extrusion_width = 0
top_solid_infill_acceleration = 0
top_solid_infill_speed = 25
top_solid_layers = 3
top_solid_min_thickness = 0
travel_acceleration = 0
travel_speed = 100
travel_speed_z = 0
wall_distribution_count = 1
wall_transition_angle = 10
wall_transition_filter_deviation = 25%
wall_transition_length = 100%
wipe_tower = 0
wipe_tower_bridging = 10
wipe_tower_brim_width = 2
wipe_tower_cone_angle = 0
wipe_tower_extra_spacing = 100%
wipe_tower_extruder = 0
wipe_tower_no_sparse_layers = 0
wipe_tower_rotation_angle = 0
wipe_tower_width = 60
wipe_tower_x = 180
wipe_tower_y = 140
xy_size_compensation = 0
[filament:*common*]
bed_temperature = 0
bridge_fan_speed = 0
cooling = 0
disable_fan_first_layers = 3
enable_dynamic_fan_speeds = 0
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 = #7B3E00
filament_cooling_final_speed = 3.4
filament_cooling_initial_speed = 2.2
filament_cooling_moves = 4
filament_cost = 70
filament_density = 1.2912
filament_deretract_speed = nil
filament_diameter = 22.66
filament_load_time = 0
filament_loading_speed = 28
filament_loading_speed_start = 3
filament_max_volumetric_speed = 0
filament_minimal_purge_on_wipe_tower = 15
filament_notes = ""
filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
filament_retract_before_travel = nil
filament_retract_before_wipe = nil
filament_retract_layer_change = nil
filament_retract_length = nil
filament_retract_lift = nil
filament_retract_lift_above = nil
filament_retract_lift_below = nil
filament_retract_restart_extra = nil
filament_retract_speed = nil
filament_soluble = 0
filament_spool_weight = 0
filament_toolchange_delay = 0
filament_unload_time = 0
filament_unloading_speed = 90
filament_unloading_speed_start = 100
filament_vendor = Cocoa Press
filament_wipe = 1
first_layer_bed_temperature = 0
first_layer_temperature = 0
full_fan_speed_layer = 0
idle_temperature = nil
max_fan_speed = 100
min_fan_speed = 35
min_print_speed = 10
overhang_fan_speed_0 = 0
overhang_fan_speed_1 = 0
overhang_fan_speed_2 = 0
overhang_fan_speed_3 = 0
slowdown_below_layer_time = 5
start_filament_gcode = "; Filament gcode\n"
[filament:Cocoa Press Chocolates]
inherits = *common*
temperature = 0
filament_vendor = Cocoa Press
filament_settings_id = "Cocoa Press Chocolate"
filament_type = CHOCOLATE
compatible_printers =
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_COCOA_PRESS.*/
[printer:*0.8mm*]
printer_variant = 0.8
default_print_profile = 0.5
autoemit_temperature_commands = 0
bed_shape = 0x0,140x0,140x150,0x150
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n\n
between_objects_gcode =
color_change_gcode = ;G1 E-.05 F900\n;G1 X2.5 Y2.5 F4500 ;Move to the side\nM25 load new chocolate ;pause for user\n;G1 E.06 F900\n;G1 X2.6 Y2.6 F4500
cooling_tube_length = 5
cooling_tube_retraction = 91.5
deretract_speed = 15
end_gcode = print_end ;end script from macro\nG91 ; set to relative\nG0 Z15; ; move 15mm down\nG90 ; absolute positioning again\nG0 X70 Y145\nM84
extra_loading_move = -2
extruder_colour = #FFE3CA
extruder_offset = 0x0
high_current_on_filament_swap = 0
host_type = octoprint
layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z]
machine_limits_usage = time_estimate_only
machine_max_acceleration_e = 1500
machine_max_acceleration_extruding = 1500
machine_max_acceleration_retracting = 1500
machine_max_acceleration_travel = 1500,1250
machine_max_acceleration_x = 1500
machine_max_acceleration_y = 1500
machine_max_acceleration_z = 500
machine_max_feedrate_e = 120
machine_max_feedrate_x = 500
machine_max_feedrate_y = 500
machine_max_feedrate_z = 12
machine_max_jerk_e = 2.5
machine_max_jerk_x = 10
machine_max_jerk_y = 10
machine_max_jerk_z = 0.2
machine_min_extruding_rate = 0
machine_min_travel_rate = 0
max_layer_height = 0.8
max_print_height = 150
min_layer_height = 0.2
nozzle_diameter = 0.8
parking_pos_retraction = 92
pause_print_gcode = ; end pause print
print_host =
printer_settings_id = cocoa_press_minichef_settings_0_8
printer_technology = FFF
printer_vendor =
printhost_apikey =
printhost_cafile =
remaining_times = 0
retract_before_travel = 3
retract_before_wipe = 0%
retract_layer_change = 0
retract_length = 1
retract_length_toolchange = 10
retract_lift = 1
retract_lift_above = 0
retract_lift_below = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 15
silent_mode = 0
single_extruder_multi_material = 0
start_gcode = G21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\n\nG28 ; home all axes\nM420 S1; turn back on mesh leveling\nG92 E0 ; set extruder pos to zero\n\n; homing + loading mesh\nG29 O V4 ; try to probe mesh, but skip if already done.\n\nG1 Z1.5 F4500\n\n; Purge Line 1\n\nG1 X131.75 Y148\nG1 Z.5\nG1 E1.25 F450\nG1 X8.25 Y148 E.25 F900\n\n; Purge Line 2\n\nG1 X8.25 Y145 F900\nG1 X131.25 Y145 E.10538\nG1 X141.75 Y145
template_custom_gcode =
thumbnails = 64x64,400x300
thumbnails_format = PNG
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:*1.6mm*]
printer_variant = 1.6
autoemit_temperature_commands = 0
bed_shape = 0x0,140x0,140x150,0x150
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n\n
between_objects_gcode =
color_change_gcode = ;G1 E-.05 F900\n;G1 X2.5 Y2.5 F4500 ;Move to the side\nM25 load new chocolate ;pause for user\n;G1 E.06 F900\n;G1 X2.6 Y2.6 F4500
cooling_tube_length = 5
cooling_tube_retraction = 91.5
default_print_profile = 1.0
deretract_speed = 15
end_gcode = print_end ;end script from macro\nG91 ; set to relative\nG0 Z15; ; move 15mm down\nG90 ; absolute positioning again\nG0 X70 Y145\nM84
extra_loading_move = -2
extruder_colour = #FFE3CA
extruder_offset = 0x0
high_current_on_filament_swap = 0
host_type = octoprint
layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z]
machine_limits_usage = time_estimate_only
machine_max_acceleration_e = 1500
machine_max_acceleration_extruding = 1500
machine_max_acceleration_retracting = 1500
machine_max_acceleration_travel = 1500,1250
machine_max_acceleration_x = 1500
machine_max_acceleration_y = 1500
machine_max_acceleration_z = 500
machine_max_feedrate_e = 120
machine_max_feedrate_x = 500
machine_max_feedrate_y = 500
machine_max_feedrate_z = 12
machine_max_jerk_e = 2.5
machine_max_jerk_x = 10
machine_max_jerk_y = 10
machine_max_jerk_z = 0.2
machine_min_extruding_rate = 0
machine_min_travel_rate = 0
max_layer_height = 1.6
max_print_height = 150
min_layer_height = 0.2
nozzle_diameter = 1.6
parking_pos_retraction = 92
pause_print_gcode = ; end pause gcode
print_host =
printer_settings_id = cocoa_press_minichef_settings_1_6
printer_technology = FFF
printer_vendor =
printhost_apikey =
printhost_cafile =
remaining_times = 0
retract_before_travel = 3
retract_before_wipe = 0%
retract_layer_change = 0
retract_length = 1
retract_length_toolchange = 10
retract_lift = 1
retract_lift_above = 0
retract_lift_below = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 15
silent_mode = 0
single_extruder_multi_material = 0
start_gcode = G21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\n\nG28 ; home all axes\nM420 S1; turn back on mesh leveling\nG92 E0 ; set extruder pos to zero\n\n; homing loading mesh\nG29 O V4; try to probe mesh, but skip if already done.\n\nG1 Z1.5 F4500\n\n; Purge Line\n\nG1 X5.8 Y 145\nG1 Z1 ; small z-hop to avoid potentially big purge getting caught.\nG1 E1.25 F450\nG1 X134.2 Y145 E.44109 F900
template_custom_gcode =
thumbnails = 64x64,400x300
thumbnails_format = PNG
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:Cocoa Press0.8mm]
inherits = *common*; *0.8mm*
printer_model = Cocoa_Press
[printer:Cocoa Press1.6mm]
inherits = *common*; *1.6mm*
printer_model = Cocoa_Press
[printer:*common*]
default_filament_profile = "Cocoa Press Chocolates"
printer_notes = PRINTER_VENDOR_COCOA_PRESS\nPRINTER_MODEL_MINICHEF\nPRINTER_MATERIAL_PASTE
gcode_flavor = marlin2

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,2 +1,3 @@
min_slic3r_version = 2.6.0
0.0.2 Updated initial layer heights.
0.0.1 Initial version

View File

@ -10,7 +10,7 @@ name = LNL3D
# Configuration version of this file. Config file will only be installed, if the config_version differs.
# This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 0.0.1
config_version = 0.0.2
# Where to get the updates from?
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/LNL3D/
@ -282,7 +282,7 @@ top_solid_layers = 4
perimeters = 4
support_material_interface_spacing = 0.15
support_material_spacing = 1
first_layer_height = 0.2
first_layer_height = 0.12
extrusion_width = 0.22
external_perimeter_extrusion_width = 0.2
first_layer_extrusion_width = 0.2
@ -296,7 +296,7 @@ support_material_extrusion_width = 0.18
perimeters = 3
support_material_interface_spacing = 0.2
support_material_spacing = 1
first_layer_height = 0.2
first_layer_height = 0.24
extrusion_width = 0.44
external_perimeter_extrusion_width = 0.42
first_layer_extrusion_width = 0.42
@ -310,7 +310,7 @@ support_material_extrusion_width = 0.36
perimeters = 2
support_material_interface_spacing = 0.3
support_material_spacing = 1.2
first_layer_height = 0.3
first_layer_height = 0.36
extrusion_width = 0.66
external_perimeter_extrusion_width = 0.63
first_layer_extrusion_width = 0.63
@ -324,7 +324,7 @@ support_material_extrusion_width = 0.54
perimeters = 2
support_material_interface_spacing = 0.3
support_material_spacing = 1.2
first_layer_height = 0.3
first_layer_height = 0.48
extrusion_width = 0.88
external_perimeter_extrusion_width = 0.85
first_layer_extrusion_width = 0.85

View File

@ -1,7 +1,9 @@
min_slic3r_version = 2.6.2-alpha0
1.11.0-alpha2 Added MK3.9 and Prusa MINI Input Shaper (alpha). Enabled binary g-code, arc fitting and QOI/PNG for MINI and MINI IS.
1.11.0-alpha1 Updated ramming parameters. Updated start-gcode for XL Multi-Tool. Updated output filename format.
1.11.0-alpha0 Binary g-code, arc fitting, QOI/PNG thumbnails, 90degree XL tower, XL specific filament variants.
min_slic3r_version = 2.6.0-beta2
1.9.9 Added Original Prusa MK3.9 and Original Prusa MINI/MINI+ Input Shaper (Alpha). FW version notification (5.0.0 final with input shaper). Updated output filename format. Added additional thumbnail resolution.
1.9.8 FW version notification (MK2.5/3 family). Minor update of MK4IS profiles. Updated MK4IS thumbnail.
1.9.7 MK4 Input Shaper RC firmware notification.
1.9.6 Added filament profile for Prusament PETG V0.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -0,0 +1,400 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="Layer_1"
data-name="Layer 1"
width="180.5mm"
height="180.6mm"
viewBox="0 0 511.7 512"
version="1.1">
<metadata
id="metadata1085">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>MINI_bed_texture</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs1083" />
<title
id="title960">MINI_bed_texture</title>
<path
d="M510.6,510.9"
transform="translate(0.4 0.4)"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="path962" />
<path
d="M.4,510.9"
transform="translate(0.4 0.4)"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="path964" />
<line
x1="511"
y1="511.3"
x2="511"
y2="0.8"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="line966" />
<path
d="M.4.4"
transform="translate(0.4 0.4)"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="path968" />
<path
d="M510.6.4"
transform="translate(0.4 0.4)"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="path970" />
<line
x1="0.8"
y1="0.8"
x2="0.8"
y2="511.3"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="line972" />
<line
x1="0.8"
y1="511.3"
x2="0.8"
y2="0.8"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="line974" />
<line
x1="511"
y1="0.8"
x2="511"
y2="511.3"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="line976" />
<line
x1="0.8"
y1="511.3"
x2="511"
y2="511.3"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="line978" />
<line
x1="0.8"
y1="0.8"
x2="511"
y2="0.8"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.5px"
id="line980" />
<g
id="g1042">
<g
id="g990">
<line
x1="0.8"
y1="383.6"
x2="2.9"
y2="383.6"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line982" />
<line
x1="5"
y1="383.6"
x2="6.6"
y2="383.6"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 0.5694814920425415,2.1355555057525635"
id="line984" />
<line
x1="7.7"
y1="383.6"
x2="507.8"
y2="383.6"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 4.271111011505127,2.1355555057525635,0.5694814920425415,2.1355555057525635"
id="line986" />
<line
x1="508.9"
y1="383.6"
x2="511"
y2="383.6"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line988" />
</g>
<g
id="g1000">
<line
x1="0.8"
y1="256"
x2="2.9"
y2="256"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line992" />
<line
x1="5"
y1="256"
x2="6.6"
y2="256"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 0.5694814920425415,2.1355555057525635"
id="line994" />
<line
x1="7.7"
y1="256"
x2="507.8"
y2="256"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 4.271111011505127,2.1355555057525635,0.5694814920425415,2.1355555057525635"
id="line996" />
<line
x1="508.9"
y1="256"
x2="511"
y2="256"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line998" />
</g>
<g
id="g1010">
<line
x1="511"
y1="128.4"
x2="508.9"
y2="128.4"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1002" />
<line
x1="506.7"
y1="128.4"
x2="505.1"
y2="128.4"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 0.5694814920425415,2.1355555057525635"
id="line1004" />
<line
x1="504"
y1="128.4"
x2="3.9"
y2="128.4"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 4.271111011505127,2.1355555057525635,0.5694814920425415,2.1355555057525635"
id="line1006" />
<line
x1="2.9"
y1="128.4"
x2="0.8"
y2="128.4"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1008" />
</g>
<g
id="g1020">
<line
x1="128.3"
y1="511.3"
x2="128.3"
y2="509.1"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1012" />
<line
x1="128.3"
y1="507"
x2="128.3"
y2="505.4"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 0.569789707660675,2.1367111206054688"
id="line1014" />
<line
x1="128.3"
y1="504.3"
x2="128.3"
y2="3.9"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 4.2734222412109375,2.1367111206054688,0.569789707660675,2.1367111206054688"
id="line1016" />
<line
x1="128.3"
y1="2.9"
x2="128.3"
y2="0.8"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1018" />
</g>
<g
id="g1030">
<line
x1="255.9"
y1="0.8"
x2="255.9"
y2="2.9"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1022" />
<line
x1="255.9"
y1="5"
x2="255.9"
y2="6.7"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 0.569789707660675,2.1367111206054688"
id="line1024" />
<line
x1="255.9"
y1="7.7"
x2="255.9"
y2="508.1"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 4.2734222412109375,2.1367111206054688,0.569789707660675,2.1367111206054688"
id="line1026" />
<line
x1="255.9"
y1="509.1"
x2="255.9"
y2="511.3"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1028" />
</g>
<g
id="g1040">
<line
x1="383.4"
y1="484.8"
x2="383.4"
y2="482.6"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1032" />
<line
x1="383.4"
y1="480.5"
x2="383.4"
y2="478.9"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 0.5708136558532715,2.1405510902404785"
id="line1034" />
<line
x1="383.4"
y1="477.8"
x2="383.4"
y2="3.9"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-dasharray: 4.281102180480957,2.1405510902404785,0.5708136558532715,2.1405510902404785"
id="line1036" />
<line
x1="383.4"
y1="2.9"
x2="383.4"
y2="0.8"
style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round"
id="line1038" />
</g>
</g>
<g
id="g1078">
<path
d="M277.3,489.1c4.6,0,7.4,2.8,7.4,8.1s-2.9,8.1-7.4,8.1-7.4-2.9-7.4-8.1S272.9,489.1,277.3,489.1Zm3.7,8.1c0-3.8-1.5-5.7-3.7-5.7s-3.8,1.9-3.8,5.7,1.3,5.6,3.8,5.6S281,500.9,281,497.2Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1044" />
<path
d="M293.1,499h-2.5v6h-3.3V489.3h6.1a7.3,7.3,0,0,1,3.2.6,4.1,4.1,0,0,1,2.6,4,4.4,4.4,0,0,1-3.1,4.3h0l3.5,6.8H296Zm-.1-2.4c1.5,0,2.7-.7,2.7-2.5a2.4,2.4,0,0,0-2.7-2.5h-2.4v5Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1046" />
<path
d="M302,489.3h3.4V505H302Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1048" />
<path
d="M311.6,497.2c0,4,1.4,5.6,3.8,5.6s3.4-1.3,3.6-3.5V499h-3.7v-2.4h6.8V505h-2.6v-2.2h-.1a5,5,0,0,1-4.6,2.5c-4.4,0-6.8-3.1-6.8-7.9s3-8.3,7.4-8.3,6.1,1.7,6.4,4.9h-3.4a2.8,2.8,0,0,0-3-2.5C313,491.5,311.6,493.5,311.6,497.2Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1050" />
<path
d="M325.1,489.3h3.4V505h-3.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1052" />
<path
d="M331.7,489.3h3.7l5,8.5a16.8,16.8,0,0,1,1.2,2.3h0V489.3h3.1V505h-3.5l-5.3-8.7a12.8,12.8,0,0,1-1.1-2.4h-.1V505h-3Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1054" />
<path
d="M356.8,501.5H351l-1.1,3.5h-3.2l5.4-15.7h3.8l5.6,15.7h-3.6Zm-3.5-7.1-1.5,4.6H356l-1.5-4.5c-.4-1.4-.6-2.3-.6-2.3h0A15.3,15.3,0,0,1,353.3,494.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1056" />
<path
d="M363.4,489.3h3.4v13h6.8V505H363.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1058" />
<path
d="M384,499.6V505h-3.4V489.3h5.5c3.4,0,6,1.4,6,5s-2.8,5.3-6.3,5.3Zm2-2.5a2.5,2.5,0,0,0,2.8-2.7c0-1.9-1.1-2.7-2.8-2.7h-2v5.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1060" />
<path
d="M400.1,499h-2.4v6h-3.4V489.3h6.1a7.3,7.3,0,0,1,3.2.6,3.9,3.9,0,0,1,2.6,4,4.5,4.5,0,0,1-3,4.3h0l3.5,6.8H403Zm-.1-2.4c1.5,0,2.8-.7,2.8-2.5a2.4,2.4,0,0,0-2.7-2.5h-2.4v5Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1062" />
<path
d="M408.7,489.3H412v9.1a5.6,5.6,0,0,0,.6,3.2,3.6,3.6,0,0,0,5,0c.6-.8.5-2.1.5-3.2v-9.1h3.3v10.2c0,3.9-2.5,5.8-6.4,5.8s-6.3-1.8-6.3-5.8Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1064" />
<path
d="M432.4,493.5a2,2,0,0,0-2.3-2c-1.5,0-2.4.8-2.4,1.9s.6,1.7,2.1,1.9l2.4.5c2.8.5,4.1,2,4.1,4.3s-2.3,5.2-6.3,5.2-6.1-1.9-6.2-4.8h3.5a2.5,2.5,0,0,0,2.8,2.3c1.9,0,2.7-.9,2.7-2.1s-.5-1.7-2.2-2l-2.3-.4c-2.4-.5-4.1-1.9-4.1-4.4s2.2-4.8,5.9-4.8,5.7,2,5.8,4.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1066" />
<path
d="M447.4,501.5h-5.7l-1.2,3.5h-3.2l5.5-15.7h3.7l5.6,15.7h-3.5Zm-3.5-7.1-1.4,4.6h4.1l-1.4-4.5a11.3,11.3,0,0,1-.6-2.3h-.1A15.3,15.3,0,0,1,443.9,494.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1068" />
<path
d="M458.7,489.3h4.9l2.8,8.4a15.7,15.7,0,0,1,.7,2.3h0l.7-2.3,2.8-8.4h4.9V505h-3.3V492.7h-.1a26.9,26.9,0,0,1-1,3.3l-2.9,9h-2.5l-2.9-9a26.9,26.9,0,0,1-1-3.3h0V505h-3.1Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1070" />
<path
d="M478.6,489.3H482V505h-3.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1072" />
<path
d="M485.2,489.3h3.7l5,8.5a16.8,16.8,0,0,1,1.2,2.3h0V489.3h3.1V505h-3.5l-5.3-8.7a12.8,12.8,0,0,1-1.1-2.4h-.1V505h-3Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1074" />
<path
d="M501.3,489.3h3.4V505h-3.4Z"
transform="translate(0.4 0.4)"
style="fill: #fff"
id="path1076" />
</g>
<rect
x="270.34909"
y="469.54761"
width="41.180065"
height="15.751938"
style="fill:#ff3c00;stroke-width:0.750092"
id="rect1336" />
<g
id="g1348"
transform="matrix(0.75009226,0,0,0.75009226,-18.88648,72.823744)">
<path
d="m 401.3,545.4 c 0,0.2 0,0.4 -0.2,0.4 h -2 c -0.2,0 -0.4,0 -0.4,-0.3 l -0.4,-1.7 h -3.2 l -0.4,1.7 c 0,0.2 -0.2,0.3 -0.4,0.3 h -2 c -0.2,0 -0.3,-0.1 -0.2,-0.4 l 3.3,-11.9 c 0,-0.2 0.2,-0.3 0.4,-0.3 h 1.7 c 0.2,0 0.3,0 0.4,0.3 l 3.3,11.9 z m -4.5,-9.2 -0.2,1.2 -0.9,4.2 h 2.2 l -0.9,-4.2 z"
style="fill:#ffffff"
id="path1338" />
<path
d="m 402.5,532.1 c 0,-0.2 0.1,-0.4 0.3,-0.4 h 1.8 c 0.2,0 0.3,0.1 0.3,0.4 v 13.3 c 0,0.2 0,0.4 -0.3,0.4 h -1.8 c -0.2,0 -0.3,-0.1 -0.3,-0.4 z"
style="fill:#ffffff"
id="path1340" />
<path
d="m 415,541.9 c 0,2.3 -1.4,4.1 -3.7,4.1 -2.3,0 -1.4,-0.5 -1.8,-1.1 v 3.9 c 0,0.2 -0.2,0.4 -0.4,0.4 h -1.7 c -0.2,0 -0.3,-0.1 -0.3,-0.4 v -13.5 c 0,-0.2 0.1,-0.4 0.3,-0.4 h 1.3 c 0.2,0 0.4,0.1 0.4,0.4 l 0.2,0.9 c 0.4,-0.8 1.1,-1.5 2.1,-1.5 2.2,0 3.6,1.9 3.6,4.1 z m -2.5,-3.2 c 0,-0.9 -0.6,-1.7 -1.5,-1.7 -0.9,0 -1.4,0.8 -1.5,1.8 v 3 c 0,1 0.6,1.9 1.5,1.9 0.9,0 1.5,-0.8 1.5,-1.7 z"
style="fill:#ffffff"
id="path1342" />
<path
d="m 422,538.6 c 0,-0.8 -0.6,-1.6 -1.5,-1.6 -0.9,0 -1.5,0.9 -1.5,1.6 v 6.8 c 0,0.2 -0.3,0.4 -0.5,0.4 h -1.7 c -0.2,0 -0.3,-0.1 -0.3,-0.4 v -13.3 c 0,-0.2 0.1,-0.4 0.3,-0.4 h 1.8 c 0.2,0 0.3,0 0.3,0.3 v 3.9 c 0.5,-0.8 1.2,-1.3 2.2,-1.3 1.9,0 3.3,1.3 3.3,4 v 6.7 c 0,0.2 -0.1,0.4 -0.3,0.4 h -1.8 c -0.2,0 -0.3,-0.1 -0.3,-0.4 v -6.8 z"
style="fill:#ffffff"
id="path1344" />
<path
d="m 426,538.8 c 0,-2.2 1.5,-4.1 3.7,-4.1 2.2,0 1.6,0.6 2,1.4 v -0.8 c 0.2,-0.2 0.3,-0.4 0.6,-0.4 h 1.3 c 0.2,0 0.3,0.1 0.3,0.4 v 10.1 c 0,0.2 -0.1,0.4 -0.3,0.4 h -1.3 c -0.2,0 -0.4,-0.1 -0.4,-0.4 v -0.9 c -0.5,0.8 -1.1,1.4 -2.2,1.4 -2.2,0 -3.7,-1.8 -3.7,-4.1 v -3.1 z m 2.5,3.2 c 0,0.9 0.6,1.7 1.5,1.7 0.9,0 1.4,-0.8 1.5,-1.8 v -3.1 c 0,-1 -0.6,-1.8 -1.5,-1.8 -0.9,0 -1.5,0.8 -1.5,1.7 z"
style="fill:#ffffff"
id="path1346" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="svg3128" xmlns="http://www.w3.org/2000/svg" width="710.1" height="596.7" viewBox="0 0 710.1 596.7">
<line id="line2794" x1=".7" y1=".7" x2=".7" y2="596" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2796" x1="142.4" y1=".7" x2="142.4" y2="595.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2798" x1="284.2" y1=".7" x2="284.2" y2="595.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2800" x1="709.4" y1="596" x2="709.4" y2=".7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2802" x1="1.2" y1="581.8" x2="709.4" y2="581.8" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2804" x1=".7" y1="596" x2="709.4" y2="596" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2806" x1="1.2" y1="440.1" x2="709.4" y2="440.1" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2808" x1="1.2" y1="298.4" x2="709.4" y2="298.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2810" x1="1.2" y1="156.6" x2="709.4" y2="156.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2812" x1="1.2" y1="14.9" x2="709.4" y2="14.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2814" x1="709.4" y1=".7" x2=".7" y2=".7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2816" x1="425.9" y1=".7" x2="425.9" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2818" x1="425.9" y1="522.6" x2="425.9" y2="595.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2820" x1="567.6" y1=".7" x2="567.6" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2822" x1="567.6" y1="522.5" x2="567.6" y2="527.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2824" x1="567.6" y1="548.6" x2="567.6" y2="595.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4px;"/>
<line id="line2826" x1="85.8" y1=".7" x2="85.8" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2828" x1="114.1" y1=".7" x2="114.1" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2830" x1="170.8" y1=".7" x2="170.8" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2832" x1="199.1" y1=".7" x2="199.1" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2834" x1="227.5" y1=".7" x2="227.5" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2836" x1="255.8" y1=".7" x2="255.8" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2838" x1="312.5" y1=".7" x2="312.5" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2840" x1="340.9" y1=".7" x2="340.9" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2842" x1="681" y1=".7" x2="681" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2844" x1="29.1" y1=".7" x2="29.1" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2846" x1="57.4" y1=".7" x2="57.4" y2="595.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2848" x1="1.5" y1="468.4" x2="709.4" y2="468.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2850" x1="1.5" y1="496.8" x2="709.4" y2="496.8" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2852" x1="1.5" y1="525.1" x2="709.4" y2="525.1" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2854" x1="1.5" y1="553.5" x2="709.4" y2="553.5" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2856" x1="1.5" y1="411.7" x2="709.4" y2="411.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2858" x1="1.5" y1="383.4" x2="709.4" y2="383.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2860" x1="1.5" y1="355" x2="709.4" y2="355" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2862" x1="1.5" y1="326.7" x2="709.4" y2="326.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2864" x1="1.5" y1="270" x2="709.4" y2="270" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2866" x1="1.5" y1="241.7" x2="709.4" y2="241.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2868" x1="1.5" y1="213.3" x2="709.4" y2="213.3" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2870" x1="1.5" y1="185" x2="709.4" y2="185" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2872" x1="1.5" y1="128.3" x2="709.4" y2="128.3" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2874" x1="1.5" y1="99.9" x2="709.4" y2="99.9" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2876" x1="1.5" y1="71.6" x2="709.4" y2="71.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2878" x1="1.5" y1="43.2" x2="709.4" y2="43.2" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2880" x1="369.2" y1=".7" x2="369.2" y2="522.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2882" x1="369.2" y1="522.6" x2="369.2" y2="595.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2884" x1="397.6" y1=".7" x2="397.6" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2886" x1="397.5" y1="522.6" x2="397.5" y2="595.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2888" x1="454.2" y1=".7" x2="454.2" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2890" x1="454.3" y1="522.6" x2="454.3" y2="595.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2892" x1="482.6" y1=".7" x2="482.6" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2894" x1="482.6" y1="522.6" x2="482.6" y2="595.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2896" x1="510.9" y1=".7" x2="510.9" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2898" x1="510.9" y1="522.6" x2="510.9" y2="595.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2900" x1="539.3" y1=".7" x2="539.3" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2902" x1="539.3" y1="522.6" x2="539.3" y2="595.6" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2904" x1="596" y1=".7" x2="596" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2906" x1="624.3" y1=".7" x2="624.3" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2908" x1="652.7" y1=".7" x2="652.7" y2="499.4" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2910" x1="652.7" y1="522.5" x2="652.7" y2="527.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2912" x1="652.6" y1="548.4" x2="652.6" y2="596" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2914" x1="624.3" y1="522.5" x2="624.3" y2="527.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2916" x1="624.3" y1="548.4" x2="624.3" y2="596" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2918" x1="596" y1="522.5" x2="596" y2="527.7" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<line id="line2920" x1="596" y1="548.4" x2="596" y2="596" style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: .4px;"/>
<path id="path3098" d="m548.6,532.1h2.1v4.8h0c.1-.2.3-.4.5-.6.2-.2.4-.3.7-.5.2-.1.5-.2.8-.3.3,0,.5-.1.8,0,.7,0,1.3.1,1.9.4.5.2,1,.6,1.4,1.1.4.5.6,1,.8,1.6.2.6.3,1.3.3,1.9,0,.6,0,1.2-.2,1.8-.2.6-.4,1.1-.7,1.6-.7,1-1.8,1.5-3,1.5-.3,0-.6,0-1,0-.3,0-.6-.1-.9-.2-.3-.1-.5-.3-.8-.5-.2-.2-.4-.5-.6-.8h0v1.3h-2v-12.9Zm7.2,8.2c0-.4,0-.8-.2-1.2-.1-.4-.3-.7-.5-1-.2-.3-.5-.6-.8-.7-.3-.2-.7-.3-1.1-.3-.8,0-1.5.3-2,.9-.5.7-.7,1.6-.7,2.4,0,.4,0,.9.2,1.3.1.4.3.7.5,1,.2.3.5.5.8.7.3.2.7.3,1.1.2.4,0,.8,0,1.2-.3.3-.2.6-.4.8-.7.2-.3.4-.7.5-1,0-.4.1-.8.1-1.2Z" style="fill: #fff;"/>
<path id="path3100" d="m558.5,535.6h2.2l2.4,7h0l2.4-7h2.1l-3.6,9.8c-.2.4-.3.8-.5,1.2-.2.4-.4.7-.6,1-.2.3-.5.5-.9.7-.4.2-.9.3-1.3.3-.5,0-1,0-1.4-.1v-1.7h.5c.2,0,.3,0,.5,0,.2,0,.4,0,.6,0,.1,0,.3-.1.4-.3.1-.1.2-.3.3-.4,0-.2.1-.4.2-.5l.2-.7-3.5-9.2Z" style="fill: #fff;"/>
<path id="path3102" d="m581.1,540.8c0,.5,0,1.1-.1,1.6,0,.5-.3,1-.6,1.4-.3.4-.8.8-1.3,1-.7.3-1.5.4-2.2.4-.6,0-1.2,0-1.7-.3-.5-.2-.9-.5-1.2-.9-.3-.4-.6-.8-.7-1.3-.1-.5-.2-1.1-.2-1.6v-.7h2.2v.7c0,.6,0,1.2.4,1.7.3.4.9.7,1.4.6.3,0,.6,0,.9-.2.2-.1.4-.3.6-.5.1-.2.2-.5.3-.8,0-.4,0-.7,0-1.1v-8.8h2.2v8.7Z" style="fill: #fff;"/>
<path id="path3104" d="m587.8,545.1c-.7,0-1.4-.1-2-.4-.6-.2-1.1-.6-1.5-1-.4-.4-.7-1-.9-1.5-.2-.6-.3-1.3-.3-2,0-.7,0-1.4.3-2,.2-.6.5-1.1.9-1.5.4-.4.9-.8,1.5-1,1.3-.5,2.7-.5,4,0,.6.2,1.1.6,1.5,1,.4.4.7,1,.9,1.5.2.6.3,1.3.3,2,0,.7,0,1.4-.3,2-.2.6-.5,1.1-.9,1.5-.4.4-.9.8-1.5,1-.6.3-1.3.4-2,.4Zm0-1.6c.4,0,.8,0,1.2-.3.3-.2.6-.4.8-.8.2-.3.4-.7.5-1.1.1-.4.2-.8.2-1.2,0-.4,0-.8-.2-1.2,0-.4-.3-.7-.5-1-.2-.3-.5-.6-.8-.8-.7-.4-1.6-.4-2.4,0-.3.2-.6.4-.8.8-.2.3-.4.6-.5,1,0,.4-.1.8-.2,1.2,0,.4,0,.8.2,1.2,0,.4.3.7.5,1.1.2.3.5.6.8.8.4.2.8.3,1.2.3h0Z" style="fill: #fff;"/>
<path id="path3106" d="m595.7,541.9c0,.5.3,1,.7,1.3.4.2.9.4,1.4.4.2,0,.4,0,.7,0,.2,0,.5,0,.7-.2.2,0,.4-.2.5-.4.3-.4.2-.9,0-1.3-.2-.2-.4-.3-.7-.4-.3-.1-.7-.2-1-.3l-1.1-.2c-.4,0-.7-.2-1.1-.3-.4-.1-.7-.3-1-.5-.3-.2-.5-.5-.6-.9-.2-.4-.3-.8-.2-1.2,0-.5.1-.9.4-1.3.2-.3.6-.6.9-.8.4-.2.8-.4,1.3-.4.4,0,.9-.1,1.3-.1.5,0,.9,0,1.4.2.4,0,.8.3,1.2.5.4.2.7.5.9.9.2.4.4.9.4,1.3h-2.1c0-.4-.3-.8-.7-1-.4-.2-.8-.3-1.2-.2-.2,0-.3,0-.5,0-.2,0-.4,0-.6.1-.2,0-.3.2-.4.3-.1.1-.2.3-.2.5,0,.2,0,.5.3.6.2.2.4.3.7.4.3.1.7.2,1,.3l1.1.2c.4,0,.7.2,1.1.3.4.1.7.3,1,.5.3.2.5.5.7.8.2.4.3.8.3,1.2,0,.5-.1,1-.4,1.4-.3.4-.6.7-1,.9-.4.2-.9.4-1.3.5-.5.1-1,.2-1.5.2-.5,0-1.1,0-1.6-.2-.5-.1-.9-.3-1.3-.6-.4-.3-.7-.6-.9-1-.2-.4-.3-.9-.3-1.4h2Z" style="fill: #fff;"/>
<path id="path3108" d="m605.1,540.8c0,.3,0,.7.2,1,0,.3.3.6.5.9.2.3.5.5.8.6.4.2.7.2,1.1.2.5,0,1.1,0,1.5-.3.4-.3.7-.7.8-1.2h1.9c0,.5-.3.9-.6,1.3-.3.4-.6.7-1,1-.4.3-.8.5-1.2.6-.5.1-1,.2-1.5.2-.7,0-1.3-.1-1.9-.4-.5-.2-1-.6-1.4-1-.4-.4-.7-1-.9-1.5-.2-.6-.3-1.3-.3-2,0-.6.1-1.3.3-1.9.2-.6.5-1.1.9-1.6.8-1,2-1.5,3.3-1.5.7,0,1.4.1,2,.5.6.3,1.1.7,1.5,1.2.4.5.7,1.1.8,1.7.2.7.2,1.3.1,2h-6.9Zm4.8-1.3c0-.3,0-.6-.2-.9-.1-.3-.3-.6-.5-.8-.2-.2-.4-.4-.7-.5-.3-.1-.6-.2-.9-.2-.3,0-.7,0-1,.2-.3.1-.5.3-.8.5-.2.2-.4.5-.5.8-.1.3-.2.7-.2,1h4.8Z" style="fill: #fff;"/>
<path id="path3110" d="m612.6,535.6h1.5v-.8c0-.5,0-1,.2-1.4.1-.3.3-.6.6-.8.2-.2.5-.3.8-.4.3,0,.7-.1,1,0,.5,0,.9,0,1.4,0v1.6c-.1,0-.3,0-.4,0h-.5c-.3,0-.5,0-.7.2-.2.2-.3.5-.3.8v1h1.7v1.5h-1.7v7.8h-2v-7.8h-1.5v-1.5Z" style="fill: #fff;"/>
<path id="path3112" d="m624.5,532.1h5.7c.8,0,1.5.1,2.2.4.5.2,1,.6,1.3,1,.3.4.5.8.6,1.3.1.4.2.9.2,1.3,0,.4,0,.9-.2,1.3-.1.5-.3.9-.6,1.3-.4.4-.8.8-1.3,1-.7.3-1.5.4-2.2.4h-3.4v4.9h-2.2v-12.9Zm2.2,6.1h3.3c.3,0,.5,0,.8-.1.3,0,.5-.2.7-.3.2-.2.4-.4.5-.7.1-.3.2-.7.2-1,0-.3,0-.7-.2-1-.2-.5-.7-.9-1.2-1-.3,0-.6,0-.8,0h-3.3v4.2Z" style="fill: #fff;"/>
<path id="path3114" d="m636.2,535.6h1.9v1.8h0c0-.3.2-.5.4-.7.2-.2.4-.5.6-.7.2-.2.5-.4.8-.5.3-.1.6-.2.9-.2h.8v2h-.4c-.1,0-.3,0-.5,0-.7,0-1.3.3-1.8.8-.2.3-.4.6-.5,1-.1.4-.2.9-.2,1.4v4.4h-2v-9.3Z" style="fill: #fff;"/>
<path id="path3116" d="m650.7,544.9h-2v-1.3h0c-.3.5-.7.9-1.1,1.1-.5.3-1,.4-1.5.4-1,0-1.9-.2-2.7-.9-.6-.8-.9-1.8-.8-2.7v-5.9h2v5.7c0,.6.1,1.2.5,1.7.3.3.8.5,1.3.5.4,0,.7,0,1.1-.2.3-.1.5-.3.7-.5.2-.2.3-.5.4-.8,0-.3.1-.7.1-1v-5.4h2v9.3Z" style="fill: #fff;"/>
<path id="path3118" d="m654.4,541.9c0,.5.3,1,.7,1.2.4.2.9.4,1.4.4.2,0,.4,0,.7,0,.2,0,.5,0,.7-.2.2,0,.4-.2.5-.4.1-.2.2-.4.2-.6,0-.2-.1-.5-.3-.7-.2-.2-.4-.3-.7-.4-.3-.1-.7-.2-1-.3l-1.1-.2c-.4,0-.7-.2-1.1-.3-.4-.1-.7-.3-1-.5-.3-.2-.5-.5-.7-.8-.2-.4-.3-.8-.3-1.2,0-.5.1-.9.4-1.3.2-.3.6-.6.9-.8.4-.2.8-.4,1.3-.4.4,0,.9-.1,1.3-.1.5,0,.9,0,1.4.2.4.1.8.3,1.2.5.4.2.7.5.9.9.2.4.4.9.4,1.3h-2.1c0-.4-.3-.8-.7-1-.4-.2-.8-.3-1.2-.2-.2,0-.3,0-.5,0-.2,0-.4,0-.5.1-.2,0-.3.2-.4.3-.1.1-.2.3-.2.5,0,.2,0,.5.3.6.2.2.4.3.7.4.3.1.7.2,1,.3l1.1.2c.4,0,.7.2,1.1.3.4.1.7.3,1,.5.3.2.5.5.7.8.2.4.3.8.3,1.2,0,.5-.1,1-.4,1.4-.3.4-.6.7-1,.9-.4.2-.9.4-1.3.5-.5.1-1,.2-1.5.2-.6,0-1.1,0-1.6-.2-.5-.1-.9-.3-1.3-.6-.4-.3-.7-.6-.9-1-.2-.4-.3-.9-.3-1.4h2.1Z" style="fill: #fff;"/>
<path id="path3120" d="m670,542.8c0,.2,0,.4,0,.5,0,.1.2.2.4.2h.5v1.4h-.3c0,0-.3.2-.3.2h-.4c-.1,0-.2,0-.3,0-.3,0-.7,0-1-.2-.3-.2-.5-.5-.5-.9-.4.4-.9.7-1.5.9-.6.2-1.1.3-1.7.3-.4,0-.8,0-1.2-.2-.4-.1-.7-.3-1-.5-.3-.2-.5-.5-.7-.8-.2-.4-.3-.8-.3-1.2,0-.5,0-1,.3-1.4.2-.3.5-.6.8-.8.4-.2.7-.4,1.2-.4.4,0,.9-.2,1.3-.2.3,0,.7-.1,1.1-.2.3,0,.6,0,.9-.2.2,0,.4-.2.6-.3.2-.2.2-.4.2-.7,0-.2,0-.5-.2-.7-.1-.2-.3-.3-.5-.4-.2,0-.4-.2-.6-.2-.2,0-.4,0-.7,0-.5,0-1,.1-1.4.4-.4.3-.6.7-.6,1.1h-2c0-.5.2-1,.4-1.5.3-.4.6-.7,1-1,.4-.2.9-.4,1.3-.5.5-.1,1-.2,1.5-.2.5,0,.9,0,1.3.2.4,0,.8.2,1.2.5.3.2.6.5.8.8.2.4.3.8.3,1.2v4.8Zm-2.1-2.6c-.3.2-.7.3-1.2.4-.5,0-.9.1-1.4.2-.2,0-.4,0-.6.2-.2,0-.4.1-.5.3-.2.1-.3.3-.4.5,0,.2-.1.4-.1.7,0,.2,0,.4.2.6.1.2.3.3.5.4.2,0,.4.2.6.2.2,0,.4,0,.6,0,.2,0,.5,0,.7,0,.3,0,.5-.2.8-.3.2-.1.4-.3.6-.5.2-.2.2-.5.2-.8v-1.5Z" style="fill: #fff;"/>
<g>
<path d="m596.7,502.2h5.6l3.2,9.6c.5,1.5.8,2.6.8,2.6h0s.3-1.1.8-2.6l3.2-9.6h5.6v17.8h-3.8v-14h0s-.4,1.7-1.1,3.8l-3.4,10.2h-2.9l-3.4-10.2c-.7-2.1-1.1-3.8-1.1-3.8h0v13.9h-3.5v-17.8Z" style="fill: #ed6b21;"/>
<path d="m623.3,520.1h-3.8v-17.8h3.8v7.9l6.5-7.9h4.3l-6.4,7.5,6.7,10.4h-4.4l-4.9-7.5-1.8,2.1v5.4Z" style="fill: #ed6b21;"/>
<path d="m641,512.6v-2.6h1.2c1.5,0,2.5-.9,2.5-2.4s-1.1-2.3-2.4-2.3-2.5,1-2.6,2.5h-3.6c0-2.6,1.8-5.3,6.3-5.3s6,2.1,6,4.6-1.1,3.3-2.9,3.9h0c2,.5,3.4,1.9,3.4,4.2s-2.2,5.1-6.5,5.1-6.4-2.6-6.5-5.4h3.8c.2,1.7,1.3,2.5,2.7,2.5s2.7-1,2.7-2.5-1-2.5-2.7-2.5h-1.5Z" style="fill: #ed6b21;"/>
<path d="m651.1,516.4h4v3.7h-4v-3.7Z" style="fill: #ed6b21;"/>
<path d="m661.2,515.9c.2,1.2,1.2,1.8,2.4,1.8,2.1,0,3.2-2,3.3-5.7h0c-.7,1.2-2.1,2-3.9,2-2.8,0-5.5-1.9-5.5-5.5s2.4-5.9,6.6-5.9,6.7,2.7,6.7,8.4-2.9,9.5-7.2,9.5-5.4-1.8-5.7-4.5h3.4Zm0-7.5c0,1.9,1.3,2.9,2.7,2.9s2.7-1,2.7-2.9-1.4-2.9-2.7-2.9-2.7.9-2.7,2.9Z" style="fill: #ed6b21;"/>
</g>
<g>
<path d="m385.6,511.3c0-1.3.2-2.6.6-3.7s1-2.1,1.7-3c.7-.9,1.7-1.5,2.8-2,1.1-.5,2.3-.7,3.7-.7s2.6.2,3.7.7c1.1.5,2,1.2,2.8,2s1.3,1.8,1.7,3,.6,2.4.6,3.7-.2,2.5-.6,3.6-1,2.1-1.7,2.9c-.7.8-1.7,1.5-2.8,2-1.1.5-2.3.7-3.7.7s-2.6-.2-3.7-.7c-1.1-.5-2-1.1-2.8-2-.7-.8-1.3-1.8-1.7-2.9-.4-1.1-.6-2.3-.6-3.6Zm3.9,0c0,.7.1,1.5.3,2.2.2.7.4,1.3.9,1.9.4.6.9,1,1.5,1.4s1.4.5,2.2.5,1.6-.2,2.2-.5,1.1-.8,1.5-1.4c.4-.6.6-1.2.9-1.9.2-.7.3-1.4.3-2.2s-.1-1.5-.3-2.3c-.2-.7-.4-1.4-.9-1.9-.4-.6-.9-1-1.5-1.4-.6-.3-1.4-.5-2.2-.5s-1.6.2-2.2.5c-.6.3-1.1.8-1.5,1.4s-.6,1.2-.9,1.9c-.2.7-.3,1.5-.3,2.3Z" style="fill: #959998;"/>
<path d="m404.8,502.3h9.6c.8,0,1.5.1,2.1.4.6.3,1.2.6,1.6,1.1.4.4.8,1,1.1,1.6.2.6.4,1.2.4,1.9,0,1.1-.2,1.9-.6,2.7-.4.7-1.2,1.4-2.1,1.7h0c.5.2.9.4,1.2.6s.6.6.8,1c.2.4.3.8.4,1.2s.2.9.2,1.3,0,.6,0,1,0,.8.1,1.2c0,.4.1.8.2,1.1.1.4.2.7.4.9h-3.9c-.1-.3-.2-.6-.3-.9,0-.3-.1-.7-.1-1.1s0-.7-.1-1.2c0-.4,0-.7-.1-1.1-.1-.9-.4-1.6-.9-2s-1.1-.6-2.1-.6h-3.9v6.9h-3.9v-17.7Zm3.9,8.1h4.3c.9,0,1.6-.2,2-.6.4-.4.7-1.1.7-1.9s-.2-1.5-.7-1.9-1.1-.6-2-.6h-4.3v5Z" style="fill: #959998;"/>
<path d="m421.8,502.3h3.9v17.8h-3.9v-17.8Z" style="fill: #959998;"/>
<path d="m441,518.1c-.7.9-1.5,1.5-2.3,1.9s-1.7.5-2.6.5c-1.4,0-2.6-.2-3.7-.7-1.1-.5-2-1.1-2.8-2-.7-.8-1.3-1.8-1.7-2.9-.4-1.1-.6-2.3-.6-3.6s.2-2.6.6-3.7,1-2.1,1.7-3c.7-.9,1.7-1.5,2.8-2,1.1-.5,2.3-.7,3.7-.7s1.8.1,2.7.4c.9.3,1.6.7,2.3,1.2s1.3,1.2,1.7,2,.7,1.7.9,2.7h-3.7c-.2-1-.7-1.7-1.4-2.2s-1.5-.7-2.4-.7-1.6.2-2.2.5-1.1.8-1.5,1.4c-.4.6-.6,1.2-.9,1.9-.2.7-.3,1.5-.3,2.3s.1,1.5.3,2.2c.2.7.4,1.3.9,1.9.4.6.9,1,1.5,1.4.6.3,1.4.5,2.2.5,1.3,0,2.3-.3,3-1s1.1-1.6,1.3-2.9h-3.9v-2.9h7.5v9.6h-2.5l-.4-2Z" style="fill: #959998;"/>
<path d="m446.3,502.3h3.9v17.8h-3.9v-17.8Z" style="fill: #959998;"/>
<path d="m452.7,502.3h3.9l7.4,11.9h0v-11.9h3.7v17.8h-3.9l-7.4-11.9h0v11.9h-3.7v-17.8Z" style="fill: #959998;"/>
<path d="m475.1,502.3h4l6.6,17.8h-4l-1.4-3.9h-6.6l-1.4,3.9h-3.9l6.7-17.8Zm-.4,10.9h4.6l-2.2-6.5h0l-2.3,6.5Z" style="fill: #959998;"/>
<path d="m486.5,502.3h3.9v14.5h8.6v3.3h-12.6v-17.8h0Z" style="fill: #959998;"/>
</g>
<g>
<path d="m508.9,502.3h8c1.1,0,2.1.2,2.8.5s1.4.7,1.9,1.3c.5.5.9,1.2,1.1,1.8.2.7.3,1.4.3,2.1s-.1,1.4-.3,2.1-.6,1.3-1.1,1.8c-.5.5-1.1,1-1.9,1.3s-1.7.5-2.8.5h-4.1v6.4h-3.9v-17.8Zm3.9,8.4h3c.4,0,.9,0,1.3-.1.4,0,.8-.2,1.1-.4.3-.2.6-.5.7-.8.2-.3.3-.8.3-1.4s-.1-1-.3-1.4c-.2-.3-.4-.6-.7-.8-.3-.2-.7-.3-1.1-.4s-.9-.1-1.3-.1h-3v5.3Z" style="fill: #fff;"/>
<path d="m524.2,502.3h9.6c.8,0,1.5.1,2.1.4.6.3,1.2.6,1.6,1.1.4.4.8,1,1.1,1.6.2.6.4,1.2.4,1.9,0,1.1-.2,1.9-.6,2.7-.4.7-1.2,1.4-2.1,1.7h0c.5.2.9.4,1.2.6s.6.6.8,1c.2.4.3.8.4,1.2s.2.9.2,1.3,0,.6,0,1,0,.8.1,1.2c0,.4.1.8.2,1.1.1.4.2.7.4.9h-3.9c-.1-.3-.2-.6-.3-.9,0-.3-.1-.7-.1-1.1s0-.7-.1-1.2c0-.4,0-.7-.1-1.1-.1-.9-.4-1.6-.9-2s-1.1-.6-2.1-.6h-3.9v6.9h-3.9v-17.7Zm3.9,8.1h4.3c.9,0,1.5-.2,2-.6.4-.4.7-1.1.7-1.9s-.2-1.5-.7-1.9-1.1-.6-2-.6h-4.3v5Z" style="fill: #fff;"/>
<path d="m556.1,513.3c0,2.4-.7,4.2-2,5.4-1.4,1.2-3.2,1.8-5.6,1.8s-4.3-.6-5.6-1.8c-1.3-1.2-2-3-2-5.4v-11.1h3.9v11.1c0,.5,0,1,.1,1.4,0,.5.3.9.5,1.3.3.4.6.6,1.1.9.5.2,1.1.3,1.9.3,1.4,0,2.3-.3,2.9-.9s.8-1.6.8-2.9v-11.1h3.9v11h0Z" style="fill: #fff;"/>
<path d="m561.1,514.2c0,.6.1,1.1.3,1.5.2.4.5.7.9,1s.8.4,1.3.6,1,.2,1.5.2.7,0,1.1-.1.8-.2,1.1-.3.6-.4.9-.7c.2-.3.3-.6.3-1.1s-.2-.9-.5-1.2-.7-.5-1.2-.7c-.5-.2-1.1-.4-1.7-.5s-1.3-.3-1.9-.5c-.7-.2-1.3-.4-1.9-.6-.6-.2-1.2-.5-1.7-.9s-.9-.9-1.2-1.4c-.3-.6-.5-1.3-.5-2.1s.2-1.7.6-2.4.9-1.2,1.5-1.7,1.4-.8,2.1-1,1.6-.3,2.4-.3,1.8.1,2.7.3,1.6.5,2.3,1,1.2,1.1,1.6,1.8.6,1.6.6,2.6h-3.8c0-.5-.1-1-.3-1.3s-.4-.6-.7-.8-.7-.3-1.1-.4-.9-.1-1.3-.1-.6,0-1,.1c-.3,0-.6.2-.9.3-.3.2-.5.4-.6.6s-.2.6-.2.9,0,.6.2.9c.1.2.4.4.8.6s.9.4,1.6.5c.7.2,1.6.4,2.7.7.2,0,.5.1.9.2.3.1.7.2,1.1.4.4.2.8.4,1.2.6.4.2.7.5,1.1.9.3.4.6.8.8,1.3.2.5.3,1.1.3,1.8s-.2,1.6-.5,2.3c-.3.7-.8,1.3-1.4,1.8s-1.4.9-2.3,1.2c-.9.3-2,.4-3.2.4s-1.9-.1-2.9-.4-1.7-.6-2.4-1.2-1.3-1.2-1.7-2c-.4-.8-.6-1.7-.6-2.8h3.8Z" style="fill: #fff;"/>
<path d="m578.5,502.3h4l6.6,17.8h-4l-1.4-3.9h-6.6l-1.4,3.9h-3.9l6.7-17.8Zm-.4,10.9h4.6l-2.2-6.5h0l-2.3,6.5Z" style="fill: #fff;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -110,21 +110,21 @@ typedef struct anycubicsla_format_header
{
char tag[12];
std::uint32_t payload_size;
std::float_t pixel_size_um;
std::float_t layer_height_mm;
std::float_t exposure_time_s;
std::float_t delay_before_exposure_s;
std::float_t bottom_exposure_time_s;
std::float_t bottom_layer_count;
std::float_t lift_distance_mm;
std::float_t lift_speed_mms;
std::float_t retract_speed_mms;
std::float_t volume_ml;
float pixel_size_um;
float layer_height_mm;
float exposure_time_s;
float delay_before_exposure_s;
float bottom_exposure_time_s;
float bottom_layer_count;
float lift_distance_mm;
float lift_speed_mms;
float retract_speed_mms;
float volume_ml;
std::uint32_t antialiasing;
std::uint32_t res_x;
std::uint32_t res_y;
std::float_t weight_g;
std::float_t price;
float weight_g;
float price;
std::uint32_t price_currency;
std::uint32_t per_layer_override; // ? unknown meaning ?
std::uint32_t print_time_s;
@ -155,19 +155,19 @@ typedef struct anycubicsla_format_layer
{
std::uint32_t image_offset;
std::uint32_t image_size;
std::float_t lift_distance_mm;
std::float_t lift_speed_mms;
std::float_t exposure_time_s;
std::float_t layer_height_mm;
std::float_t layer44; // unkown - usually 0
std::float_t layer48; // unkown - usually 0
float lift_distance_mm;
float lift_speed_mms;
float exposure_time_s;
float layer_height_mm;
float layer44; // unkown - usually 0
float layer48; // unkown - usually 0
} anycubicsla_format_layer;
typedef struct anycubicsla_format_misc
{
std::float_t bottom_layer_height_mm;
std::float_t bottom_lift_distance_mm;
std::float_t bottom_lift_speed_mms;
float bottom_layer_height_mm;
float bottom_lift_distance_mm;
float bottom_lift_speed_mms;
} anycubicsla_format_misc;
@ -198,9 +198,9 @@ private:
namespace {
std::float_t get_cfg_value_f(const DynamicConfig &cfg,
float get_cfg_value_f(const DynamicConfig &cfg,
const std::string &key,
const std::float_t &def = 0.f)
const float &def = 0.f)
{
if (cfg.has(key)) {
if (auto opt = cfg.option(key))
@ -282,10 +282,10 @@ void fill_header(anycubicsla_format_header &h,
{
CNumericLocalesSetter locales_setter;
std::float_t bottle_weight_g;
std::float_t bottle_volume_ml;
std::float_t bottle_cost;
std::float_t material_density;
float bottle_weight_g;
float bottle_volume_ml;
float bottle_cost;
float material_density;
auto &cfg = print.full_print_config();
auto mat_opt = cfg.option("material_notes");
std::string mnotes = mat_opt? cfg.option("material_notes")->serialize() : "";
@ -422,7 +422,7 @@ static void anycubicsla_write_int32(std::ofstream &out, std::uint32_t val)
out.write((const char *) &i3, 1);
out.write((const char *) &i4, 1);
}
static void anycubicsla_write_float(std::ofstream &out, std::float_t val)
static void anycubicsla_write_float(std::ofstream &out, float val)
{
std::uint32_t *f = (std::uint32_t *) &val;
anycubicsla_write_int32(out, *f);

View File

@ -3075,6 +3075,8 @@ std::string GCodeGenerator::_extrude(
const bool emit_radius = m_config.arc_fitting == ArcFittingType::EmitRadius;
for (++ it; it != end; ++ it) {
Vec2d p = this->point_to_gcode_quantized(it->point);
assert(p != prev);
if (p != prev) {
// Center of the radius to be emitted into the G-code: Either by radius or by center offset.
double radius = 0;
Vec2d ij;
@ -3115,6 +3117,7 @@ std::string GCodeGenerator::_extrude(
}
prev = p;
}
}
if (m_enable_cooling_markers)
gcode += path_attr.role.is_bridge() ? ";_BRIDGE_FAN_END" : ";_EXTRUDE_END";

View File

@ -196,7 +196,7 @@ std::string get_error_string(const ThumbnailErrors& errors)
if (errors.has(ThumbnailError::OutOfRange))
error_str += "\n - Input value is out of range";
if (errors.has(ThumbnailError::InvalidExt))
error_str += "\n - Some input extention is invalid";
error_str += "\n - Some extension in the input is invalid";
return error_str;
}

View File

@ -310,7 +310,8 @@ void PrintConfigDef::init_common_params()
def = this->add("thumbnails", coString);
def->label = L("G-code thumbnails");
def->tooltip = L("Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the following format: \"XxY/EXT, XxY/EXT, ...\"");
def->tooltip = L("Picture sizes to be stored into a .gcode / .bgcode and .sl1 / .sl1s files, in the following format: \"XxY/EXT, XxY/EXT, ...\"\n"
"Currently supported extensions are PNG, QOI and JPG.");
def->mode = comExpert;
def->gui_type = ConfigOptionDef::GUIType::one_string;
def->set_default_value(new ConfigOptionString());
@ -429,8 +430,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("arc_fitting", coEnum);
def->label = L("Arc fitting");
def->tooltip = L("Enable this to get a G-code file which has G2 and G3 moves. "
"And the fitting tolerance is same with resolution");
def->tooltip = L("Enable to get a G-code file which has G2 and G3 moves. "
"G-code resolution will be used as the fitting tolerance.");
def->set_enum<ArcFittingType>({
{ "disabled", "Disabled" },
{ "emit_center", "Enabled: G2/3 I J" },
@ -442,8 +443,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("arc_fitting_tolerance", coFloatOrPercent);
def->label = L("Arc fitting tolerance");
def->sidetext = L("mm or %");
def->tooltip = L("When using the arc_fitting option, allow the curve to deviate a cetain % from the collection of strait paths.\n"
"Can be a mm value or a percentage of the current extrusion width.");
def->tooltip = L("When using the arc_fitting option, allow the curve to deviate certain % from the collection of straight paths.\n"
"Can be either a mm value or a percentage of the current extrusion width.");
def->mode = comAdvanced;
def->min = 0;
def->set_default_value(new ConfigOptionFloatOrPercent(5, true));
@ -2074,7 +2075,7 @@ void PrintConfigDef::init_fff_params()
def->label = L("Output filename format");
def->tooltip = L("You can use all configuration options as variables inside this template. "
"For example: [layer_height], [fill_density] etc. You can also use [timestamp], "
"[year], [month], [day], [hour], [minute], [second], [version], [input_filename], "
"[year], [month], [day], [hour], [minute], [second], [version], "
"[input_filename_base], [default_output_extension].");
def->full_width = true;
def->mode = comExpert;
@ -5103,6 +5104,7 @@ OtherSlicingStatesConfigDef::OtherSlicingStatesConfigDef()
def->tooltip = L("Zero-based index of the first extruder used in the print. Same as initial_tool.");
def = this->add("initial_filament_type", coString);
// TRN: Meaning 'filament type of the initial filament'
def->label = L("Initial filament type");
def->tooltip = L("String containing filament type of the first used extruder.");
@ -5145,15 +5147,15 @@ PrintStatisticsConfigDef::PrintStatisticsConfigDef()
def = this->add("total_cost", coFloat);
def->label = L("Total cost");
def->tooltip = L("Total cost of all material used in the print. Calculated from filament_cost value in Filament Settings.");
def->tooltip = L("Total cost of all material used in the print. Calculated from cost in Filament Settings.");
def = this->add("total_weight", coFloat);
def->label = L("Total weight");
def->tooltip = L("Total weight of the print. Calculated from filament_density value in Filament Settings.");
def->tooltip = L("Total weight of the print. Calculated from density in Filament Settings.");
def = this->add("total_wipe_tower_cost", coFloat);
def->label = L("Total wipe tower cost");
def->tooltip = L("Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings.");
def->tooltip = L("Total cost of the material wasted on the wipe tower. Calculated from cost in Filament Settings.");
def = this->add("total_wipe_tower_filament", coFloat);
def->label = L("Wipe tower volume");
@ -5164,7 +5166,7 @@ PrintStatisticsConfigDef::PrintStatisticsConfigDef()
def->tooltip = L("Total length of filament used in the print.");
def = this->add("total_toolchanges", coInt);
def->label = L("Total toolchanges");
def->label = L("Total number of toolchanges");
def->tooltip = L("Number of toolchanges during the print.");
def = this->add("extruded_volume_total", coFloat);
@ -5173,11 +5175,11 @@ PrintStatisticsConfigDef::PrintStatisticsConfigDef()
def = this->add("extruded_weight", coFloats);
def->label = L("Weight per extruder");
def->tooltip = L("Weight per extruder extruded during the entire print. Calculated from filament_density value in Filament Settings.");
def->tooltip = L("Weight per extruder extruded during the entire print. Calculated from density in Filament Settings.");
def = this->add("extruded_weight_total", coFloat);
def->label = L("Total weight");
def->tooltip = L("Total weight of the print. Calculated from filament_density value in Filament Settings.");
def->tooltip = L("Total weight of the print. Calculated from density in Filament Settings.");
def = this->add("total_layer_count", coInt);
def->label = L("Total layer count");

View File

@ -251,7 +251,7 @@ GLVolume::GLVolume(float r, float g, float b, float a)
void GLVolume::set_render_color(bool force_transparent)
{
bool outside = is_outside || is_below_printbed();
bool outside = is_outside || (!is_modifier && is_below_printbed());
if (force_native_color || force_neutral_color) {
if (outside && shader_outside_printer_detection_enabled)

View File

@ -9,6 +9,7 @@
#include "GUI.hpp"
#include "MainFrame.hpp"
#include "format.hpp"
#include "libslic3r/GCode/Thumbnails.hpp"
#include <wx/app.h>
#include <wx/panel.h>
@ -181,9 +182,21 @@ void BackgroundSlicingProcess::process_sla()
const std::string export_path = m_sla_print->print_statistics().finalize_output_path(m_export_path);
ThumbnailsList thumbnails = this->render_thumbnails(
ThumbnailsParams{current_print()->full_print_config().option<ConfigOptionPoints>("thumbnails")->values, true, true, true, true});
auto [thumbnails_list, errors] = GCodeThumbnails::make_and_check_thumbnail_list(current_print()->full_print_config());
if (errors != enum_bitmask<ThumbnailError>()) {
std::string error_str = format("Invalid thumbnails value:");
error_str += GCodeThumbnails::get_error_string(errors);
throw Slic3r::ExportError(error_str);
}
Vec2ds sizes;
if (!thumbnails_list.empty()) {
sizes.reserve(thumbnails_list.size());
for (const auto& [format, size] : thumbnails_list)
sizes.emplace_back(size);
}
ThumbnailsList thumbnails = this->render_thumbnails(ThumbnailsParams{sizes, true, true, true, true });
m_sla_print->export_print(export_path, thumbnails);
m_print->set_status(100, GUI::format(_L("Masked SLA file exported to %1%"), export_path));
@ -736,8 +749,21 @@ void BackgroundSlicingProcess::prepare_upload()
} else {
m_upload_job.upload_data.upload_path = m_sla_print->print_statistics().finalize_output_path(m_upload_job.upload_data.upload_path.string());
ThumbnailsList thumbnails = this->render_thumbnails(
ThumbnailsParams{current_print()->full_print_config().option<ConfigOptionPoints>("thumbnails")->values, true, true, true, true});
auto [thumbnails_list, errors] = GCodeThumbnails::make_and_check_thumbnail_list(current_print()->full_print_config());
if (errors != enum_bitmask<ThumbnailError>()) {
std::string error_str = format("Invalid thumbnails value:");
error_str += GCodeThumbnails::get_error_string(errors);
throw Slic3r::ExportError(error_str);
}
Vec2ds sizes;
if (!thumbnails_list.empty()) {
sizes.reserve(thumbnails_list.size());
for (const auto& [format, size] : thumbnails_list)
sizes.emplace_back(size);
}
ThumbnailsList thumbnails = this->render_thumbnails(ThumbnailsParams{ sizes, true, true, true, true });
m_sla_print->export_print(source_path.string(),thumbnails, m_upload_job.upload_data.upload_path.filename().string());
}

View File

@ -8,6 +8,7 @@
#include <wx/textctrl.h>
#include <wx/button.h>
#include <wx/wupdlock.h>
#include <wx/html/htmlwin.h>
#include "GUI.hpp"
#include "GUI_App.hpp"
@ -32,6 +33,7 @@ namespace GUI {
//------------------------------------------
EditGCodeDialog::EditGCodeDialog(wxWindow* parent, const std::string& key, const std::string& value) :
// TRN: This is title of a dialog. The argument is the name of the currently edited custom G-code.
DPIDialog(parent, wxID_ANY, format_wxstr(_L("Edit Custom G-code (%1%)"), key), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
{
SetFont(wxGetApp().normal_font());
@ -40,12 +42,45 @@ EditGCodeDialog::EditGCodeDialog(wxWindow* parent, const std::string& key, const
int border = 10;
int em = em_unit();
// append info line with link on printables.com
wxHtmlWindow* html_window = new wxHtmlWindow(this, wxID_ANY, wxDefaultPosition, wxSize(60 * em, 5 * em), wxHW_SCROLLBAR_NEVER);
html_window->Bind(wxEVT_HTML_LINK_CLICKED, [](wxHtmlLinkEvent& event) {
wxGetApp().open_browser_with_warning_dialog(event.GetLinkInfo().GetHref());
event.Skip(false);
});
const auto text_clr = wxGetApp().get_label_clr_default();
const auto bgr_clr_str = wxGetApp().get_html_bg_color(parent);
const auto text_clr_str = encode_color(ColorRGB(text_clr.Red(), text_clr.Green(), text_clr.Blue()));
//TRN this word-combination is a part of phraze "For more information about placeholders and its use visit our help page"
const wxString link = format_wxstr("<a href = \"%1%\">%2%</a>", "help.prusa3d.com/article/macros_1775", _L("help page"));
// TRN ConfigWizard : Downloader : %1% = "help page"
const wxString main_text = format_wxstr(_L("For more information about placeholders and its use visit our %1%."), link);
const wxFont& font = this->GetFont();
const int fs = font.GetPointSize();
int size[] = { fs,fs,fs,fs,fs,fs,fs };
html_window->SetFonts(font.GetFaceName(), font.GetFaceName(), size);
html_window->SetPage(format_wxstr(
"<html><body bgcolor=%1% link=%2%>"
"<font color=%2% size=\"3\">%3%</font>"
"</body></html>"
, bgr_clr_str
, text_clr_str
, main_text
));
wxStaticText* label_top = new wxStaticText(this, wxID_ANY, _L("Built-in placeholders (Double click item to add to G-code)") + ":");
auto* grid_sizer = new wxFlexGridSizer(1, 3, 5, 15);
grid_sizer->SetFlexibleDirection(wxBOTH);
m_params_list = new ParamsViewCtrl(this, wxSize(em * 30, em * 70));
m_params_list = new ParamsViewCtrl(this, wxSize(em * 45, em * 70));
m_params_list->SetFont(wxGetApp().code_font());
wxGetApp().UpdateDarkUI(m_params_list);
@ -58,6 +93,7 @@ EditGCodeDialog::EditGCodeDialog(wxWindow* parent, const std::string& key, const
#endif
);
m_gcode_editor->SetFont(wxGetApp().code_font());
m_gcode_editor->SetInsertionPointEnd();
wxGetApp().UpdateDarkUI(m_gcode_editor);
grid_sizer->Add(m_params_list, 1, wxEXPAND);
@ -79,6 +115,7 @@ EditGCodeDialog::EditGCodeDialog(wxWindow* parent, const std::string& key, const
wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
topSizer->Add(html_window , 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, border);
topSizer->Add(label_top , 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, border);
topSizer->Add(grid_sizer , 1, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, border);
topSizer->Add(m_param_label , 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, border);
@ -97,6 +134,13 @@ EditGCodeDialog::EditGCodeDialog(wxWindow* parent, const std::string& key, const
bind_list_and_button();
}
EditGCodeDialog::~EditGCodeDialog()
{
// To avoid redundant process of wxEVT_DATAVIEW_SELECTION_CHANGED after dialog distroing (on Linux)
// unbind this event from params_list
m_params_list->Unbind(wxEVT_DATAVIEW_SELECTION_CHANGED, &EditGCodeDialog::selection_changed, this);
}
std::string EditGCodeDialog::get_edited_gcode() const
{
return into_u8(m_gcode_editor->GetValue());
@ -175,6 +219,7 @@ void EditGCodeDialog::init_params_list(const std::string& custom_gcode_name)
// Add specific placeholders
if (!specific_params.empty()) {
// TRN: The argument is the name of currently edited custom gcode. The string starts a section of placeholders only available in this gcode.
wxDataViewItem group = m_params_list->AppendGroup(format_wxstr(_L("Specific for %1%"), custom_gcode_name), "add_gcode");
for (const auto& opt_key : specific_params)
if (custom_gcode_specific_config_def.has(opt_key)) {
@ -229,13 +274,25 @@ wxDataViewItem EditGCodeDialog::add_presets_placeholders()
void EditGCodeDialog::add_selected_value_to_gcode()
{
const wxString val = m_params_list->GetSelectedValue();
if (!val.IsEmpty())
m_gcode_editor->WriteText(val + "\n");
if (val.IsEmpty())
return;
const long pos = m_gcode_editor->GetInsertionPoint();
m_gcode_editor->WriteText(m_gcode_editor->GetInsertionPoint() == m_gcode_editor->GetLastPosition() ? "\n" + val : val);
if (val.Last() == ']') {
const long new_pos = m_gcode_editor->GetInsertionPoint();
if (val[val.Len() - 2] == '[')
m_gcode_editor->SetInsertionPoint(new_pos - 1); // set cursor into brackets
else
m_gcode_editor->SetSelection(new_pos - 17, new_pos - 1); // select "current_extruder"
}
void EditGCodeDialog::bind_list_and_button()
m_gcode_editor->SetFocus();
}
void EditGCodeDialog::selection_changed(wxDataViewEvent& evt)
{
m_params_list->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, [this](wxDataViewEvent& evt) {
wxString label;
wxString description;
@ -296,7 +353,11 @@ void EditGCodeDialog::bind_list_and_button()
m_param_description->SetLabel(description);
Layout();
});
}
void EditGCodeDialog::bind_list_and_button()
{
m_params_list->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, &EditGCodeDialog::selection_changed, this);
m_params_list->Bind(wxEVT_DATAVIEW_ITEM_ACTIVATED, [this](wxDataViewEvent& ) {
add_selected_value_to_gcode();

View File

@ -44,7 +44,7 @@ class EditGCodeDialog : public DPIDialog
public:
EditGCodeDialog(wxWindow*parent, const std::string&key, const std::string&value);
~EditGCodeDialog() {}
~EditGCodeDialog();
std::string get_edited_gcode() const;
@ -57,6 +57,8 @@ public:
protected:
void on_dpi_changed(const wxRect& suggested_rect) override;
void on_sys_color_changed() override;
void selection_changed(wxDataViewEvent& evt);
};

View File

@ -391,7 +391,7 @@ void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true
if (errors.has(ThumbnailError::InvalidExt)) {
if (!error_str.empty())
error_str += "\n\n";
error_str += _L("Some input extention is invalid");
error_str += _L("Some extension in the input is invalid");
}
show_error(m_parent, error_str);
}

View File

@ -209,7 +209,7 @@ void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt
}
break;
case coPoints:{
if (opt_key == "bed_shape" || opt_key == "thumbnails") {
if (opt_key == "bed_shape") {
config.option<ConfigOptionPoints>(opt_key)->values = boost::any_cast<std::vector<Vec2d>>(value);
break;
}

View File

@ -2562,6 +2562,7 @@ bool GLGizmoCut3D::render_angle_input(const std::string& label, float& in_val, c
m_is_slider_editing_done |= m_imgui->get_last_slider_status().deactivated_after_edit;
if (!is_approx(old_val, val)) {
if (m_imgui->get_last_slider_status().can_take_snapshot) {
// TRN: This is an entry in the Undo/Redo stack. The whole line will be 'Edited: (name of whatever was edited)'.
Plater::TakeSnapshot snapshot(wxGetApp().plater(), format_wxstr("%1%: %2%", _L("Edited"), label), UndoRedo::SnapshotType::GizmoAction);
m_imgui->get_last_slider_status().invalidate_snapshot();
if (m_mode == size_t(CutMode::cutTongueAndGroove))

View File

@ -1155,6 +1155,30 @@ static const wxString sep = " - ";
static const wxString sep_space = "";
#endif
static void append_about_menu_item(wxMenu* target_menu, int insert_pos = wxNOT_FOUND)
{
if (wxGetApp().is_editor())
append_menu_item(target_menu, wxID_ANY, wxString::Format(_L("&About %s"), SLIC3R_APP_NAME), _L("Show about dialog"),
[](wxCommandEvent&) { Slic3r::GUI::about(); }, nullptr, nullptr, []() {return true; }, nullptr, insert_pos);
else
append_menu_item(target_menu, wxID_ANY, wxString::Format(_L("&About %s"), GCODEVIEWER_APP_NAME), _L("Show about dialog"),
[](wxCommandEvent&) { Slic3r::GUI::about(); }, nullptr, nullptr, []() {return true; }, nullptr, insert_pos);
}
#ifdef __APPLE__
static void init_macos_application_menu(wxMenuBar* menu_bar, MainFrame* main_frame)
{
wxMenu* apple_menu = menu_bar->OSXGetAppleMenu();
if (apple_menu != nullptr) {
append_about_menu_item(apple_menu, 0);
// This fixes a bug on macOS where the quit command doesn't emit window close events.
// wx bug: https://trac.wxwidgets.org/ticket/18328
apple_menu->Bind(wxEVT_MENU, [main_frame](wxCommandEvent&) { main_frame->Close(); }, wxID_EXIT);
}
}
#endif // __APPLE__
static wxMenu* generate_help_menu()
{
wxMenu* helpMenu = new wxMenu();
@ -1189,12 +1213,9 @@ static wxMenu* generate_help_menu()
[](wxCommandEvent&) { Slic3r::GUI::desktop_open_datadir_folder(); });
append_menu_item(helpMenu, wxID_ANY, _L("Report an I&ssue"), wxString::Format(_L("Report an issue on %s"), SLIC3R_APP_NAME),
[](wxCommandEvent&) { wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/slic3r/issues/new", nullptr, false); });
if (wxGetApp().is_editor())
append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("&About %s"), SLIC3R_APP_NAME), _L("Show about dialog"),
[](wxCommandEvent&) { Slic3r::GUI::about(); });
else
append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("&About %s"), GCODEVIEWER_APP_NAME), _L("Show about dialog"),
[](wxCommandEvent&) { Slic3r::GUI::about(); });
#ifndef __APPLE__
append_about_menu_item(helpMenu);
#endif // __APPLE__
append_menu_item(helpMenu, wxID_ANY, _L("Show Tip of the Day")
#if 0//debug
+ "\tCtrl+Shift+T"
@ -1594,14 +1615,7 @@ void MainFrame::init_menubar_as_editor()
#endif
#ifdef __APPLE__
// This fixes a bug on Mac OS where the quit command doesn't emit window close events
// wx bug: https://trac.wxwidgets.org/ticket/18328
wxMenu* apple_menu = m_menubar->OSXGetAppleMenu();
if (apple_menu != nullptr) {
apple_menu->Bind(wxEVT_MENU, [this](wxCommandEvent &) {
Close();
}, wxID_EXIT);
}
init_macos_application_menu(m_menubar, this);
#endif // __APPLE__
if (plater()->printer_technology() == ptSLA)
@ -1652,10 +1666,10 @@ void MainFrame::init_menubar_as_gcodeviewer()
"", nullptr, [this]() { return !m_plater->get_last_loaded_gcode().empty(); }, this);
#endif // __APPLE__
fileMenu->AppendSeparator();
append_menu_item(fileMenu, wxID_ANY, _L("Convert ascii G-code to &binary") + dots, _L("Convert a G-code file from ascii to binary format"),
append_menu_item(fileMenu, wxID_ANY, _L("Convert ASCII G-code to &binary") + dots, _L("Convert a G-code file from ASCII to binary format"),
[this](wxCommandEvent&) { if (m_plater != nullptr) m_plater->convert_gcode_to_binary(); }, "convert_file", nullptr,
[]() { return true; }, this);
append_menu_item(fileMenu, wxID_ANY, _L("Convert binary G-code to &ascii") + dots, _L("Convert a G-code file from binary to ascii format"),
append_menu_item(fileMenu, wxID_ANY, _L("Convert binary G-code to &ASCII") + dots, _L("Convert a G-code file from binary to ASCII format"),
[this](wxCommandEvent&) { if (m_plater != nullptr) m_plater->convert_gcode_to_ascii(); }, "convert_file", nullptr,
[]() { return true; }, this);
fileMenu->AppendSeparator();
@ -1693,14 +1707,7 @@ void MainFrame::init_menubar_as_gcodeviewer()
SetMenuBar(m_menubar);
#ifdef __APPLE__
// This fixes a bug on Mac OS where the quit command doesn't emit window close events
// wx bug: https://trac.wxwidgets.org/ticket/18328
wxMenu* apple_menu = m_menubar->OSXGetAppleMenu();
if (apple_menu != nullptr) {
apple_menu->Bind(wxEVT_MENU, [this](wxCommandEvent&) {
Close();
}, wxID_EXIT);
}
init_macos_application_menu(m_menubar, this);
#endif // __APPLE__
}

View File

@ -2717,7 +2717,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
"Instead of considering them as multiple objects, should \n"
"the file be loaded as a single object having multiple parts?") + "\n",
_L("Multi-part object detected"), wxICON_QUESTION | wxYES_NO);
dlg.ShowCheckBox(_L("Apply to all multiple objects being loaded."));
dlg.ShowCheckBox(_L("Apply to all objects being loaded."));
int answer = dlg.ShowModal();
if (dlg.IsCheckBoxChecked())
answer_consider_as_multi_part_objects = answer;
@ -5551,7 +5551,7 @@ void Plater::convert_gcode_to_ascii()
using namespace bgcode::core;
EResult res = bgcode::convert::from_binary_to_ascii(*in_file.f, *out_file.f, true);
if (res != EResult::Success) {
MessageDialog msg_dlg(this, _L(std::string(translate_result(res))), _L("Error converting gcode file"), wxICON_INFORMATION | wxOK);
MessageDialog msg_dlg(this, _L(std::string(translate_result(res))), _L("Error converting G-code file"), wxICON_INFORMATION | wxOK);
msg_dlg.ShowModal();
out_file.close();
boost::nowide::remove(output_file.c_str());
@ -5559,7 +5559,8 @@ void Plater::convert_gcode_to_ascii()
}
}
MessageDialog msg_dlg(this, _L("Succesfully created gcode ascii file \n") + output_file, _L("Convert gcode file to ascii format"), wxICON_ERROR | wxOK);
MessageDialog msg_dlg(this, Slic3r::GUI::format_wxstr("%1%\n%2%", _L("Successfully created G-code ASCII file"), output_file),
_L("Convert G-code file to ASCII format"), wxICON_ERROR | wxOK);
msg_dlg.ShowModal();
}
@ -5603,7 +5604,7 @@ void Plater::convert_gcode_to_binary()
const bgcode::binarize::BinarizerConfig& binarizer_config = GCodeProcessor::get_binarizer_config();
EResult res = bgcode::convert::from_ascii_to_binary(*in_file.f, *out_file.f, binarizer_config);
if (res != EResult::Success) {
MessageDialog msg_dlg(this, _L(std::string(translate_result(res))), _L("Error converting gcode file"), wxICON_INFORMATION | wxOK);
MessageDialog msg_dlg(this, _L(std::string(translate_result(res))), _L("Error converting G-code file"), wxICON_INFORMATION | wxOK);
msg_dlg.ShowModal();
out_file.close();
boost::nowide::remove(output_file.c_str());
@ -5611,7 +5612,8 @@ void Plater::convert_gcode_to_binary()
}
}
MessageDialog msg_dlg(this, _L("Succesfully created gcode binary file \n") + output_file, _L("Convert gcode file to binary format"), wxICON_ERROR | wxOK);
MessageDialog msg_dlg(this, Slic3r::GUI::format_wxstr("%1%\n%2%", _L("Successfully created G-code binary file"), output_file),
_L("Convert G-code file to binary format"), wxICON_ERROR | wxOK);
msg_dlg.ShowModal();
}
@ -5848,6 +5850,7 @@ bool Plater::preview_zip_archive(const boost::filesystem::path& archive_path)
// Decompress action. We already has correct file index in stat structure.
mz_bool res = mz_zip_reader_extract_to_mem(&archive, stat.m_file_index, (void*)buffer.data(), (size_t)stat.m_uncomp_size, 0);
if (res == 0) {
// TRN: First argument = path to file, second argument = error description
wxString error_log = GUI::format_wxstr(_L("Failed to unzip file to %1%: %2%"), final_path.string(), mz_zip_get_error_string(mz_zip_get_last_error(&archive)));
BOOST_LOG_TRIVIAL(error) << error_log;
show_error(nullptr, error_log);

View File

@ -2665,6 +2665,7 @@ void TabPrinter::build_fff()
auto [thumbnails_list, errors] = GCodeThumbnails::make_and_check_thumbnail_list(val);
if (errors != enum_bitmask<ThumbnailError>()) {
// TRN: First argument is parameter name, the second one is the value.
std::string error_str = format(_u8L("Invalid value provided for parameter %1%: %2%"), "thumbnails", val);
error_str += GCodeThumbnails::get_error_string(errors);
InfoDialog(parent(), _L("G-code flavor is switched"), from_u8(error_str)).ShowModal();
@ -5004,11 +5005,8 @@ void Tab::fill_icon_descriptions()
"the last saved preset."));
m_icon_descriptions.emplace_back(&m_bmp_edit_value, L("EDIT VALUE"),
// TRN Description for "EDIT VALUE"
L("indicates that the settings were changed and are not equal to the last saved preset for "
"the current option group.\n"
"Click the BACK ARROW icon to reset all settings for the current option group to "
"the last saved preset."));
// TRN Description for "EDIT VALUE" in the Help dialog (the icon is currently used only to edit custom gcodes).
L("clicking this icon opens a dialog allowing to edit this value."));
}
void Tab::set_tooltips_text()