This commit is contained in:
enricoturri1966 2021-12-17 11:47:07 +01:00
commit f7513b61e7
59 changed files with 100796 additions and 82230 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
min_slic3r_version = 2.3.2-alpha0 min_slic3r_version = 2.3.2-alpha0
0.0.12 Updated Anycubic i3 MEGA(S) profiles.
0.0.11 Added bed model and texture for i3 Mega, i3 Mega S. 0.0.11 Added bed model and texture for i3 Mega, i3 Mega S.
min_slic3r_version = 2.3.1-beta min_slic3r_version = 2.3.1-beta
0.0.10 Various updates for Anycubic Mega. Added filament profiles. 0.0.10 Various updates for Anycubic Mega. Added filament profiles.

View File

@ -5,7 +5,7 @@
name = Anycubic name = Anycubic
# Configuration version of this file. Config file will only be installed, if the config_version differs. # 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. # This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 0.0.11 config_version = 0.0.12
# Where to get the updates from? # Where to get the updates from?
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Anycubic/ config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Anycubic/
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
@ -828,34 +828,35 @@ end_gcode = M117 Cooling down...\nM104 S0 ; turn off extruder\nM107 ; Fan off\nM
bottom_solid_min_thickness = 0.5 bottom_solid_min_thickness = 0.5
bridge_acceleration = 1000 bridge_acceleration = 1000
bridge_flow_ratio = 0.95 bridge_flow_ratio = 0.95
bridge_speed = 30 bridge_speed = 25
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_I3_MEGA.*/ and nozzle_diameter[0]==0.4 compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_I3_MEGA.*/ and nozzle_diameter[0]==0.4
default_acceleration = 1000 default_acceleration = 1000
ensure_vertical_shell_thickness = 1 ensure_vertical_shell_thickness = 1
external_perimeter_extrusion_width = 0.45 external_perimeter_extrusion_width = 0.45
external_perimeter_speed = 25 external_perimeter_speed = 40
extruder_clearance_height = 35 extruder_clearance_height = 35
extruder_clearance_radius = 60 extruder_clearance_radius = 60
extrusion_width = 0.45 extrusion_width = 0.45
fill_density = 15% fill_density = 15%
fill_pattern = gyroid fill_pattern = gyroid
first_layer_acceleration = 1000 first_layer_acceleration = 800
first_layer_extrusion_width = 0.42 first_layer_extrusion_width = 0.42
first_layer_height = 0.2 first_layer_height = 0.2
first_layer_speed = 20 first_layer_speed = 20
gap_fill_speed = 40 gap_fill_speed = 40
gcode_comments = 1 gcode_comments = 0
gcode_label_objects = 1
infill_acceleration = 1000 infill_acceleration = 1000
infill_anchor = 2.5 infill_anchor = 2.5
infill_anchor_max = 12 infill_anchor_max = 12
infill_extrusion_width = 0.45 infill_extrusion_width = 0.45
max_print_speed = 200 max_print_speed = 100
min_skirt_length = 4 min_skirt_length = 4
only_retract_when_crossing_perimeters = 0 only_retract_when_crossing_perimeters = 0
output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode
perimeter_acceleration = 800 perimeter_acceleration = 800
perimeter_extrusion_width = 0.45 perimeter_extrusion_width = 0.45
perimeter_speed = 45 perimeter_speed = 50
perimeters = 2 perimeters = 2
seam_position = nearest seam_position = nearest
skirt_distance = 2 skirt_distance = 2
@ -864,25 +865,24 @@ skirts = 1
small_perimeter_speed = 25 small_perimeter_speed = 25
solid_infill_below_area = 0 solid_infill_below_area = 0
solid_infill_extrusion_width = 0.45 solid_infill_extrusion_width = 0.45
solid_infill_speed = 80 solid_infill_speed = 50
support_material_buildplate_only = 1 support_material = 0
support_material_buildplate_only = 0
support_material_contact_distance = 0.1 support_material_contact_distance = 0.1
support_material_extrusion_width = 0.35 support_material_extrusion_width = 0.35
support_material_interface_layers = 2 support_material_interface_layers = 2
support_material_interface_spacing = 0.2 support_material_interface_spacing = 0.2
support_material_interface_speed = 80%
support_material_spacing = 2 support_material_spacing = 2
support_material_speed = 50 support_material_speed = 50
support_material_threshold = 55 support_material_threshold = 50
support_material_xy_spacing = 60%
thin_walls = 0 thin_walls = 0
top_infill_extrusion_width = 0.4 top_infill_extrusion_width = 0.4
top_solid_infill_speed = 40 top_solid_infill_speed = 40
top_solid_layers = 5 top_solid_min_thickness = 0.7
top_solid_min_thickness = 0.6
travel_speed = 180 travel_speed = 180
[print:*supported_mega*]
support_material = 1
# XXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXX
# XXX--- 0.15mm ---XXX # XXX--- 0.15mm ---XXX
# XXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXX
@ -890,15 +890,14 @@ support_material = 1
[print:*0.15mm_mega*] [print:*0.15mm_mega*]
inherits = *common_mega* inherits = *common_mega*
bottom_solid_layers = 5 bottom_solid_layers = 5
bridge_flow_ratio = 1
infill_speed = 60
layer_height = 0.15 layer_height = 0.15
top_solid_layers = 7 top_solid_layers = 7
[print:0.15mm QUALITY @MEGA] [print:0.15mm QUALITY @MEGA]
inherits = *0.15mm_mega* inherits = *0.15mm_mega*
[print:0.15mm QUALITY SUPPORTED @MEGA]
inherits = *0.15mm_mega*;*supported_mega*
# XXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXX
# XXX--- 0.20mm ---XXX # XXX--- 0.20mm ---XXX
# XXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXX
@ -906,15 +905,13 @@ inherits = *0.15mm_mega*;*supported_mega*
[print:*0.20mm_mega*] [print:*0.20mm_mega*]
inherits = *common_mega* inherits = *common_mega*
bottom_solid_layers = 4 bottom_solid_layers = 4
infill_speed = 60
layer_height = 0.2 layer_height = 0.2
top_solid_layers = 5 top_solid_layers = 5
[print:0.20mm QUALITY @MEGA] [print:0.20mm QUALITY @MEGA]
inherits = *0.20mm_mega* inherits = *0.20mm_mega*
[print:0.20mm QUALITY SUPPORTED @MEGA]
inherits = *0.20mm_mega*;*supported_mega*
# XXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXX
# XXX--- 0.30mm ---XXX # XXX--- 0.30mm ---XXX
# XXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXX
@ -925,12 +922,11 @@ bottom_solid_layers = 4
external_perimeter_extrusion_width = 0.6 external_perimeter_extrusion_width = 0.6
external_perimeter_speed = 35 external_perimeter_speed = 35
extrusion_width = 0.5 extrusion_width = 0.5
fill_pattern = grid fill_pattern = cubic
infill_extrusion_width = 0.5 infill_extrusion_width = 0.5
infill_speed = 85 infill_speed = 85
layer_height = 0.3 layer_height = 0.3
perimeter_extrusion_width = 0.5 perimeter_extrusion_width = 0.5
perimeter_speed = 50
small_perimeter_speed = 30 small_perimeter_speed = 30
solid_infill_extrusion_width = 0.5 solid_infill_extrusion_width = 0.5
support_material_extrusion_width = 0.38 support_material_extrusion_width = 0.38
@ -940,9 +936,6 @@ top_solid_layers = 4
[print:0.30mm DRAFT @MEGA] [print:0.30mm DRAFT @MEGA]
inherits = *0.30mm_mega* inherits = *0.30mm_mega*
[print:0.30mm DRAFT SUPPORTED @MEGA]
inherits = *0.30mm_mega*;*supported_mega*
# XXXXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXXXX
# XXX--- filament ---XXX # XXX--- filament ---XXX
# XXXXXXXXXXXXXXXXXXXXXX # XXXXXXXXXXXXXXXXXXXXXX
@ -1092,6 +1085,14 @@ first_layer_temperature = 215
min_fan_speed = 100 min_fan_speed = 100
temperature = 210 temperature = 210
[filament:DAS FILAMENT PETG @MEGA]
inherits = *PETG_mega*
filament_vendor = DAS FILAMENT
bed_temperature = 75
first_layer_bed_temperature = 75
first_layer_temperature = 220
temperature = 225
[filament:*PLA_mega*] [filament:*PLA_mega*]
inherits = *common_mega* inherits = *common_mega*
bed_temperature = 60 bed_temperature = 60
@ -1166,7 +1167,7 @@ bed_shape = 0x0,210x0,210x210,0x210
before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z] before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]
default_filament_profile = Generic PLA @MEGA default_filament_profile = Generic PLA @MEGA
default_print_profile = 0.15mm QUALITY @MEGA default_print_profile = 0.15mm QUALITY @MEGA
deretract_speed = 40 deretract_speed = 50
end_gcode = G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < max_print_height} Z{z_offset+min(max_layer_z+30, max_print_height)}{endif} E-34.0 F720 ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F3000 ; park print head\nM84 ; disable motors end_gcode = G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < max_print_height} Z{z_offset+min(max_layer_z+30, max_print_height)}{endif} E-34.0 F720 ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F3000 ; park print head\nM84 ; disable motors
extruder_colour = #808080 extruder_colour = #808080
gcode_flavor = marlin gcode_flavor = marlin
@ -1177,10 +1178,10 @@ remaining_times = 1
retract_before_travel = 1.5 retract_before_travel = 1.5
retract_before_wipe = 60% retract_before_wipe = 60%
retract_layer_change = 1 retract_layer_change = 1
retract_length = 3.2 retract_length = 6
retract_lift = 0.2 retract_lift = 0.075
retract_lift_below = 204 retract_lift_below = 204
retract_speed = 70 retract_speed = 40
silent_mode = 0 silent_mode = 0
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0 start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0
thumbnails = 16x16,220x124 thumbnails = 16x16,220x124

View File

@ -1,3 +1,5 @@
min_slic3r_version = 2.4.0-rc
0.1.2 Added alpha Ender 3 S1 profiles.
min_slic3r_version = 2.4.0-beta4 min_slic3r_version = 2.4.0-beta4
0.1.1 Added Ender 2 Pro 0.1.1 Added Ender 2 Pro
min_slic3r_version = 2.3.2-alpha0 min_slic3r_version = 2.3.2-alpha0

View File

@ -5,7 +5,7 @@
name = Creality name = Creality
# Configuration version of this file. Config file will only be installed, if the config_version differs. # 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. # This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 0.1.1 config_version = 0.1.2
# Where to get the updates from? # Where to get the updates from?
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Creality/ config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Creality/
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
@ -41,6 +41,15 @@ bed_model = ender3v2_bed.stl
bed_texture = ender3v2.svg bed_texture = ender3v2.svg
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
[printer_model:ENDER3S1]
name = Creality Ender-3 S1
variants = 0.4
technology = FFF
family = ENDER
bed_model = ender3v2_bed.stl
bed_texture = ender3v2.svg
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
[printer_model:ENDER3MAX] [printer_model:ENDER3MAX]
name = Creality Ender-3 Max name = Creality Ender-3 Max
variants = 0.4 variants = 0.4
@ -362,7 +371,7 @@ notes =
overhangs = 0 overhangs = 0
only_retract_when_crossing_perimeters = 0 only_retract_when_crossing_perimeters = 0
ooze_prevention = 0 ooze_prevention = 0
output_filename_format = {input_filename_base}_{print_time}_{layer_height}mm_{temperature[0]}C_{filament_type[0]}_{printer_model}.gcode output_filename_format = {input_filename_base}_{print_time}_{digits(layer_height,1,2)}mm_{temperature[0]}C_{filament_type[0]}_{printer_model}.gcode
perimeters = 2 perimeters = 2
perimeter_extruder = 1 perimeter_extruder = 1
perimeter_extrusion_width = 0.45 perimeter_extrusion_width = 0.45
@ -952,6 +961,14 @@ max_print_height = 250
printer_model = ENDER3V2 printer_model = ENDER3V2
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_CREALITY\nPRINTER_MODEL_ENDER3V2\nPRINTER_HAS_BOWDEN 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_CREALITY\nPRINTER_MODEL_ENDER3V2\nPRINTER_HAS_BOWDEN
[printer:Creality Ender-3 S1]
inherits = *common*; *fastabl*
retract_length = 1
bed_shape = 5x0,215x0,215x220,5x220
max_print_height = 270
printer_model = ENDER3S1
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_CREALITY\nPRINTER_MODEL_ENDER3S1
[printer:Creality Ender-3 Max] [printer:Creality Ender-3 Max]
inherits = *common* inherits = *common*
retract_length = 6 retract_length = 6
@ -1014,10 +1031,10 @@ printer_notes = Don't remove the following keywords! These keywords are used in
[printer:Creality Ender-2 Pro] [printer:Creality Ender-2 Pro]
inherits = *common* inherits = *common*
renamed_from = "Creality ENDER-2 Pro" renamed_from = "Creality ENDER-2 Pro"
bed_shape = 0x0,165x0,165x165,0x165 bed_shape = 2.5x2.5,160x2.5,160x160,2.5x160
max_print_height = 180 max_print_height = 180
printer_model = ENDER2PRO printer_model = ENDER2PRO
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_CREALITY\nPRINTER_MODEL_ENDER2\nPRINTER_HAS_BOWDEN 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_CREALITY\nPRINTER_MODEL_ENDER2PRO\nPRINTER_HAS_BOWDEN
[printer:Creality CR-5 Pro] [printer:Creality CR-5 Pro]
inherits = *common*; *slowabl*; *descendingz* inherits = *common*; *slowabl*; *descendingz*

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -1,622 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8"?>
<svg <svg width="160mm" height="160mm" version="1.1" viewBox="0 0 160 160" xmlns="http://www.w3.org/2000/svg">
sodipodi:docname="ender2pro.svg" <rect x="0.25" y="0.25" width="159.5" height="159.5" fill="none" stroke="#fff" stroke-width=".5"/>
inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
id="svg1883"
version="1.1"
viewBox="0 0 166.02917 166.02917"
height="166.02917mm"
width="166.02917mm"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs1877" />
<sodipodi:namedview
inkscape:snap-page="false"
inkscape:window-maximized="0"
inkscape:window-y="25"
inkscape:window-x="448"
inkscape:window-height="1227"
inkscape:window-width="1600"
borderlayer="false"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="273.25679"
inkscape:cx="270.34593"
inkscape:zoom="1.3741653"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
borderopacity="1"
bordercolor="#f14bac"
pagecolor="#5d5d5d"
id="base"
inkscape:pagecheckerboard="0"
width="165mm">
<inkscape:grid
id="grid2446"
type="xygrid"
originx="0.52916899"
originy="0.52917032" />
</sodipodi:namedview>
<metadata
id="metadata1880">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 2"
id="layer2"
inkscape:groupmode="layer"
transform="translate(0.529169,0.52917033)"
style="display:inline">
<path
id="rect346"
style="display:inline;fill:#ffffff;fill-rule:evenodd;stroke-width:0.236623"
d="m 97.449555,145.09211 v 10.20042 h 55.800205 v -10.20042 z m 8.336955,1.83245 c 0.71438,0 1.36733,0.36191 1.77302,0.97927 0.41451,0.635 0.44959,1.3049 0.44959,2.08101 v 3.35173 h -1.83452 v -3.80132 c 0,-0.45861 -0.1058,-0.68781 -0.40566,-0.68781 -0.32632,0 -0.37052,0.26448 -0.37052,0.68781 v 3.80132 h -1.84278 v -3.35173 -0.17622 c 0,-0.47625 0.0176,-0.97906 0.26458,-1.56114 0.34396,-0.81139 1.11963,-1.32292 1.96629,-1.32292 z m 23.56859,0 c 1.3141,0 2.23139,0.97896 2.23139,2.11667 0,0.53798 -0.21188,0.9526 -0.47646,1.42885 l -0.59066,1.06712 h 1.05833 v 1.79937 h -4.10104 l 2.24896,-3.78375 c 0.0529,-0.097 0.0966,-0.24691 0.0966,-0.40566 0,-0.34396 -0.19392,-0.52038 -0.55552,-0.52038 -0.32632,0 -0.55552,0.22924 -0.55552,0.54674 0,0.17639 0.0619,0.29983 0.22066,0.40566 l -0.79375,1.36736 c -0.7232,-0.37042 -1.09399,-0.9616 -1.09399,-1.78181 0,-1.25236 0.95278,-2.24017 2.31097,-2.24017 z m 7.62124,0 c 1.33173,0 2.33732,1.01458 2.33732,2.2934 0,1.19063 -0.90833,1.98438 -2.13423,1.98438 -0.0882,0 -0.1943,3e-5 -0.3266,-0.009 v -1.56114 c 0.0441,0.009 0.0882,0.009 0.12351,0.009 0.33514,0 0.55604,-0.22052 0.55604,-0.52038 0,-0.28222 -0.23816,-0.5116 -0.52038,-0.5116 -0.42334,0 -0.52039,0.31761 -0.52039,0.89969 v 3.82767 h -1.87843 v -3.51038 -0.29972 c 0,-0.44097 0.0264,-0.88171 0.27337,-1.38441 0.37041,-0.75847 1.13729,-1.2175 2.08979,-1.2175 z m 11.27321,0 c 0.88195,0 1.7024,0.35312 2.31976,0.97048 0.59972,0.60855 0.95239,1.44619 0.95239,2.30167 0,0.74084 -0.25548,1.48184 -0.73173,2.07274 -0.60854,0.75848 -1.52618,1.19063 -2.54042,1.19063 -0.74083,0 -1.48135,-0.25601 -2.06344,-0.73226 -0.75847,-0.61736 -1.19941,-1.54333 -1.19941,-2.53111 0,-0.8643 0.34382,-1.68431 0.96119,-2.30167 0.60854,-0.61736 1.46382,-0.97048 2.30166,-0.97048 z m -46.61317,0.12351 h 1.20871 v 1.83451 h -1.19941 c -0.23813,0 -0.37052,0.0528 -0.37052,0.29094 0,0.23812 0.12358,0.31781 0.37052,0.31781 h 1.11983 v 1.40198 h -1.29656 c -0.23813,0 -0.36174,0.0533 -0.36174,0.29146 0,0.23812 0.11479,0.31729 0.36174,0.31729 h 1.37614 v 1.83451 h -1.05833 -0.24702 c -0.44097,0 -0.86437,-0.0177 -1.30534,-0.2558 -0.590907,-0.32631 -0.91726,-0.88201 -0.91726,-1.43763 v -2.3549 c 0,-0.73201 0.02649,-1.28733 0.652674,-1.79886 0.414516,-0.34395 0.952186,-0.44131 1.666566,-0.44131 z m 7.23418,0 h 1.85208 0.34365 c 0.49389,0 1.0675,0.0268 1.76424,0.31781 1.14652,0.47625 1.86086,1.56083 1.86086,2.83083 0,1.27882 -0.71437,2.35507 -1.85208,2.84014 -0.46743,0.19403 -0.97045,0.29972 -1.50843,0.29972 h -0.29973 v -1.87844 h 0.3266 c 0.9084,0 1.45521,-0.52055 1.45521,-1.2702 0,-0.82903 -0.5733,-1.26142 -1.71101,-1.26142 H 110.749 v 4.41006 h -1.87844 z m 8.71678,0 h 1.2082 v 1.83451 h -1.19941 c -0.23813,0 -0.37052,0.0528 -0.37052,0.29094 0,0.23812 0.12357,0.31781 0.37052,0.31781 h 1.12034 v 1.40198 h -1.29656 c -0.23812,0 -0.36174,0.0533 -0.36174,0.29146 0,0.23812 0.1148,0.31729 0.36174,0.31729 h 1.37563 v 1.83451 h -1.05834 -0.24701 c -0.44097,0 -0.86386,-0.0177 -1.30483,-0.2558 -0.5909,-0.32631 -0.91726,-0.88201 -0.91726,-1.43763 v -2.3549 c 0,-0.73201 0.0265,-1.28733 0.65268,-1.79886 0.41451,-0.34395 0.95219,-0.44131 1.66656,-0.44131 z m 1.96319,0 h 2.30167 c 0.55562,0 1.05816,0.009 1.63142,0.43253 0.54681,0.40569 0.85577,1.02264 0.85577,1.69292 -10e-6,0.65264 -0.29122,1.16455 -0.88212,1.62316 l 1.09347,2.53989 h -1.97559 l -0.85524,-1.97559 v -1.6583 h 0.20257 c 0.33514,0 0.51159,-0.0968 0.51159,-0.44079 0,-0.35278 -0.18527,-0.41445 -0.51159,-0.41445 h -0.49351 v 4.48913 h -1.87844 z m 20.29127,0 h 2.30218 c 0.55563,0 1.05816,0.009 1.63143,0.43253 0.5468,0.40569 0.85524,1.02264 0.85524,1.69292 0,0.65264 -0.2907,1.16455 -0.8816,1.62316 l 1.09348,2.53989 h -1.97559 l -0.85525,-1.97559 v -1.6583 h 0.20257 c 0.33514,0 0.5116,-0.0968 0.5116,-0.44079 0,-0.35278 -0.18528,-0.41445 -0.5116,-0.41445 h -0.49402 v 4.48913 h -1.87844 z m 8.41654,1.71979 c -0.78493,0 -1.42834,0.64392 -1.42834,1.42885 0,0.79375 0.63459,1.42007 1.42834,1.42007 0.79375,0 1.42007,-0.62632 1.42007,-1.42007 0,-0.78493 -0.63514,-1.42885 -1.42007,-1.42885 z" />
</g>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1"
style="display:inline"
transform="translate(0.529169,0.52917033)">
<path
id="path2643"
d="M 0.04966897,0.04966897 H 164.95033 V 164.95033 H 0.04966897 Z"
style="fill:none;stroke:#ffffff;stroke-width:1.09934;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path2645"
d="M 75,-0.13595834 V 164.82762"
style="fill:none;stroke:#ffffff;stroke-width:0.786424;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path2647"
d="M 0.01821215,90 H 164.98179"
style="fill:none;stroke:#ffffff;stroke-width:0.786424;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path2649"
d="M 25.012141,-0.13595834 V 164.82762"
style="fill:none;stroke:#ffffff;stroke-width:0.524283;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path2651"
d="M 50.006071,-0.13595834 V 164.82762"
style="fill:none;stroke:#ffffff;stroke-width:0.524283;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path2653"
d="M 99.993929,-0.28314159 V 144.6248"
style="fill:none;stroke:#ffffff;stroke-width:0.49138;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path2655"
d="M 124.98786,-0.26523432 V 144.6672"
style="fill:none;stroke:#ffffff;stroke-width:0.527872;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2655-2"
d="M 150.02344,-0.26523432 V 144.6672"
style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.527872;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ffffff;stroke-width:0.524282;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 164.98179,40.012141 H 0.01821435"
id="path2649-5" />
<path
style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.524282;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 164.98155,14.979971 H 0.01797199"
id="path2649-5-8" />
<path
style="fill:none;stroke:#ffffff;stroke-width:0.524282;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 164.98179,65.006071 H 0.01821435"
id="path2651-4" />
<path
style="fill:none;stroke:#ffffff;stroke-width:0.524282;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 164.98179,114.99393 H 0.01821435"
id="path2653-9" />
<path
style="fill:none;stroke:#ffffff;stroke-width:0.524282;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 164.98179,139.98786 H 0.01821435"
id="path2655-5" />
<path
id="path2681"
d="M 4.9735417,-0.26458333 V 165.26458"
style="fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.5, 0.25;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path2683"
d="M 9.9972278,165.26483 V -0.23826333"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524189, 0.262094;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path2685"
d="M 15.013135,-0.23826333 V 165.26483"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524189, 0.262094;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path2687"
d="M 20.029042,165.26483 V -0.23826333"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524189, 0.262094;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524188, 0.262094;stroke-dashoffset:0;stroke-opacity:1"
d="M 29.981509,-0.52917033 V 164.97393"
id="path2681-2" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524188, 0.262094;stroke-dashoffset:0;stroke-opacity:1"
d="M 34.997416,164.97393 V -0.52917033"
id="path2683-1" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524188, 0.262094;stroke-dashoffset:0;stroke-opacity:1"
d="M 40.013322,-0.52917033 V 164.97393"
id="path2685-5" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524188, 0.262094;stroke-dashoffset:0;stroke-opacity:1"
d="M 45.029231,164.97393 V -0.52917033"
id="path2687-4" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 54.970379,0.04904167 V 164.52883"
id="path2681-9" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 59.987388,164.52883 V 0.04904167"
id="path2683-8" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 65.004395,0.04904167 V 164.52883"
id="path2685-4" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 70.021405,164.52883 V 0.04904167"
id="path2687-7" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 80.002511,-0.52917033 V 163.95062"
id="path2681-3" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 85.01952,163.95062 V -0.52917033"
id="path2683-6" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 90.036528,-0.52917033 V 163.95062"
id="path2685-3" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.261312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522622, 0.261312;stroke-dashoffset:0;stroke-opacity:1"
d="M 95.053538,163.95062 V -0.52917033"
id="path2687-44" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.245348;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.490694, 0.245348;stroke-dashoffset:0;stroke-opacity:1"
d="M 104.96427,0.04904167 V 145.04904"
id="path2681-36" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.264112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.528224, 0.264112;stroke-dashoffset:0;stroke-opacity:1"
d="M 109.9988,145.04903 109.98118,0.04904167"
id="path2683-5"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.263959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.527917, 0.263959;stroke-dashoffset:0;stroke-opacity:1"
d="M 114.99919,0.04904227 V 145.04899"
id="path2685-7"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.263959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.527917, 0.263959;stroke-dashoffset:0;stroke-opacity:1"
d="M 119.99653,145.04899 120.01412,0.04904227"
id="path2687-48"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.263598;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.527194, 0.263598;stroke-dashoffset:0;stroke-opacity:1"
d="M 129.95634,0.04904227 129.99163,144.64899"
id="path2681-0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.263598;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.527194, 0.263598;stroke-dashoffset:0;stroke-opacity:1"
d="M 134.98904,144.64899 V 0.04904227"
id="path2683-0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.245849;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.491697, 0.245849;stroke-dashoffset:0;stroke-opacity:1"
d="M 140.00037,0.04903965 V 145.04904"
id="path2685-2"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.245078;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.490154, 0.245078;stroke-dashoffset:0;stroke-opacity:1"
d="M 145.0201,144.64901 V 0.04903965"
id="path2687-47" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.261383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522763, 0.261383;stroke-dashoffset:0;stroke-opacity:1"
d="M 155.02037,164.52883 V 0.04882967"
id="path2687-47-8" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.261383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.522763, 0.261383;stroke-dashoffset:0;stroke-opacity:1"
d="M 160.01152,164.45083 V -0.02917033"
id="path2687-47-8-9" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
d="M 164.70884,19.961975 0.05273017,20.006069"
id="path2681-39"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
d="M 164.12698,9.9619027 -0.5291339,10.005993"
id="path2681-39-4"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
d="M 164.12698,4.9619027 -0.5291339,5.0059927"
id="path2681-39-4-7"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
d="M 0.05273017,25.005541 164.70884,24.979083"
id="path2683-3"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
d="M 164.70884,29.996193 0.05273017,30.005013"
id="path2685-51"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
d="M 0.05273017,35.004485 164.70884,35.013284"
id="path2687-486"
sodipodi:nodetypes="cc" />
<path
id="path2681-2-1"
d="M 164.9998,45.003429 H 0.05273017"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2683-1-9"
d="M 0.05273017,50.002901 164.9998,49.985263"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2685-5-4"
d="M 164.9998,55.002373 H 0.05273017"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2687-4-9"
d="M 0.05273017,60.001845 164.9998,60.019483"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2681-9-6"
d="M 164.4179,69.947875 0.05273017,70.00079"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2683-8-0"
d="M 0.05273017,75.000262 164.4179,74.964985"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2685-4-7"
d="M 164.4179,79.982096 0.05273017,79.999734"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2681-3-7"
d="M 164.9998,94.980512 0.05273017,94.99815"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2683-6-0"
d="M 0.05273017,99.997622 H 164.9998"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2685-3-3"
d="M 164.9998,105.01473 H -0.529169"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path2687-44-3"
d="M 0.05273017,109.99657 164.9998,110.03186"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2681-36-5"
d="M 164.4179,119.9426 0.05273017,119.99551"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2683-5-1"
d="M 0.05273017,124.99498 164.4179,124.95969"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2685-7-5"
d="M 164.4179,129.97682 0.05273017,129.99445"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2687-48-9"
d="M 0.05273017,134.99393 H 164.4179"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2681-0-8"
d="M 165,145 H 0"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524403, 0.262203;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2683-0-5"
d="M 0,150 H 97.464513"
style="fill:none;stroke:#fdfdfd;stroke-width:0.240862;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.481723, 0.240862;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2685-2-7"
d="M 150,155 H 0"
style="fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
id="path2687-47-6"
d="M 0,160 H 165"
style="fill:none;stroke:#fdfdfd;stroke-width:0.262666;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.525331, 0.262666;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path2683-5-5"
d="M 110,165 V 155"
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path2683-5-5-7"
d="m 104.90153,164.99983 v -10"
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1"
d="M 115,165 V 155"
id="path2683-5-5-6"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1"
d="M 120,165 V 155"
id="path2683-5-5-0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1"
d="M 130,165 V 155"
id="path2683-5-5-9"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1"
d="M 135,165 V 155"
id="path2683-5-5-2"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1"
d="m 139.99583,164.79728 v -10"
id="path2683-5-5-2-6"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.499999, 0.25;stroke-dashoffset:0;stroke-opacity:1"
d="m 144.99583,165.13073 v -10"
id="path2683-5-5-2-6-8"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.487698;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 125,155.41867 v 9.51398"
id="path2655-0" />
<path
sodipodi:nodetypes="cc"
style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.487698;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 150,155 v 9.51398"
id="path2655-0-5" />
<path
sodipodi:nodetypes="cc"
style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.483417;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 99.99783,155.30367 v 9.34772"
id="path2655-0-9" />
<g
transform="translate(0.04335936,162.09955)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text966-0-4"
aria-label="125">
<path
id="path188"
d="M 121.63635,2.0732279 V 1.8863313 h 0.2868 V 1.1628608 l -0.24977,0.1378039 -0.0689,-0.1713936 0.35743,-0.18861909 h 0.17656 V 1.8863313 h 0.24718 v 0.1868966 z" />
<path
id="path190"
d="M 122.58805,2.0732279 V 1.9181985 l 0.26614,-0.2661338 q 0.0749,-0.074931 0.11972,-0.1291912 0.0456,-0.05426 0.0698,-0.096463 0.025,-0.043064 0.0327,-0.079237 0.008,-0.036174 0.008,-0.074931 0,-0.031867 -0.0103,-0.060289 -0.0103,-0.029283 -0.0301,-0.049954 -0.0198,-0.021532 -0.05,-0.03359 -0.0301,-0.012919 -0.0689,-0.012919 -0.0663,0 -0.12316,0.029283 -0.0568,0.028422 -0.10766,0.076654 l -0.1111,-0.1429716 q 0.0732,-0.068041 0.1645,-0.10852056 0.0922,-0.0413412 0.19895,-0.0413412 0.0827,0 0.14987,0.0215319 0.0672,0.0206706 0.11455,0.0620118 0.0482,0.041341 0.0741,0.1033529 0.0267,0.062012 0.0267,0.1429716 0,0.067179 -0.0181,0.125746 -0.0181,0.057705 -0.0525,0.112827 -0.0344,0.055122 -0.0853,0.1102431 -0.0499,0.055122 -0.11455,0.1162721 l -0.16364,0.1558906 h 0.47456 v 0.1937868 z" />
<path
id="path192"
d="m 124.31491,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.10507,0.1179946 -0.0672,0.048231 -0.15848,0.073208 -0.0913,0.024977 -0.19809,0.024977 -0.0267,0 -0.0568,-0.00172 -0.0301,-0.00172 -0.0611,-0.00431 -0.031,-0.00258 -0.0603,-0.00689 -0.0293,-0.00345 -0.0543,-0.00775 V 1.8863313 q 0.0491,0.012058 0.11282,0.019809 0.0637,0.00689 0.13006,0.00689 0.12919,0 0.19637,-0.049093 0.068,-0.049954 0.068,-0.1378039 0,-0.091295 -0.0629,-0.1352201 -0.0629,-0.044786 -0.20326,-0.044786 H 123.6035 V 0.94754221 h 0.6494 V 1.1456353 h -0.45303 v 0.229099 h 0.081 q 0.0861,0 0.1645,0.015503 0.0784,0.015503 0.1378,0.05426 0.0603,0.037896 0.0956,0.1033529 0.0362,0.065457 0.0362,0.1653647 z" />
</g>
<g
transform="translate(0.04335936,162.09955)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text966-0-9"
aria-label="100">
<path
id="path181"
d="M 96.636346,2.0732279 V 1.8863313 H 96.92315 V 1.1628608 l -0.249769,0.1378039 -0.0689,-0.1713936 0.357429,-0.18861909 h 0.176561 V 1.8863313 h 0.247186 v 0.1868966 z" />
<path
id="path183"
d="m 98.401097,1.505648 q 0,0.1386652 -0.03014,0.2480471 -0.03015,0.1093818 -0.08871,0.185174 -0.0577,0.074931 -0.141249,0.1145495 -0.08354,0.039619 -0.191203,0.039619 -0.09302,0 -0.171393,-0.032728 -0.07838,-0.032729 -0.13522,-0.1024917 -0.05684,-0.070624 -0.08871,-0.1800063 -0.03187,-0.1093819 -0.03187,-0.2618275 0,-0.1386652 0.03014,-0.248047 0.03101,-0.1093819 0.08871,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.08441,-0.0396186 0.191203,-0.0396186 0.09302,0 0.171394,0.0327284 0.07838,0.0327284 0.134359,0.10249171 0.05684,0.069763 0.08871,0.179145 0.03187,0.1093819 0.03187,0.2626887 z m -0.666626,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.0017,0.030145 l 0.422047,-0.304896 q -0.03015,-0.085266 -0.0801,-0.125746 -0.04909,-0.041341 -0.116272,-0.041341 -0.04823,0 -0.08957,0.024977 -0.04134,0.024116 -0.07235,0.074931 -0.03014,0.050815 -0.04823,0.1274686 -0.01722,0.076653 -0.01722,0.1817289 z m 0.454753,0.00345 q 0,-0.014642 -8.62e-4,-0.029283 -8.61e-4,-0.015503 -8.61e-4,-0.029283 L 97.76806,1.7571402 q 0.02756,0.083544 0.07751,0.1240235 0.04995,0.04048 0.116272,0.04048 0.04823,0 0.08957,-0.024977 0.0422,-0.024977 0.07235,-0.074931 0.03101,-0.050815 0.04823,-0.1274686 0.01723,-0.077515 0.01723,-0.1817289 z" />
<path
id="path185"
d="m 99.372615,1.505648 q 0,0.1386652 -0.03014,0.2480471 -0.03014,0.1093818 -0.08871,0.185174 -0.05771,0.074931 -0.141249,0.1145495 -0.08354,0.039619 -0.191203,0.039619 -0.09302,0 -0.171394,-0.032728 -0.07838,-0.032729 -0.13522,-0.1024917 -0.05684,-0.070624 -0.08871,-0.1800063 -0.03187,-0.1093819 -0.03187,-0.2618275 0,-0.1386652 0.03014,-0.248047 0.03101,-0.1093819 0.08871,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.0844,-0.0396186 0.191203,-0.0396186 0.09302,0 0.171393,0.0327284 0.07838,0.0327284 0.134359,0.10249171 0.05684,0.069763 0.08871,0.179145 0.03187,0.1093819 0.03187,0.2626887 z m -0.666627,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.0017,0.030145 l 0.422047,-0.304896 q -0.03014,-0.085266 -0.0801,-0.125746 -0.04909,-0.041341 -0.116272,-0.041341 -0.04823,0 -0.08957,0.024977 -0.04134,0.024116 -0.07235,0.074931 -0.03014,0.050815 -0.04823,0.1274686 -0.01723,0.076653 -0.01723,0.1817289 z m 0.454753,0.00345 q 0,-0.014642 -8.61e-4,-0.029283 -8.61e-4,-0.015503 -8.61e-4,-0.029283 l -0.419441,0.3031686 q 0.02756,0.083544 0.07752,0.1240235 0.04995,0.04048 0.116272,0.04048 0.04823,0 0.08957,-0.024977 0.0422,-0.024977 0.07235,-0.074931 0.03101,-0.050815 0.04823,-0.1274686 0.01722,-0.077515 0.01722,-0.1817289 z" />
</g>
<g
transform="translate(0.04335936,162.09955)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text966-0-99"
aria-label="25">
<path
id="path166"
style="stroke-width:0.264583"
d="M 22.616538,2.0732279 V 1.9181985 l 0.266134,-0.2661338 q 0.07493,-0.074931 0.119717,-0.1291912 0.04565,-0.05426 0.06976,-0.096463 0.02498,-0.043064 0.03273,-0.079237 0.0078,-0.036174 0.0078,-0.074931 0,-0.031867 -0.01034,-0.060289 -0.01034,-0.029283 -0.03014,-0.049954 -0.01981,-0.021532 -0.04995,-0.03359 -0.03015,-0.012919 -0.0689,-0.012919 -0.06632,0 -0.123163,0.029283 -0.05684,0.028422 -0.107659,0.076654 L 22.611371,1.0784559 q 0.07321,-0.068041 0.164503,-0.10852056 0.09216,-0.0413412 0.198955,-0.0413412 0.08268,0 0.149861,0.0215319 0.06718,0.0206706 0.11455,0.0620118 0.04823,0.041341 0.07407,0.1033529 0.0267,0.062012 0.0267,0.1429716 0,0.067179 -0.01809,0.125746 -0.01809,0.057705 -0.05254,0.112827 -0.03445,0.055122 -0.08527,0.1102431 -0.04995,0.055122 -0.114549,0.1162721 l -0.163642,0.1558906 h 0.474562 v 0.1937868 z" />
<path
id="path168"
style="stroke-width:0.264583"
d="m 24.343394,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.105076,0.1179946 -0.06718,0.048231 -0.158474,0.073208 -0.0913,0.024977 -0.198093,0.024977 -0.0267,0 -0.05685,-0.00172 -0.03014,-0.00172 -0.06115,-0.00431 -0.03101,-0.00258 -0.06029,-0.00689 -0.02928,-0.00345 -0.05426,-0.00775 V 1.8863313 q 0.04909,0.012058 0.112827,0.019809 0.06374,0.00689 0.130053,0.00689 0.129191,0 0.19637,-0.049093 0.06804,-0.049954 0.06804,-0.1378039 0,-0.091295 -0.06287,-0.1352201 -0.06287,-0.044786 -0.203261,-0.044786 H 23.631981 V 0.94754221 h 0.649401 V 1.1456353 h -0.45303 v 0.229099 h 0.08096 q 0.08613,0 0.164504,0.015503 0.07838,0.015503 0.137804,0.05426 0.06029,0.037896 0.0956,0.1033529 0.03617,0.065457 0.03617,0.1653647 z" />
</g>
<g
transform="translate(0.04335936,162.09955)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text966-0-3"
aria-label="50">
<path
id="path171"
style="stroke-width:0.264583"
d="m 48.371874,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.105075,0.1179946 -0.06718,0.048231 -0.158475,0.073208 -0.0913,0.024977 -0.198093,0.024977 -0.0267,0 -0.05684,-0.00172 -0.03015,-0.00172 -0.06115,-0.00431 -0.03101,-0.00258 -0.06029,-0.00689 -0.02928,-0.00345 -0.05426,-0.00775 V 1.8863313 q 0.04909,0.012058 0.112827,0.019809 0.06373,0.00689 0.130052,0.00689 0.129191,0 0.196371,-0.049093 0.06804,-0.049954 0.06804,-0.1378039 0,-0.091295 -0.06287,-0.1352201 -0.06287,-0.044786 -0.203261,-0.044786 H 47.660462 V 0.94754221 h 0.6494 V 1.1456353 h -0.45303 v 0.229099 h 0.08096 q 0.08613,0 0.164503,0.015503 0.07838,0.015503 0.137804,0.05426 0.06029,0.037896 0.0956,0.1033529 0.03617,0.065457 0.03617,0.1653647 z" />
<path
id="path173"
style="stroke-width:0.264583"
d="m 49.401097,1.505648 q 0,0.1386652 -0.03014,0.2480471 -0.03014,0.1093818 -0.08871,0.185174 -0.0577,0.074931 -0.141249,0.1145495 -0.08354,0.039619 -0.191203,0.039619 -0.09302,0 -0.171393,-0.032728 -0.07838,-0.032729 -0.13522,-0.1024917 -0.05684,-0.070624 -0.08871,-0.1800063 -0.03187,-0.1093819 -0.03187,-0.2618275 0,-0.1386652 0.03015,-0.248047 0.03101,-0.1093819 0.08871,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.0844,-0.0396186 0.191203,-0.0396186 0.09302,0 0.171394,0.0327284 0.07838,0.0327284 0.134359,0.10249171 0.05684,0.069763 0.08871,0.179145 0.03187,0.1093819 0.03187,0.2626887 z m -0.666626,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.0017,0.030145 l 0.422047,-0.304896 q -0.03014,-0.085266 -0.0801,-0.125746 -0.04909,-0.041341 -0.116272,-0.041341 -0.04823,0 -0.08957,0.024977 -0.04134,0.024116 -0.07235,0.074931 -0.03015,0.050815 -0.04823,0.1274686 -0.01723,0.076653 -0.01723,0.1817289 z m 0.454753,0.00345 q 0,-0.014642 -8.62e-4,-0.029283 -8.61e-4,-0.015503 -8.61e-4,-0.029283 L 48.76806,1.7571402 q 0.02756,0.083544 0.07751,0.1240235 0.04995,0.04048 0.116272,0.04048 0.04823,0 0.08957,-0.024977 0.0422,-0.024977 0.07235,-0.074931 0.03101,-0.050815 0.04823,-0.1274686 0.01723,-0.077515 0.01723,-0.1817289 z" />
</g>
<g
transform="translate(0.04335936,162.09955)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text966-0-7"
aria-label="75">
<path
id="path176"
style="stroke-width:0.264583"
d="M 72.926595,2.0732279 H 72.688884 L 73.136746,1.150803 H 72.596727 V 0.94754221 h 0.782037 V 1.1309937 Z" />
<path
id="path178"
style="stroke-width:0.264583"
d="m 74.343392,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.105076,0.1179946 -0.06718,0.048231 -0.158474,0.073208 -0.0913,0.024977 -0.198093,0.024977 -0.0267,0 -0.05684,-0.00172 -0.03014,-0.00172 -0.06115,-0.00431 -0.03101,-0.00258 -0.06029,-0.00689 -0.02928,-0.00345 -0.05426,-0.00775 V 1.8863313 q 0.04909,0.012058 0.112826,0.019809 0.06373,0.00689 0.130053,0.00689 0.129191,0 0.19637,-0.049093 0.06804,-0.049954 0.06804,-0.1378039 0,-0.091295 -0.06287,-0.1352201 -0.06287,-0.044786 -0.203261,-0.044786 H 73.631979 V 0.94754221 H 74.28138 V 1.1456353 h -0.45303 v 0.229099 h 0.08096 q 0.08613,0 0.164504,0.015503 0.07838,0.015503 0.137804,0.05426 0.06029,0.037896 0.0956,0.1033529 0.03617,0.065457 0.03617,0.1653647 z" />
</g>
<g
transform="translate(0.04335936,162.09955)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text966-0-5-1"
aria-label="150">
<path
id="path195"
style="stroke-width:0.264583"
d="M 146.47099,2.0732279 V 1.8863313 h 0.2868 V 1.1628608 l -0.24977,0.1378039 -0.0689,-0.1713936 0.35743,-0.18861909 h 0.17656 V 1.8863313 h 0.24719 v 0.1868966 z" />
<path
id="path197"
style="stroke-width:0.264583"
d="m 148.17803,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.10508,0.1179946 -0.0672,0.048231 -0.15847,0.073208 -0.0913,0.024977 -0.1981,0.024977 -0.0267,0 -0.0568,-0.00172 -0.0301,-0.00172 -0.0611,-0.00431 -0.031,-0.00258 -0.0603,-0.00689 -0.0293,-0.00345 -0.0543,-0.00775 V 1.8863313 q 0.0491,0.012058 0.11283,0.019809 0.0637,0.00689 0.13005,0.00689 0.12919,0 0.19637,-0.049093 0.068,-0.049954 0.068,-0.1378039 0,-0.091295 -0.0629,-0.1352201 -0.0629,-0.044786 -0.20326,-0.044786 h -0.22049 V 0.94754221 h 0.6494 V 1.1456353 h -0.45303 v 0.229099 h 0.081 q 0.0861,0 0.1645,0.015503 0.0784,0.015503 0.13781,0.05426 0.0603,0.037896 0.0956,0.1033529 0.0362,0.065457 0.0362,0.1653647 z" />
<path
id="path199"
style="stroke-width:0.264583"
d="m 149.20726,1.505648 q 0,0.1386652 -0.0301,0.2480471 -0.0301,0.1093818 -0.0887,0.185174 -0.0577,0.074931 -0.14125,0.1145495 -0.0835,0.039619 -0.1912,0.039619 -0.093,0 -0.1714,-0.032728 -0.0784,-0.032729 -0.13522,-0.1024917 -0.0568,-0.070624 -0.0887,-0.1800063 -0.0319,-0.1093819 -0.0319,-0.2618275 0,-0.1386652 0.0301,-0.248047 0.031,-0.1093819 0.0887,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.0844,-0.0396186 0.1912,-0.0396186 0.093,0 0.1714,0.0327284 0.0784,0.0327284 0.13436,0.10249171 0.0568,0.069763 0.0887,0.179145 0.0319,0.1093819 0.0319,0.2626879 z m -0.66663,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.002,0.030145 l 0.42203,-0.3048912 q -0.0301,-0.085266 -0.0801,-0.125746 -0.0491,-0.041341 -0.11627,-0.041341 -0.0482,0 -0.0896,0.024977 -0.0413,0.024116 -0.0723,0.074931 -0.0301,0.050815 -0.0482,0.1274686 -0.0172,0.076653 -0.0172,0.1817289 z m 0.45475,0.00345 q 0,-0.014642 -8.6e-4,-0.029283 -8.6e-4,-0.015503 -8.6e-4,-0.029283 l -0.41944,0.3031686 q 0.0276,0.083544 0.0775,0.1240235 0.05,0.04048 0.11628,0.04048 0.0482,0 0.0896,-0.024977 0.0422,-0.024977 0.0723,-0.074931 0.031,-0.050815 0.0482,-0.1274686 0.0172,-0.077515 0.0172,-0.1817289 z" />
</g>
<path
sodipodi:nodetypes="cc"
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.262146;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.524292, 0.262146;stroke-dashoffset:0;stroke-opacity:1"
d="M 164.9998,84.999206 0.63463045,85.016844"
id="path2685-4-7-5" />
<path
sodipodi:nodetypes="cc"
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.263112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.526224, 0.263112;stroke-dashoffset:0;stroke-opacity:1"
d="m 153.34858,150 h 11.07649"
id="path2683-0-5-5" />
<path
sodipodi:nodetypes="cc"
style="display:inline;fill:none;stroke:#fdfdfd;stroke-width:0.263112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.526224, 0.263112;stroke-dashoffset:0;stroke-opacity:1"
d="m 153.01348,155.00039 h 11.07649"
id="path2683-0-5-5-7" />
<g
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;line-height:1.25;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text893"
aria-label="ENDER 2">
<g
id="g220" />
</g>
<g
aria-label="125"
id="text966-0-4-0"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
transform="translate(-120.58115,39.81636)">
<path
d="M 121.63635,2.0732279 V 1.8863313 h 0.2868 V 1.1628608 l -0.24977,0.1378039 -0.0689,-0.1713936 0.35743,-0.18861909 h 0.17656 V 1.8863313 h 0.24718 v 0.1868966 z"
id="path188-1" />
<path
d="M 122.58805,2.0732279 V 1.9181985 l 0.26614,-0.2661338 q 0.0749,-0.074931 0.11972,-0.1291912 0.0456,-0.05426 0.0698,-0.096463 0.025,-0.043064 0.0327,-0.079237 0.008,-0.036174 0.008,-0.074931 0,-0.031867 -0.0103,-0.060289 -0.0103,-0.029283 -0.0301,-0.049954 -0.0198,-0.021532 -0.05,-0.03359 -0.0301,-0.012919 -0.0689,-0.012919 -0.0663,0 -0.12316,0.029283 -0.0568,0.028422 -0.10766,0.076654 l -0.1111,-0.1429716 q 0.0732,-0.068041 0.1645,-0.10852056 0.0922,-0.0413412 0.19895,-0.0413412 0.0827,0 0.14987,0.0215319 0.0672,0.0206706 0.11455,0.0620118 0.0482,0.041341 0.0741,0.1033529 0.0267,0.062012 0.0267,0.1429716 0,0.067179 -0.0181,0.125746 -0.0181,0.057705 -0.0525,0.112827 -0.0344,0.055122 -0.0853,0.1102431 -0.0499,0.055122 -0.11455,0.1162721 l -0.16364,0.1558906 h 0.47456 v 0.1937868 z"
id="path190-2" />
<path
d="m 124.31491,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.10507,0.1179946 -0.0672,0.048231 -0.15848,0.073208 -0.0913,0.024977 -0.19809,0.024977 -0.0267,0 -0.0568,-0.00172 -0.0301,-0.00172 -0.0611,-0.00431 -0.031,-0.00258 -0.0603,-0.00689 -0.0293,-0.00345 -0.0543,-0.00775 V 1.8863313 q 0.0491,0.012058 0.11282,0.019809 0.0637,0.00689 0.13006,0.00689 0.12919,0 0.19637,-0.049093 0.068,-0.049954 0.068,-0.1378039 0,-0.091295 -0.0629,-0.1352201 -0.0629,-0.044786 -0.20326,-0.044786 H 123.6035 V 0.94754221 h 0.6494 V 1.1456353 h -0.45303 v 0.229099 h 0.081 q 0.0861,0 0.1645,0.015503 0.0784,0.015503 0.1378,0.05426 0.0603,0.037896 0.0956,0.1033529 0.0362,0.065457 0.0362,0.1653647 z"
id="path192-3" />
</g>
<g
aria-label="100"
id="text966-0-9-0"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
transform="translate(-95.765044,64.636453)">
<path
d="M 96.636346,2.0732279 V 1.8863313 H 96.92315 V 1.1628608 l -0.249769,0.1378039 -0.0689,-0.1713936 0.357429,-0.18861909 h 0.176561 V 1.8863313 h 0.247186 v 0.1868966 z"
id="path181-5" />
<path
d="m 98.401097,1.505648 q 0,0.1386652 -0.03014,0.2480471 -0.03015,0.1093818 -0.08871,0.185174 -0.0577,0.074931 -0.141249,0.1145495 -0.08354,0.039619 -0.191203,0.039619 -0.09302,0 -0.171393,-0.032728 -0.07838,-0.032729 -0.13522,-0.1024917 -0.05684,-0.070624 -0.08871,-0.1800063 -0.03187,-0.1093819 -0.03187,-0.2618275 0,-0.1386652 0.03014,-0.248047 0.03101,-0.1093819 0.08871,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.08441,-0.0396186 0.191203,-0.0396186 0.09302,0 0.171394,0.0327284 0.07838,0.0327284 0.134359,0.10249171 0.05684,0.069763 0.08871,0.179145 0.03187,0.1093819 0.03187,0.2626887 z m -0.666626,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.0017,0.030145 l 0.422047,-0.304896 q -0.03015,-0.085266 -0.0801,-0.125746 -0.04909,-0.041341 -0.116272,-0.041341 -0.04823,0 -0.08957,0.024977 -0.04134,0.024116 -0.07235,0.074931 -0.03014,0.050815 -0.04823,0.1274686 -0.01722,0.076653 -0.01722,0.1817289 z m 0.454753,0.00345 q 0,-0.014642 -8.62e-4,-0.029283 -8.61e-4,-0.015503 -8.61e-4,-0.029283 L 97.76806,1.7571402 q 0.02756,0.083544 0.07751,0.1240235 0.04995,0.04048 0.116272,0.04048 0.04823,0 0.08957,-0.024977 0.0422,-0.024977 0.07235,-0.074931 0.03101,-0.050815 0.04823,-0.1274686 0.01723,-0.077515 0.01723,-0.1817289 z"
id="path183-5" />
<path
d="m 99.372615,1.505648 q 0,0.1386652 -0.03014,0.2480471 -0.03014,0.1093818 -0.08871,0.185174 -0.05771,0.074931 -0.141249,0.1145495 -0.08354,0.039619 -0.191203,0.039619 -0.09302,0 -0.171394,-0.032728 -0.07838,-0.032729 -0.13522,-0.1024917 -0.05684,-0.070624 -0.08871,-0.1800063 -0.03187,-0.1093819 -0.03187,-0.2618275 0,-0.1386652 0.03014,-0.248047 0.03101,-0.1093819 0.08871,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.0844,-0.0396186 0.191203,-0.0396186 0.09302,0 0.171393,0.0327284 0.07838,0.0327284 0.134359,0.10249171 0.05684,0.069763 0.08871,0.179145 0.03187,0.1093819 0.03187,0.2626887 z m -0.666627,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.0017,0.030145 l 0.422047,-0.304896 q -0.03014,-0.085266 -0.0801,-0.125746 -0.04909,-0.041341 -0.116272,-0.041341 -0.04823,0 -0.08957,0.024977 -0.04134,0.024116 -0.07235,0.074931 -0.03014,0.050815 -0.04823,0.1274686 -0.01723,0.076653 -0.01723,0.1817289 z m 0.454753,0.00345 q 0,-0.014642 -8.61e-4,-0.029283 -8.61e-4,-0.015503 -8.61e-4,-0.029283 l -0.419441,0.3031686 q 0.02756,0.083544 0.07752,0.1240235 0.04995,0.04048 0.116272,0.04048 0.04823,0 0.08957,-0.024977 0.0422,-0.024977 0.07235,-0.074931 0.03101,-0.050815 0.04823,-0.1274686 0.01722,-0.077515 0.01722,-0.1817289 z"
id="path185-2" />
</g>
<g
aria-label="25"
id="text966-0-99-1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
transform="translate(-21.665685,139.65487)">
<path
d="M 22.616538,2.0732279 V 1.9181985 l 0.266134,-0.2661338 q 0.07493,-0.074931 0.119717,-0.1291912 0.04565,-0.05426 0.06976,-0.096463 0.02498,-0.043064 0.03273,-0.079237 0.0078,-0.036174 0.0078,-0.074931 0,-0.031867 -0.01034,-0.060289 -0.01034,-0.029283 -0.03014,-0.049954 -0.01981,-0.021532 -0.04995,-0.03359 -0.03015,-0.012919 -0.0689,-0.012919 -0.06632,0 -0.123163,0.029283 -0.05684,0.028422 -0.107659,0.076654 L 22.611371,1.0784559 q 0.07321,-0.068041 0.164503,-0.10852056 0.09216,-0.0413412 0.198955,-0.0413412 0.08268,0 0.149861,0.0215319 0.06718,0.0206706 0.11455,0.0620118 0.04823,0.041341 0.07407,0.1033529 0.0267,0.062012 0.0267,0.1429716 0,0.067179 -0.01809,0.125746 -0.01809,0.057705 -0.05254,0.112827 -0.03445,0.055122 -0.08527,0.1102431 -0.04995,0.055122 -0.114549,0.1162721 l -0.163642,0.1558906 h 0.474562 v 0.1937868 z"
style="stroke-width:0.264583"
id="path166-8" />
<path
d="m 24.343394,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.105076,0.1179946 -0.06718,0.048231 -0.158474,0.073208 -0.0913,0.024977 -0.198093,0.024977 -0.0267,0 -0.05685,-0.00172 -0.03014,-0.00172 -0.06115,-0.00431 -0.03101,-0.00258 -0.06029,-0.00689 -0.02928,-0.00345 -0.05426,-0.00775 V 1.8863313 q 0.04909,0.012058 0.112827,0.019809 0.06374,0.00689 0.130053,0.00689 0.129191,0 0.19637,-0.049093 0.06804,-0.049954 0.06804,-0.1378039 0,-0.091295 -0.06287,-0.1352201 -0.06287,-0.044786 -0.203261,-0.044786 H 23.631981 V 0.94754221 h 0.649401 V 1.1456353 h -0.45303 v 0.229099 h 0.08096 q 0.08613,0 0.164504,0.015503 0.07838,0.015503 0.137804,0.05426 0.06029,0.037896 0.0956,0.1033529 0.03617,0.065457 0.03617,0.1653647 z"
style="stroke-width:0.264583"
id="path168-6" />
</g>
<g
aria-label="50"
id="text966-0-3-4"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
transform="translate(-46.758479,114.60519)">
<path
d="m 48.371874,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.105075,0.1179946 -0.06718,0.048231 -0.158475,0.073208 -0.0913,0.024977 -0.198093,0.024977 -0.0267,0 -0.05684,-0.00172 -0.03015,-0.00172 -0.06115,-0.00431 -0.03101,-0.00258 -0.06029,-0.00689 -0.02928,-0.00345 -0.05426,-0.00775 V 1.8863313 q 0.04909,0.012058 0.112827,0.019809 0.06373,0.00689 0.130052,0.00689 0.129191,0 0.196371,-0.049093 0.06804,-0.049954 0.06804,-0.1378039 0,-0.091295 -0.06287,-0.1352201 -0.06287,-0.044786 -0.203261,-0.044786 H 47.660462 V 0.94754221 h 0.6494 V 1.1456353 h -0.45303 v 0.229099 h 0.08096 q 0.08613,0 0.164503,0.015503 0.07838,0.015503 0.137804,0.05426 0.06029,0.037896 0.0956,0.1033529 0.03617,0.065457 0.03617,0.1653647 z"
style="stroke-width:0.264583"
id="path171-2" />
<path
d="m 49.401097,1.505648 q 0,0.1386652 -0.03014,0.2480471 -0.03014,0.1093818 -0.08871,0.185174 -0.0577,0.074931 -0.141249,0.1145495 -0.08354,0.039619 -0.191203,0.039619 -0.09302,0 -0.171393,-0.032728 -0.07838,-0.032729 -0.13522,-0.1024917 -0.05684,-0.070624 -0.08871,-0.1800063 -0.03187,-0.1093819 -0.03187,-0.2618275 0,-0.1386652 0.03015,-0.248047 0.03101,-0.1093819 0.08871,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.0844,-0.0396186 0.191203,-0.0396186 0.09302,0 0.171394,0.0327284 0.07838,0.0327284 0.134359,0.10249171 0.05684,0.069763 0.08871,0.179145 0.03187,0.1093819 0.03187,0.2626887 z m -0.666626,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.0017,0.030145 l 0.422047,-0.304896 q -0.03014,-0.085266 -0.0801,-0.125746 -0.04909,-0.041341 -0.116272,-0.041341 -0.04823,0 -0.08957,0.024977 -0.04134,0.024116 -0.07235,0.074931 -0.03015,0.050815 -0.04823,0.1274686 -0.01723,0.076653 -0.01723,0.1817289 z m 0.454753,0.00345 q 0,-0.014642 -8.62e-4,-0.029283 -8.61e-4,-0.015503 -8.61e-4,-0.029283 L 48.76806,1.7571402 q 0.02756,0.083544 0.07751,0.1240235 0.04995,0.04048 0.116272,0.04048 0.04823,0 0.08957,-0.024977 0.0422,-0.024977 0.07235,-0.074931 0.03101,-0.050815 0.04823,-0.1274686 0.01723,-0.077515 0.01723,-0.1817289 z"
style="stroke-width:0.264583"
id="path173-7" />
</g>
<g
aria-label="75"
id="text966-0-7-6"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
transform="translate(-71.57512,90.04448)">
<path
d="M 72.926595,2.0732279 H 72.688884 L 73.136746,1.150803 H 72.596727 V 0.94754221 h 0.782037 V 1.1309937 Z"
style="stroke-width:0.264583"
id="path176-3" />
<path
d="m 74.343392,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.105076,0.1179946 -0.06718,0.048231 -0.158474,0.073208 -0.0913,0.024977 -0.198093,0.024977 -0.0267,0 -0.05684,-0.00172 -0.03014,-0.00172 -0.06115,-0.00431 -0.03101,-0.00258 -0.06029,-0.00689 -0.02928,-0.00345 -0.05426,-0.00775 V 1.8863313 q 0.04909,0.012058 0.112826,0.019809 0.06373,0.00689 0.130053,0.00689 0.129191,0 0.19637,-0.049093 0.06804,-0.049954 0.06804,-0.1378039 0,-0.091295 -0.06287,-0.1352201 -0.06287,-0.044786 -0.203261,-0.044786 H 73.631979 V 0.94754221 H 74.28138 V 1.1456353 h -0.45303 v 0.229099 h 0.08096 q 0.08613,0 0.164504,0.015503 0.07838,0.015503 0.137804,0.05426 0.06029,0.037896 0.0956,0.1033529 0.03617,0.065457 0.03617,0.1653647 z"
style="stroke-width:0.264583"
id="path178-3" />
</g>
<g
aria-label="150"
id="text966-0-5-1-6"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.76389px;line-height:1.25;font-family:Consolas;-inkscape-font-specification:'Consolas, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
transform="translate(-145.49952,14.988432)">
<path
d="M 146.47099,2.0732279 V 1.8863313 h 0.2868 V 1.1628608 l -0.24977,0.1378039 -0.0689,-0.1713936 0.35743,-0.18861909 h 0.17656 V 1.8863313 h 0.24719 v 0.1868966 z"
style="stroke-width:0.264583"
id="path195-7" />
<path
d="m 148.17803,1.7132152 q 0,0.090434 -0.0379,0.1610583 -0.0379,0.069763 -0.10508,0.1179946 -0.0672,0.048231 -0.15847,0.073208 -0.0913,0.024977 -0.1981,0.024977 -0.0267,0 -0.0568,-0.00172 -0.0301,-0.00172 -0.0611,-0.00431 -0.031,-0.00258 -0.0603,-0.00689 -0.0293,-0.00345 -0.0543,-0.00775 V 1.8863313 q 0.0491,0.012058 0.11283,0.019809 0.0637,0.00689 0.13005,0.00689 0.12919,0 0.19637,-0.049093 0.068,-0.049954 0.068,-0.1378039 0,-0.091295 -0.0629,-0.1352201 -0.0629,-0.044786 -0.20326,-0.044786 h -0.22049 V 0.94754221 h 0.6494 V 1.1456353 h -0.45303 v 0.229099 h 0.081 q 0.0861,0 0.1645,0.015503 0.0784,0.015503 0.13781,0.05426 0.0603,0.037896 0.0956,0.1033529 0.0362,0.065457 0.0362,0.1653647 z"
style="stroke-width:0.264583"
id="path197-7" />
<path
d="m 149.20726,1.505648 q 0,0.1386652 -0.0301,0.2480471 -0.0301,0.1093818 -0.0887,0.185174 -0.0577,0.074931 -0.14125,0.1145495 -0.0835,0.039619 -0.1912,0.039619 -0.093,0 -0.1714,-0.032728 -0.0784,-0.032729 -0.13522,-0.1024917 -0.0568,-0.070624 -0.0887,-0.1800063 -0.0319,-0.1093819 -0.0319,-0.2618275 0,-0.1386652 0.0301,-0.248047 0.031,-0.1093819 0.0887,-0.1843127 0.0577,-0.075792 0.14211,-0.11541081 0.0844,-0.0396186 0.1912,-0.0396186 0.093,0 0.1714,0.0327284 0.0784,0.0327284 0.13436,0.10249171 0.0568,0.069763 0.0887,0.179145 0.0319,0.1093819 0.0319,0.2626879 z m -0.66663,0.00345 q 0,0.017225 0,0.032728 0,0.014642 0.002,0.030145 l 0.42203,-0.3048912 q -0.0301,-0.085266 -0.0801,-0.125746 -0.0491,-0.041341 -0.11627,-0.041341 -0.0482,0 -0.0896,0.024977 -0.0413,0.024116 -0.0723,0.074931 -0.0301,0.050815 -0.0482,0.1274686 -0.0172,0.076653 -0.0172,0.1817289 z m 0.45475,0.00345 q 0,-0.014642 -8.6e-4,-0.029283 -8.6e-4,-0.015503 -8.6e-4,-0.029283 l -0.41944,0.3031686 q 0.0276,0.083544 0.0775,0.1240235 0.05,0.04048 0.11628,0.04048 0.0482,0 0.0896,-0.024977 0.0422,-0.024977 0.0723,-0.074931 0.031,-0.050815 0.0482,-0.1274686 0.0172,-0.077515 0.0172,-0.1817289 z"
style="stroke-width:0.264583"
id="path199-0" />
</g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 253 B

View File

@ -1,4 +1,5 @@
min_slic3r_version = 2.3.2-alpha0 min_slic3r_version = 2.3.2-alpha0
0.0.9 Added AzteQ Industrial materials PC/ABS (Fillamentum), PC-Max (Polymaker), Nylon FX256 (Fillamentum), Added DeltiQ 2 materials Nylon PA12 (Fiberlogy), Nylon CF15 Carbon (Fillamentum), PEBA 90A - FlexFill (Fillamentum), MoldLay (Wax-Alike), disabled retract only when crossing perimeters, some minor setting improvements
0.0.8 Added new AzteQ Industrial printer, added DeltiQ 2 profiles for 0.6mm nozzle, added material ASA 275 (Spectrum), some minor setting improvements 0.0.8 Added new AzteQ Industrial printer, added DeltiQ 2 profiles for 0.6mm nozzle, added material ASA 275 (Spectrum), some minor setting improvements
min_slic3r_version = 2.3.0-alpha3 min_slic3r_version = 2.3.0-alpha3
0.0.7 Added PLA, PETG profiles for 0.25 nozzle, fixed supports on 0.8 nozzle profile, fixed max volumetric speed, disabled elefant foot compensation 0.0.7 Added PLA, PETG profiles for 0.25 nozzle, fixed supports on 0.8 nozzle profile, fixed max volumetric speed, disabled elefant foot compensation

View File

@ -6,7 +6,7 @@
name = TriLAB name = TriLAB
# Configuration version of this file. Config file will only be installed, if the config_version differs. # 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. # This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 0.0.8 config_version = 0.0.9
# Where to get the updates from? # Where to get the updates from?
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/TriLAB/ config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/TriLAB/
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
@ -22,7 +22,7 @@ technology = FFF
family = AzteQ family = AzteQ
bed_model = aq_bed.stl bed_model = aq_bed.stl
bed_texture = aq_bed_texture.svg bed_texture = aq_bed_texture.svg
default_materials = AzteQ Industrial (Door Opened) - PLA - ExtraFill (Fillamentum);AzteQ Industrial (Door Opened) - PLA - Generic;AzteQ Industrial (PLA Printhead) - PLA - ExtraFill (Fillamentum);AzteQ Industrial - ABS - ExtraFill (Fillamentum);AzteQ Industrial - ABS - Generic;AzteQ Industrial - ASA - ExtraFill (Fillamentum);AzteQ Industrial - ASA - Generic;AzteQ Industrial - ASA - Prusament (Prusa);AzteQ Industrial - PA - Nylon PA12 (Fiberlogy);AzteQ Industrial - PC Blend - Prusament (Prusa) default_materials = AzteQ Industrial (Door Opened) - PLA - ExtraFill (Fillamentum);AzteQ Industrial (Door Opened) - PLA - Generic;AzteQ Industrial (PLA Printhead) - PLA - ExtraFill (Fillamentum);AzteQ Industrial - ABS - ExtraFill (Fillamentum);AzteQ Industrial - ABS - Generic;AzteQ Industrial - ASA - ExtraFill (Fillamentum);AzteQ Industrial - ASA - Generic;AzteQ Industrial - ASA - Prusament (Prusa);AzteQ Industrial - PA - Nylon PA12 (Fiberlogy);AzteQ Industrial - PC Blend - Prusament (Prusa);AzteQ Industrial - PC - PolyMax (Polymaker);AzteQ Industrial - PC - PolyMax (Polymaker) @0.6 nozzle;AzteQ Industrial - PC/ABS - (Fillamentum);AzteQ Industrial - PC/ABS - (Fillamentum) @0.6 nozzle;AzteQ Industrial - PA - Nylon FX256 (Fillamentum);AzteQ Industrial - PA - Nylon FX256 (Fillamentum) @0.6 nozzle
[printer_model:DQ2] [printer_model:DQ2]
name = DeltiQ 2 name = DeltiQ 2
@ -31,7 +31,7 @@ technology = FFF
family = DeltiQ 2 family = DeltiQ 2
bed_model = dq2_bed.stl bed_model = dq2_bed.stl
bed_texture = dq2_bed_texture.svg bed_texture = dq2_bed_texture.svg
default_materials = DeltiQ - PLA - Generic;DeltiQ - PLA - ExtraFill (Fillamentum);DeltiQ - PETG - Generic;DeltiQ - PETG (Devil Design);DeltiQ - ABS - Generic;DeltiQ - ABS - ExtraFill (Fillamentum);DeltiQ - ASA - ExtraFill (Fillamentum);DeltiQ - ASA - ASA 275 (Spectrum);DeltiQ - CPE - HG100 (Fillamentum);DeltiQ - PLA - ExtraFill (Fillamentum) @0.25 nozzle;DeltiQ - PETG (Devil Design) @0.25 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - PETG (Devil Design) @0.6 nozzle;DeltiQ - ABS - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ASA 275 (Spectrum) @0.6 nozzle;DeltiQ - CPE - HG100 (Fillamentum) @0.6 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.8 nozzle;DeltiQ - PETG (Devil Design) @0.8 nozzle default_materials = DeltiQ - PLA - Generic;DeltiQ - PLA - ExtraFill (Fillamentum);DeltiQ - PETG - Generic;DeltiQ - PETG (Devil Design);DeltiQ - ABS - Generic;DeltiQ - ABS - ExtraFill (Fillamentum);DeltiQ - ASA - ExtraFill (Fillamentum);DeltiQ - ASA - ASA 275 (Spectrum);DeltiQ - CPE - HG100 (Fillamentum);DeltiQ - PLA - ExtraFill (Fillamentum) @0.25 nozzle;DeltiQ - PETG (Devil Design) @0.25 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - PETG (Devil Design) @0.6 nozzle;DeltiQ - ABS - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ASA 275 (Spectrum) @0.6 nozzle;DeltiQ - CPE - HG100 (Fillamentum) @0.6 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.8 nozzle;DeltiQ - PETG (Devil Design) @0.8 nozzle;DeltiQ - PA - Nylon PA12 (Fiberlogy);DeltiQ - PA - Nylon CF15 Carbon (Fillamentum);DeltiQ - MoldLay (Wax-Alike)
[printer_model:DQ2P] [printer_model:DQ2P]
name = DeltiQ 2 Plus name = DeltiQ 2 Plus
@ -40,7 +40,7 @@ technology = FFF
family = DeltiQ 2 family = DeltiQ 2
bed_model = dq2_bed.stl bed_model = dq2_bed.stl
bed_texture = dq2_bed_texture.svg bed_texture = dq2_bed_texture.svg
default_materials = DeltiQ - PLA - Generic;DeltiQ - PLA - ExtraFill (Fillamentum);DeltiQ - PETG - Generic;DeltiQ - PETG (Devil Design);DeltiQ - ABS - Generic;DeltiQ - ABS - ExtraFill (Fillamentum);DeltiQ - ASA - ExtraFill (Fillamentum);DeltiQ - ASA - ASA 275 (Spectrum);DeltiQ - CPE - HG100 (Fillamentum);DeltiQ - PLA - ExtraFill (Fillamentum) @0.25 nozzle;DeltiQ - PETG (Devil Design) @0.25 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - PETG (Devil Design) @0.6 nozzle;DeltiQ - ABS - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ASA 275 (Spectrum) @0.6 nozzle;DeltiQ - CPE - HG100 (Fillamentum) @0.6 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.8 nozzle;DeltiQ - PETG (Devil Design) @0.8 nozzle default_materials = DeltiQ - PLA - Generic;DeltiQ - PLA - ExtraFill (Fillamentum);DeltiQ - PETG - Generic;DeltiQ - PETG (Devil Design);DeltiQ - ABS - Generic;DeltiQ - ABS - ExtraFill (Fillamentum);DeltiQ - ASA - ExtraFill (Fillamentum);DeltiQ - ASA - ASA 275 (Spectrum);DeltiQ - CPE - HG100 (Fillamentum);DeltiQ - PLA - ExtraFill (Fillamentum) @0.25 nozzle;DeltiQ - PETG (Devil Design) @0.25 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - PETG (Devil Design) @0.6 nozzle;DeltiQ - ABS - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ExtraFill (Fillamentum) @0.6 nozzle;DeltiQ - ASA - ASA 275 (Spectrum) @0.6 nozzle;DeltiQ - CPE - HG100 (Fillamentum) @0.6 nozzle;DeltiQ - PLA - ExtraFill (Fillamentum) @0.8 nozzle;DeltiQ - PETG (Devil Design) @0.8 nozzle;DeltiQ - PA - Nylon PA12 (Fiberlogy);DeltiQ - PA - Nylon CF15 Carbon (Fillamentum);DeltiQ - MoldLay (Wax-Alike)
[printer_model:DQ2+FP2] [printer_model:DQ2+FP2]
name = DeltiQ 2 + FlexPrint 2 name = DeltiQ 2 + FlexPrint 2
@ -49,7 +49,7 @@ technology = FFF
family = DeltiQ 2 family = DeltiQ 2
bed_model = dq2_bed.stl bed_model = dq2_bed.stl
bed_texture = dq2_bed_texture.svg bed_texture = dq2_bed_texture.svg
default_materials = DeltiQ FP2 - PLA - Generic;DeltiQ FP2 - PLA - ExtraFill (Fillamentum);DeltiQ FP2 - PETG - Generic;DeltiQ FP2 - PETG (Devil Design);DeltiQ FP2 - ABS - Generic;DeltiQ FP2 - ABS - ExtraFill (Fillamentum);DeltiQ FP2 - ASA - ExtraFill (Fillamentum);DeltiQ FP2 - CPE - HG100 (Fillamentum);DeltiQ FP2 - FLEX - Generic;DeltiQ FP2 - TPU 92A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 98A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 93A (SMARTFIL) default_materials = DeltiQ FP2 - PLA - Generic;DeltiQ FP2 - PLA - ExtraFill (Fillamentum);DeltiQ FP2 - PETG - Generic;DeltiQ FP2 - PETG (Devil Design);DeltiQ FP2 - ABS - Generic;DeltiQ FP2 - ABS - ExtraFill (Fillamentum);DeltiQ FP2 - ASA - ExtraFill (Fillamentum);DeltiQ FP2 - CPE - HG100 (Fillamentum);DeltiQ FP2 - FLEX - Generic;DeltiQ FP2 - TPU 92A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 98A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 93A (SMARTFIL);DeltiQ FP2 - PEBA 90A - FlexFill (Fillamentum)
[printer_model:DQ2P+FP2] [printer_model:DQ2P+FP2]
name = DeltiQ 2 Plus + FlexPrint 2 name = DeltiQ 2 Plus + FlexPrint 2
@ -58,7 +58,7 @@ technology = FFF
family = DeltiQ 2 family = DeltiQ 2
bed_model = dq2_bed.stl bed_model = dq2_bed.stl
bed_texture = dq2_bed_texture.svg bed_texture = dq2_bed_texture.svg
default_materials = DeltiQ FP2 - PLA - Generic;DeltiQ FP2 - PLA - ExtraFill (Fillamentum);DeltiQ FP2 - PETG - Generic;DeltiQ FP2 - PETG (Devil Design);DeltiQ FP2 - ABS - Generic;DeltiQ FP2 - ABS - ExtraFill (Fillamentum);DeltiQ FP2 - ASA - ExtraFill (Fillamentum);DeltiQ FP2 - CPE - HG100 (Fillamentum);DeltiQ FP2 - FLEX - Generic;DeltiQ FP2 - TPU 92A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 98A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 93A (SMARTFIL) default_materials = DeltiQ FP2 - PLA - Generic;DeltiQ FP2 - PLA - ExtraFill (Fillamentum);DeltiQ FP2 - PETG - Generic;DeltiQ FP2 - PETG (Devil Design);DeltiQ FP2 - ABS - Generic;DeltiQ FP2 - ABS - ExtraFill (Fillamentum);DeltiQ FP2 - ASA - ExtraFill (Fillamentum);DeltiQ FP2 - CPE - HG100 (Fillamentum);DeltiQ FP2 - FLEX - Generic;DeltiQ FP2 - TPU 92A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 98A - FlexFill (Fillamentum);DeltiQ FP2 - TPU 93A (SMARTFIL);DeltiQ FP2 - PEBA 90A - FlexFill (Fillamentum)
[printer_model:DQ2+FP] [printer_model:DQ2+FP]
name = DeltiQ 2 + FlexPrint name = DeltiQ 2 + FlexPrint
@ -156,7 +156,7 @@ max_print_speed = 60
max_volumetric_speed = 0 max_volumetric_speed = 0
min_skirt_length = 4 min_skirt_length = 4
notes = notes =
only_retract_when_crossing_perimeters = 1 only_retract_when_crossing_perimeters = 0
ooze_prevention = 0 ooze_prevention = 0
output_filename_format = {input_filename_base}_{printer_model}_{filament_type[0]}_{layer_height}mm_{print_time}_{timestamp}.gcode output_filename_format = {input_filename_base}_{printer_model}_{filament_type[0]}_{layer_height}mm_{print_time}_{timestamp}.gcode
overhangs = 1 overhangs = 1
@ -456,7 +456,7 @@ max_print_speed = 60
max_volumetric_speed = 0 max_volumetric_speed = 0
min_skirt_length = 4 min_skirt_length = 4
notes = notes =
only_retract_when_crossing_perimeters = 1 only_retract_when_crossing_perimeters = 0
ooze_prevention = 0 ooze_prevention = 0
output_filename_format = {input_filename_base}_{printer_model}_{filament_type[0]}_{layer_height}mm_{print_time}_{timestamp}.gcode output_filename_format = {input_filename_base}_{printer_model}_{filament_type[0]}_{layer_height}mm_{print_time}_{timestamp}.gcode
overhangs = 1 overhangs = 1
@ -1050,6 +1050,63 @@ min_print_speed = 10
slowdown_below_layer_time = 4 slowdown_below_layer_time = 4
temperature = 235 temperature = 235
[filament:DeltiQ FP2 - PEBA 90A - FlexFill (Fillamentum)]
inherits = DeltiQ FP2 - TPU 98A - FlexFill (Fillamentum)
extrusion_multiplier = 1.1
filament_cost = 3578
filament_density = 1.00
filament_max_volumetric_speed = 2.9
filament_retract_length = 0.0
filament_type = PEBA90A
bridge_fan_speed = 100
max_fan_speed = 50
min_fan_speed = 50
disable_fan_first_layers = 2
first_layer_bed_temperature = 75
first_layer_temperature = 245
bed_temperature = 75
temperature = 245
[filament:DeltiQ - PA - Nylon PA12 (Fiberlogy)]
inherits = DeltiQ - ABS - Generic
bed_temperature = 100
filament_cost = 1213
filament_density = 1.02
filament_retract_length = 4.1
filament_type = NYLON
first_layer_bed_temperature = 100
first_layer_temperature = 255
max_fan_speed = 30
min_fan_speed = 20
temperature = 255
[filament:DeltiQ - PA - Nylon CF15 Carbon (Fillamentum)]
inherits = DeltiQ - ABS - Generic
bed_temperature = 100
filament_cost = 2287
filament_density = 1.08
filament_retract_length = 2.0
filament_type = NYLON
first_layer_bed_temperature = 100
first_layer_temperature = 255
max_fan_speed = 50
min_fan_speed = 20
temperature = 255
extrusion_multiplier = 0.95
[filament:DeltiQ - MoldLay (Wax-Alike)]
inherits = DeltiQ - PLA - Generic
bed_temperature = 50
filament_cost = 1951
filament_retract_length = 2.0
filament_type = PLA
first_layer_bed_temperature = 50
first_layer_temperature = 175
max_fan_speed = 70
min_fan_speed = 70
temperature = 175
filament_vendor = Wax-Alike
# AzteQ filaments # # AzteQ filaments #
[filament:*AzteQ common*] [filament:*AzteQ common*]
@ -1211,6 +1268,47 @@ inherits = AzteQ Industrial - ABS - ExtraFill (Fillamentum)
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6 compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6
filament_max_volumetric_speed = 15 filament_max_volumetric_speed = 15
[filament:AzteQ Industrial - PC/ABS - (Fillamentum)]
inherits = AzteQ Industrial - ABS - Generic
filament_vendor = Fillamentum
filament_type = PCABS
filament_cost = 1324
filament_density = 1.07
bed_temperature = 100
filament_retract_length = 4.0
first_layer_bed_temperature = 100
first_layer_temperature = 265
max_fan_speed = 50
min_fan_speed = 50
start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S75 ; Set and wait - chamber temperature"
temperature = 265
filament_notes = "S180 ; Probing temperature"
[filament:AzteQ Industrial - PC/ABS - (Fillamentum) @0.6 nozzle]
inherits = AzteQ Industrial - PC/ABS - (Fillamentum)
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6
filament_max_volumetric_speed = 15
[filament:AzteQ Industrial - PC - PolyMax (Polymaker)]
inherits = AzteQ Industrial - ABS - Generic
filament_vendor = Polymaker
filament_cost = 1290
filament_density = 1.21
bed_temperature = 100
filament_retract_length = 4.0
first_layer_bed_temperature = 100
first_layer_temperature = 265
max_fan_speed = 50
min_fan_speed = 50
start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S75 ; Set and wait - chamber temperature"
temperature = 265
filament_notes = "S180 ; Probing temperature"
[filament:AzteQ Industrial - PC - PolyMax (Polymaker) @0.6 nozzle]
inherits = AzteQ Industrial - PC - PolyMax (Polymaker)
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6
filament_max_volumetric_speed = 15
[filament:AzteQ Industrial - ASA - Generic] [filament:AzteQ Industrial - ASA - Generic]
inherits = *AzteQ common* inherits = *AzteQ common*
bed_temperature = 100 bed_temperature = 100
@ -1245,7 +1343,7 @@ max_fan_speed = 75
min_fan_speed = 50 min_fan_speed = 50
min_print_speed = 10 min_print_speed = 10
slowdown_below_layer_time = 5 slowdown_below_layer_time = 5
start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S75 ; Set and wait - chamber temperature" start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S50 ; Set and wait - chamber temperature"
temperature = 265 temperature = 265
[filament:AzteQ Industrial - ASA - Generic @0.6 nozzle] [filament:AzteQ Industrial - ASA - Generic @0.6 nozzle]
@ -1256,6 +1354,10 @@ filament_max_volumetric_speed = 15
[filament:AzteQ Industrial - ASA - ExtraFill (Fillamentum)] [filament:AzteQ Industrial - ASA - ExtraFill (Fillamentum)]
inherits = AzteQ Industrial - ASA - Generic inherits = AzteQ Industrial - ASA - Generic
filament_vendor = Fillamentum filament_vendor = Fillamentum
first_layer_temperature = 255
temperature = 255
max_fan_speed = 80
min_fan_speed = 60
[filament:AzteQ Industrial - ASA - ExtraFill (Fillamentum) @0.6 nozzle] [filament:AzteQ Industrial - ASA - ExtraFill (Fillamentum) @0.6 nozzle]
inherits = AzteQ Industrial - ASA - ExtraFill (Fillamentum) inherits = AzteQ Industrial - ASA - ExtraFill (Fillamentum)
@ -1268,11 +1370,11 @@ filament_cost = 680
filament_density = 1.07 filament_density = 1.07
filament_spool_weight = 0 filament_spool_weight = 0
filament_vendor = Prusa filament_vendor = Prusa
first_layer_temperature = 255 first_layer_temperature = 260
max_fan_speed = 100 max_fan_speed = 70
min_fan_speed = 95 min_fan_speed = 70
start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S50 ; Set and wait - chamber temperature" start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S50 ; Set and wait - chamber temperature"
temperature = 255 temperature = 260
[filament:AzteQ Industrial - ASA - Prusament (Prusa) @0.6 nozzle] [filament:AzteQ Industrial - ASA - Prusament (Prusa) @0.6 nozzle]
inherits = AzteQ Industrial - ASA - Prusament (Prusa) inherits = AzteQ Industrial - ASA - Prusament (Prusa)
@ -1325,6 +1427,52 @@ inherits = AzteQ Industrial - PA - Nylon PA12 (Fiberlogy)
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6 compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6
filament_max_volumetric_speed = 15 filament_max_volumetric_speed = 15
[filament:AzteQ Industrial - PA - Nylon FX256 (Fillamentum)]
inherits = *AzteQ common*
bed_temperature = 100
bridge_fan_speed = 100
cooling = 1
disable_fan_first_layers = 3
extrusion_multiplier = 1
fan_always_on = 1
fan_below_layer_time = 20
filament_cost = 1565
filament_density = 1.01
filament_deretract_speed = nil
filament_max_volumetric_speed = 8
filament_retract_before_travel = 3
filament_retract_before_wipe = 70%
filament_retract_layer_change = 1
filament_retract_length = 6.1
filament_retract_lift = 0.2
filament_retract_lift_above = nil
filament_retract_lift_below = nil
filament_retract_restart_extra = nil
filament_retract_speed = 25
filament_soluble = 0
filament_spool_weight = 0
filament_toolchange_delay = 0
filament_type = NYLON
filament_unload_time = 0
filament_unloading_speed = 90
filament_unloading_speed_start = 100
filament_vendor = Fillamentum
filament_wipe = 1
first_layer_bed_temperature = 100
first_layer_temperature = 255
full_fan_speed_layer = 0
max_fan_speed = 85
min_fan_speed = 50
min_print_speed = 10
slowdown_below_layer_time = 5
start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S60 ; Set and wait - chamber temperature"
temperature = 255
[filament:AzteQ Industrial - PA - Nylon FX256 (Fillamentum) @0.6 nozzle]
inherits = AzteQ Industrial - PA - Nylon FX256 (Fillamentum)
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6
filament_max_volumetric_speed = 15
[filament:AzteQ Industrial - PC Blend - Prusament (Prusa)] [filament:AzteQ Industrial - PC Blend - Prusament (Prusa)]
inherits = *AzteQ common* inherits = *AzteQ common*
bed_temperature = 100 bed_temperature = 100
@ -1353,19 +1501,22 @@ filament_type = PC
filament_vendor = Prusa filament_vendor = Prusa
filament_wipe = 1 filament_wipe = 1
first_layer_bed_temperature = 100 first_layer_bed_temperature = 100
first_layer_temperature = 275 first_layer_temperature = 270
full_fan_speed_layer = 0 full_fan_speed_layer = 0
max_fan_speed = 50 max_fan_speed = 50
min_fan_speed = 30 min_fan_speed = 30
min_print_speed = 10 min_print_speed = 10
slowdown_below_layer_time = 5 slowdown_below_layer_time = 5
start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S75 ; Set and wait - chamber temperature" start_filament_gcode = "; FILAMENT_START_GCODE\nM191 S75 ; Set and wait - chamber temperature"
temperature = 275 temperature = 270
filament_notes = "S180 ; Probing temperature"
[filament:AzteQ Industrial - PC Blend - Prusament (Prusa) @0.6 nozzle] [filament:AzteQ Industrial - PC Blend - Prusament (Prusa) @0.6 nozzle]
inherits = AzteQ Industrial - PC Blend - Prusament (Prusa) inherits = AzteQ Industrial - PC Blend - Prusament (Prusa)
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6 compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6
filament_max_volumetric_speed = 15 filament_max_volumetric_speed = 15
# DeltiQ Printer # # DeltiQ Printer #
@ -1581,7 +1732,7 @@ retract_lift_below = 0
retract_restart_extra = 0 retract_restart_extra = 0
retract_restart_extra_toolchange = 0 retract_restart_extra_toolchange = 0
retract_speed = 30 retract_speed = 30
start_gcode = ; START_GCODE\nT0\nM220 S100 ; Set feedmultiply back to 100 percent\nG90 ; Absolute positioning for motion\nM83 ; Relative extruder\nM107 ; Layer fan off\n\nM140 S[first_layer_bed_temperature] ; Set and continue - bed temperature\n[start_filament_gcode]\nM104 S150 ; Set and continue - hotend probing temperature\nM190 S[first_layer_bed_temperature] ; Set and wait - bed temperature\nM109 S150 ; Set and wait - hotend probing temperature\n\nG28 ; Home all axes\nG32 ; Probe Z and calculate Z plane\nG29 ; Mesh bed probe\n\nM104 S[first_layer_temperature] ; Set and continue - printing temperature\n\nG1009 ; Purge hotend\nG92 E0 ; Zero extruder start_gcode = ; START_GCODE\nT0\nM220 S100 ; Set feedmultiply back to 100 percent\nG90 ; Absolute positioning for motion\nM83 ; Relative extruder\nM107 ; Layer fan off\n\nM140 S[first_layer_bed_temperature] ; Set and continue - bed temperature\nM104 S150 ; Set and continue - hotend probing temperature\n[start_filament_gcode]\nM190 S[first_layer_bed_temperature] ; Set and wait - bed temperature\nM109 [filament_notes] ; Set and wait for material specific hotend probing temperature\n\nG28 ; Home all axes\nG32 ; Probe Z and calculate Z plane\nG29 ; Mesh bed probe\n\nM104 S[first_layer_temperature] ; Set and continue - printing temperature\n\nG1009 ; Purge hotend\nG92 E0 ; Zero extruder
wipe = 1 wipe = 1
[printer:AzteQ Industrial] [printer:AzteQ Industrial]

View File

@ -43,6 +43,10 @@ const std::string AppConfig::SECTION_MATERIALS = "sla_materials";
void AppConfig::reset() void AppConfig::reset()
{ {
m_storage.clear(); m_storage.clear();
m_vendors.clear();
m_dirty = false;
m_orig_version = Semver::invalid();
m_legacy_datadir = false;
set_defaults(); set_defaults();
}; };
@ -243,8 +247,10 @@ static bool verify_config_file_checksum(boost::nowide::ifstream &ifs)
} }
#endif #endif
std::string AppConfig::load() std::string AppConfig::load(const std::string &path)
{ {
this->reset();
// 1) Read the complete config file into a boost::property_tree. // 1) Read the complete config file into a boost::property_tree.
namespace pt = boost::property_tree; namespace pt = boost::property_tree;
pt::ptree tree; pt::ptree tree;
@ -252,11 +258,11 @@ std::string AppConfig::load()
bool recovered = false; bool recovered = false;
try { try {
ifs.open(AppConfig::loading_path()); ifs.open(path);
#ifdef WIN32 #ifdef WIN32
// Verify the checksum of the config file without taking just for debugging purpose. // Verify the checksum of the config file without taking just for debugging purpose.
if (!verify_config_file_checksum(ifs)) if (!verify_config_file_checksum(ifs))
BOOST_LOG_TRIVIAL(info) << "The configuration file " << AppConfig::loading_path() << BOOST_LOG_TRIVIAL(info) << "The configuration file " << path <<
" has a wrong MD5 checksum or the checksum is missing. This may indicate a file corruption or a harmless user edit."; " has a wrong MD5 checksum or the checksum is missing. This may indicate a file corruption or a harmless user edit.";
ifs.seekg(0, boost::nowide::ifstream::beg); ifs.seekg(0, boost::nowide::ifstream::beg);
@ -266,32 +272,32 @@ std::string AppConfig::load()
#ifdef WIN32 #ifdef WIN32
// The configuration file is corrupted, try replacing it with the backup configuration. // The configuration file is corrupted, try replacing it with the backup configuration.
ifs.close(); ifs.close();
std::string backup_path = (boost::format("%1%.bak") % AppConfig::loading_path()).str(); std::string backup_path = (boost::format("%1%.bak") % path).str();
if (boost::filesystem::exists(backup_path)) { if (boost::filesystem::exists(backup_path)) {
// Compute checksum of the configuration backup file and try to load configuration from it when the checksum is correct. // Compute checksum of the configuration backup file and try to load configuration from it when the checksum is correct.
boost::nowide::ifstream backup_ifs(backup_path); boost::nowide::ifstream backup_ifs(backup_path);
if (!verify_config_file_checksum(backup_ifs)) { if (!verify_config_file_checksum(backup_ifs)) {
BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", AppConfig::loading_path(), backup_path); BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", path, backup_path);
backup_ifs.close(); backup_ifs.close();
boost::filesystem::remove(backup_path); boost::filesystem::remove(backup_path);
} else if (std::string error_message; copy_file(backup_path, AppConfig::loading_path(), error_message, false) != SUCCESS) { } else if (std::string error_message; copy_file(backup_path, path, error_message, false) != SUCCESS) {
BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", AppConfig::loading_path(), backup_path, error_message); BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", path, backup_path, error_message);
backup_ifs.close(); backup_ifs.close();
boost::filesystem::remove(backup_path); boost::filesystem::remove(backup_path);
} else { } else {
BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", AppConfig::loading_path(), backup_path); BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", path, backup_path);
// Try parse configuration file after restore from backup. // Try parse configuration file after restore from backup.
try { try {
ifs.open(AppConfig::loading_path()); ifs.open(path);
pt::read_ini(ifs, tree); pt::read_ini(ifs, tree);
recovered = true; recovered = true;
} catch (pt::ptree_error& ex) { } catch (pt::ptree_error& ex) {
BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", AppConfig::loading_path(), ex.what()); BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", path, ex.what());
} }
} }
} else } else
#endif // WIN32 #endif // WIN32
BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", AppConfig::loading_path(), ex.what()); BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", path, ex.what());
if (! recovered) { if (! recovered) {
// Report the initial error of parsing PrusaSlicer.ini. // Report the initial error of parsing PrusaSlicer.ini.
// Error while parsing config file. We'll customize the error message and rethrow to be displayed. // Error while parsing config file. We'll customize the error message and rethrow to be displayed.
@ -367,6 +373,11 @@ std::string AppConfig::load()
return ""; return "";
} }
std::string AppConfig::load()
{
return this->load(AppConfig::config_path());
}
void AppConfig::save() void AppConfig::save()
{ {
{ {

View File

@ -22,10 +22,7 @@ public:
}; };
explicit AppConfig(EAppMode mode) : explicit AppConfig(EAppMode mode) :
m_dirty(false), m_mode(mode)
m_orig_version(Semver::invalid()),
m_mode(mode),
m_legacy_datadir(false)
{ {
this->reset(); this->reset();
} }
@ -38,6 +35,8 @@ public:
// Load the slic3r.ini from a user profile directory (or a datadir, if configured). // Load the slic3r.ini from a user profile directory (or a datadir, if configured).
// return error string or empty strinf // return error string or empty strinf
std::string load(); std::string load();
// Load from an explicit path.
std::string load(const std::string &path);
// Store the slic3r.ini into a user profile directory (or a datadir, if configured). // Store the slic3r.ini into a user profile directory (or a datadir, if configured).
void save(); void save();
@ -148,9 +147,6 @@ public:
// Does the config file exist? // Does the config file exist?
bool exists(); bool exists();
void set_loading_path(const std::string& path) { m_loading_path = path; }
std::string loading_path() { return (m_loading_path.empty() ? config_path() : m_loading_path); }
std::vector<std::string> get_recent_projects() const; std::vector<std::string> get_recent_projects() const;
void set_recent_projects(const std::vector<std::string>& recent_projects); void set_recent_projects(const std::vector<std::string>& recent_projects);
@ -199,8 +195,6 @@ private:
Semver m_orig_version; Semver m_orig_version;
// Whether the existing version is before system profiles & configuration updating // Whether the existing version is before system profiles & configuration updating
bool m_legacy_datadir; bool m_legacy_datadir;
std::string m_loading_path;
}; };
} // namespace Slic3r } // namespace Slic3r

View File

@ -731,34 +731,50 @@ static bool need_wipe(const GCode &gcodegen,
} }
// Adds points around all vertices so that the offset affects only small sections around these vertices. // Adds points around all vertices so that the offset affects only small sections around these vertices.
static void resample_polygon(Polygon &polygon, double dist_from_vertex) static void resample_polygon(Polygon &polygon, double dist_from_vertex, double max_allowed_distance)
{ {
Points resampled_poly; Points resampled_poly;
resampled_poly.reserve(3 * polygon.size()); resampled_poly.reserve(3 * polygon.size());
resampled_poly.emplace_back(polygon.first_point()); for (size_t pt_idx = 0; pt_idx < polygon.size(); ++pt_idx) {
for (size_t pt_idx = 1; pt_idx < polygon.size(); ++pt_idx) {
const Point &p1 = polygon[pt_idx - 1];
const Point &p2 = polygon[pt_idx];
double line_length = (p2 - p1).cast<double>().norm();
Vector line_vec = ((p2 - p1).cast<double>().normalized() * dist_from_vertex).cast<coord_t>();
if (line_length > 2 * dist_from_vertex) {
resampled_poly.emplace_back(p1 + line_vec);
resampled_poly.emplace_back(p2 - line_vec);
}
resampled_poly.emplace_back(polygon[pt_idx]); resampled_poly.emplace_back(polygon[pt_idx]);
const Point &p1 = polygon[pt_idx];
const Point &p2 = polygon[next_idx_modulo(pt_idx, polygon.size())];
const Vec2d line_vec = (p2 - p1).cast<double>();
double line_length = line_vec.norm();
const Vector vertex_offset_vec = (line_vec.normalized() * dist_from_vertex).cast<coord_t>();
if (line_length > 2 * dist_from_vertex && vertex_offset_vec != Vector(0, 0)) {
resampled_poly.emplace_back(p1 + vertex_offset_vec);
const Vec2d new_vertex_vec = (p2 - p1 - 2 * vertex_offset_vec).cast<double>();
const double new_vertex_vec_length = new_vertex_vec.norm();
if (new_vertex_vec_length > max_allowed_distance) {
const Vec2d &prev_point = resampled_poly.back().cast<double>();
const size_t parts_count = size_t(ceil(new_vertex_vec_length / max_allowed_distance));
for (size_t part_idx = 1; part_idx < parts_count; ++part_idx) {
const double part_param = double(part_idx) / double(parts_count);
const Vec2d new_point = prev_point + new_vertex_vec * part_param;
resampled_poly.emplace_back(new_point.cast<coord_t>());
}
}
resampled_poly.emplace_back(p2 - vertex_offset_vec);
}
} }
polygon.points = std::move(resampled_poly); polygon.points = std::move(resampled_poly);
} }
static void resample_expolygon(ExPolygon &ex_polygon, double dist_from_vertex) static void resample_expolygon(ExPolygon &ex_polygon, double dist_from_vertex, double max_allowed_distance)
{ {
resample_polygon(ex_polygon.contour, dist_from_vertex); resample_polygon(ex_polygon.contour, dist_from_vertex, max_allowed_distance);
for (Polygon &polygon : ex_polygon.holes) resample_polygon(polygon, dist_from_vertex); for (Polygon &polygon : ex_polygon.holes)
resample_polygon(polygon, dist_from_vertex, max_allowed_distance);
} }
static void resample_expolygons(ExPolygons &ex_polygons, double dist_from_vertex) static void resample_expolygons(ExPolygons &ex_polygons, double dist_from_vertex, double max_allowed_distance)
{ {
for (ExPolygon &ex_poly : ex_polygons) resample_expolygon(ex_poly, dist_from_vertex); for (ExPolygon &ex_poly : ex_polygons)
resample_expolygon(ex_poly, dist_from_vertex, max_allowed_distance);
} }
static void precompute_polygon_distances(const Polygon &polygon, std::vector<float> &polygon_distances_out) static void precompute_polygon_distances(const Polygon &polygon, std::vector<float> &polygon_distances_out)
@ -834,7 +850,7 @@ static std::vector<float> contour_distance(const EdgeGrid::Grid &grid,
double param_end = boundary_parameters.back(); double param_end = boundary_parameters.back();
const size_t ipt = it_contour_and_segment->second; const size_t ipt = it_contour_and_segment->second;
if (contour.begin() + ipt + 1 < contour.end()) if (contour.begin() + ipt + 1 < contour.end())
param_hi += boundary_parameters[ipt > 0 ? ipt - 1 : 0]; param_hi += boundary_parameters[ipt];
if (param_lo > param_hi) if (param_lo > param_hi)
std::swap(param_lo, param_hi); std::swap(param_lo, param_hi);
assert(param_lo > -SCALED_EPSILON && param_lo <= param_end + SCALED_EPSILON); assert(param_lo > -SCALED_EPSILON && param_lo <= param_end + SCALED_EPSILON);
@ -932,7 +948,7 @@ static ExPolygons inner_offset(const ExPolygons &ex_polygons, double offset)
double min_contour_width = 2. * offset + SCALED_EPSILON; double min_contour_width = 2. * offset + SCALED_EPSILON;
double search_radius = 2. * (offset + min_contour_width); double search_radius = 2. * (offset + min_contour_width);
ExPolygons ex_poly_result = ex_polygons; ExPolygons ex_poly_result = ex_polygons;
resample_expolygons(ex_poly_result, offset / 2); resample_expolygons(ex_poly_result, offset / 2, scaled<double>(0.5));
for (ExPolygon &ex_poly : ex_poly_result) { for (ExPolygon &ex_poly : ex_poly_result) {
BoundingBox bbox(get_extents(ex_poly)); BoundingBox bbox(get_extents(ex_poly));
@ -1034,24 +1050,30 @@ static Polygons get_boundary_external(const Layer &layer)
#endif #endif
// Collect all holes for all printed objects and their instances, which will be printed at the same time as passed "layer". // Collect all holes for all printed objects and their instances, which will be printed at the same time as passed "layer".
for (const PrintObject *object : layer.object()->print()->objects()) { for (const PrintObject *object : layer.object()->print()->objects()) {
Polygons polygons_per_obj; Polygons holes_per_obj;
#ifdef INCLUDE_SUPPORTS_IN_BOUNDARY #ifdef INCLUDE_SUPPORTS_IN_BOUNDARY
ExPolygons supports_per_obj; ExPolygons supports_per_obj;
#endif #endif
if (const Layer *l = object->get_layer_at_printz(layer.print_z, EPSILON); l) if (const Layer *l = object->get_layer_at_printz(layer.print_z, EPSILON); l)
for (const ExPolygon &island : l->lslices) append(polygons_per_obj, island.holes); for (const ExPolygon &island : l->lslices)
append(holes_per_obj, island.holes);
if (support_layer) { if (support_layer) {
auto *layer_below = object->get_first_layer_bellow_printz(layer.print_z, EPSILON); auto *layer_below = object->get_first_layer_bellow_printz(layer.print_z, EPSILON);
if (layer_below) if (layer_below)
for (const ExPolygon &island : layer_below->lslices) append(polygons_per_obj, island.holes); for (const ExPolygon &island : layer_below->lslices)
append(holes_per_obj, island.holes);
#ifdef INCLUDE_SUPPORTS_IN_BOUNDARY #ifdef INCLUDE_SUPPORTS_IN_BOUNDARY
append(supports_per_obj, support_layer->support_islands.expolygons); append(supports_per_obj, support_layer->support_islands.expolygons);
#endif #endif
} }
// After 7ff76d07684858fd937ef2f5d863f105a10f798e, when expand is called on CW polygons (holes), they are shrunk
// instead of expanded because union that makes CCW from CW isn't called anymore. So let's make it CCW.
polygons_reverse(holes_per_obj);
for (const PrintInstance &instance : object->instances()) { for (const PrintInstance &instance : object->instances()) {
size_t boundary_idx = boundary.size(); size_t boundary_idx = boundary.size();
append(boundary, polygons_per_obj); append(boundary, holes_per_obj);
for (; boundary_idx < boundary.size(); ++boundary_idx) for (; boundary_idx < boundary.size(); ++boundary_idx)
boundary[boundary_idx].translate(instance.shift); boundary[boundary_idx].translate(instance.shift);
#ifdef INCLUDE_SUPPORTS_IN_BOUNDARY #ifdef INCLUDE_SUPPORTS_IN_BOUNDARY

View File

@ -1391,7 +1391,7 @@ const Preset* PrinterPresetCollection::find_system_preset_by_model_and_variant(c
bool PrinterPresetCollection::only_default_printers() const bool PrinterPresetCollection::only_default_printers() const
{ {
for (const auto& printer : get_presets()) { for (const auto& printer : get_presets()) {
if (!boost::starts_with(printer.name,"- default")) if (! printer.is_default)
return false; return false;
} }
return true; return true;

View File

@ -209,18 +209,34 @@ static void copy_dir(const boost::filesystem::path& from_dir, const boost::files
} }
} }
void PresetBundle::copy_files(const std::string& from) // Import newer configuration from alternate PrusaSlicer configuration directory.
// AppConfig from the alternate location is already loaded.
// User profiles are being merged (old files are not being deleted),
// while old vendors and cache folders are being deleted before newer are copied.
void PresetBundle::import_newer_configs(const std::string& from)
{ {
boost::filesystem::path data_dir = boost::filesystem::path(Slic3r::data_dir()); boost::filesystem::path data_dir = boost::filesystem::path(Slic3r::data_dir());
// Clean-up vendors from the target directory, as the existing vendors will not be referenced
// by the copied PrusaSlicer.ini
try {
boost::filesystem::remove_all(data_dir / "cache");
} catch (const std::exception &ex) {
BOOST_LOG_TRIVIAL(error) << "Error deleting old cache " << (data_dir / "cache").string() << ": " << ex.what();
}
try {
boost::filesystem::remove_all(data_dir / "vendor");
} catch (const std::exception &ex) {
BOOST_LOG_TRIVIAL(error) << "Error deleting old vendors " << (data_dir / "vendor").string() << ": " << ex.what();
}
// list of searched paths based on current directory system in setup_directories() // list of searched paths based on current directory system in setup_directories()
// do not copy cache and snapshots // do not copy cache and snapshots
boost::filesystem::path from_data_dir = boost::filesystem::path(from); boost::filesystem::path from_data_dir = boost::filesystem::path(from);
std::initializer_list<boost::filesystem::path> from_dirs= { std::initializer_list<boost::filesystem::path> from_dirs= {
from_data_dir / "cache",
from_data_dir / "vendor", from_data_dir / "vendor",
from_data_dir / "shapes", from_data_dir / "shapes",
#ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR #ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR
// Store the print/filament/printer presets into a "presets" directory. // Store the print/filament/printer presets into a "presets" directory.
data_dir / "presets",
data_dir / "presets" / "print", data_dir / "presets" / "print",
data_dir / "presets" / "filament", data_dir / "presets" / "filament",
data_dir / "presets" / "sla_print", data_dir / "presets" / "sla_print",
@ -1235,11 +1251,13 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_configbundle(
// 1) Read the complete config file into a boost::property_tree. // 1) Read the complete config file into a boost::property_tree.
namespace pt = boost::property_tree; namespace pt = boost::property_tree;
pt::ptree tree; pt::ptree tree;
boost::nowide::ifstream ifs(path); {
try { boost::nowide::ifstream ifs(path);
pt::read_ini(ifs, tree); try {
} catch (const boost::property_tree::ini_parser::ini_parser_error &err) { pt::read_ini(ifs, tree);
throw Slic3r::RuntimeError(format("Failed loading config bundle \"%1%\"\nError: \"%2%\" at line %3%", path, err.message(), err.line()).c_str()); } catch (const boost::property_tree::ini_parser::ini_parser_error &err) {
throw Slic3r::RuntimeError(format("Failed loading config bundle \"%1%\"\nError: \"%2%\" at line %3%", path, err.message(), err.line()).c_str());
}
} }
const VendorProfile *vendor_profile = nullptr; const VendorProfile *vendor_profile = nullptr;

View File

@ -24,7 +24,7 @@ public:
void reset(bool delete_files); void reset(bool delete_files);
void setup_directories(); void setup_directories();
void copy_files(const std::string& from); void import_newer_configs(const std::string& from);
struct PresetPreferences { struct PresetPreferences {
std::string printer_model_id;// name of a preferred printer model std::string printer_model_id;// name of a preferred printer model

View File

@ -586,10 +586,12 @@ const Snapshot* take_config_snapshot_report_error(const AppConfig &app_config, S
} }
} }
bool take_config_snapshot_cancel_on_error(const AppConfig &app_config, Snapshot::Reason reason, const std::string &comment, const std::string &message) bool take_config_snapshot_cancel_on_error(const AppConfig &app_config, Snapshot::Reason reason, const std::string &comment, const std::string &message, Snapshot const **psnapshot)
{ {
try { try {
SnapshotDB::singleton().take_snapshot(app_config, reason, comment); const Snapshot *snapshot = &SnapshotDB::singleton().take_snapshot(app_config, reason, comment);
if (psnapshot)
*psnapshot = snapshot;
return true; return true;
} catch (std::exception &err) { } catch (std::exception &err) {
RichMessageDialog dlg(static_cast<wxWindow*>(wxGetApp().mainframe), RichMessageDialog dlg(static_cast<wxWindow*>(wxGetApp().mainframe),

View File

@ -132,7 +132,7 @@ const Snapshot* take_config_snapshot_report_error(const AppConfig &app_config, S
// Take snapshot on SnapshotDB::singleton(). If taking snapshot fails, report "message", and present a "Continue" or "Abort" buttons to respond. // Take snapshot on SnapshotDB::singleton(). If taking snapshot fails, report "message", and present a "Continue" or "Abort" buttons to respond.
// Return true on success and on "Continue" to continue with the process (for example installation of presets). // Return true on success and on "Continue" to continue with the process (for example installation of presets).
bool take_config_snapshot_cancel_on_error(const AppConfig &app_config, Snapshot::Reason reason, const std::string &comment, const std::string &message); bool take_config_snapshot_cancel_on_error(const AppConfig &app_config, Snapshot::Reason reason, const std::string &comment, const std::string &message, Snapshot const **psnapshot = nullptr);
} // namespace Config } // namespace Config
} // namespace GUI } // namespace GUI

View File

@ -1869,6 +1869,12 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re
// updates volumes transformations // updates volumes transformations
volume->set_instance_transformation(mvs->model_volume->get_object()->instances[mvs->composite_id.instance_id]->get_transformation()); volume->set_instance_transformation(mvs->model_volume->get_object()->instances[mvs->composite_id.instance_id]->get_transformation());
volume->set_volume_transformation(mvs->model_volume->get_transformation()); volume->set_volume_transformation(mvs->model_volume->get_transformation());
// updates volumes convex hull
if (mvs->model_volume->is_model_part() && ! volume->convex_hull())
// Model volume was likely changed from modifier or support blocker / enforcer to a model part.
// Only model parts require convex hulls.
volume->set_convex_hull(mvs->model_volume->get_convex_hull_shared_ptr());
} }
} }
} }

View File

@ -862,9 +862,9 @@ static boost::optional<Semver> parse_semver_from_ini(std::string path)
void GUI_App::init_app_config() void GUI_App::init_app_config()
{ {
// Profiles for the alpha are stored into the PrusaSlicer-alpha directory to not mix with the current release. // Profiles for the alpha are stored into the PrusaSlicer-alpha directory to not mix with the current release.
// SetAppName(SLIC3R_APP_KEY); SetAppName(SLIC3R_APP_KEY);
// SetAppName(SLIC3R_APP_KEY "-alpha"); // SetAppName(SLIC3R_APP_KEY "-alpha");
SetAppName(SLIC3R_APP_KEY "-beta"); // SetAppName(SLIC3R_APP_KEY "-beta");
// SetAppDisplayName(SLIC3R_APP_NAME); // SetAppDisplayName(SLIC3R_APP_NAME);
// Set the Slic3r data directory at the Slic3r XS module. // Set the Slic3r data directory at the Slic3r XS module.
@ -909,17 +909,18 @@ void GUI_App::init_app_config()
"\n\n" + app_config->config_path() + "\n\n" + error); "\n\n" + app_config->config_path() + "\n\n" + error);
} }
} }
// Save orig_version here, so its empty if no app_config existed before this run.
m_last_config_version = app_config->orig_version();//parse_semver_from_ini(app_config->config_path());
} }
} }
// returns true if found newer version and user agreed to use it // returns old config path to copy from if such exists,
bool GUI_App::check_older_app_config(Semver current_version, bool backup) // returns an empty string if such config path does not exists or if it cannot be loaded.
std::string GUI_App::check_older_app_config(Semver current_version, bool backup)
{ {
std::string older_data_dir_path;
// If the config folder is redefined - do not check // If the config folder is redefined - do not check
if (m_datadir_redefined) if (m_datadir_redefined)
return false; return {};
// find other version app config (alpha / beta / release) // find other version app config (alpha / beta / release)
std::string config_path = app_config->config_path(); std::string config_path = app_config->config_path();
@ -940,13 +941,13 @@ bool GUI_App::check_older_app_config(Semver current_version, bool backup)
boost::optional<Semver>other_semver = parse_semver_from_ini(candidate.string()); boost::optional<Semver>other_semver = parse_semver_from_ini(candidate.string());
if (other_semver && *other_semver > last_semver) { if (other_semver && *other_semver > last_semver) {
last_semver = *other_semver; last_semver = *other_semver;
m_older_data_dir_path = candidate.parent_path().string(); older_data_dir_path = candidate.parent_path().string();
} }
} }
} }
if (m_older_data_dir_path.empty()) if (older_data_dir_path.empty())
return false; return {};
BOOST_LOG_TRIVIAL(info) << "last app config file used: " << m_older_data_dir_path; BOOST_LOG_TRIVIAL(info) << "last app config file used: " << older_data_dir_path;
// ask about using older data folder // ask about using older data folder
InfoDialog msg(nullptr InfoDialog msg(nullptr
@ -959,13 +960,13 @@ bool GUI_App::check_older_app_config(Semver current_version, bool backup)
"\n\nShall the newer configuration be imported?" "\n\nShall the newer configuration be imported?"
"\nIf so, your active configuration will be backed up before importing the new configuration." "\nIf so, your active configuration will be backed up before importing the new configuration."
) )
, SLIC3R_APP_NAME, current_version.to_string(), m_older_data_dir_path, last_semver.to_string()) , SLIC3R_APP_NAME, current_version.to_string(), older_data_dir_path, last_semver.to_string())
: format_wxstr(_L( : format_wxstr(_L(
"An existing configuration was found in <b>%3%</b>" "An existing configuration was found in <b>%3%</b>"
"\ncreated by <b>%1% %2%</b>." "\ncreated by <b>%1% %2%</b>."
"\n\nShall this configuration be imported?" "\n\nShall this configuration be imported?"
) )
, SLIC3R_APP_NAME, last_semver.to_string(), m_older_data_dir_path) , SLIC3R_APP_NAME, last_semver.to_string(), older_data_dir_path)
, true, wxYES_NO); , true, wxYES_NO);
if (backup) { if (backup) {
@ -976,24 +977,21 @@ bool GUI_App::check_older_app_config(Semver current_version, bool backup)
if (msg.ShowModal() == wxID_YES) { if (msg.ShowModal() == wxID_YES) {
std::string snapshot_id; std::string snapshot_id;
if (backup) { if (backup) {
// configuration snapshot const Config::Snapshot* snapshot{ nullptr };
std::string comment; if (! GUI::Config::take_config_snapshot_cancel_on_error(*app_config, Config::Snapshot::SNAPSHOT_USER, "",
if (const Config::Snapshot* snapshot = Config::take_config_snapshot_report_error( _u8L("Continue and import newer configuration?"), &snapshot))
*app_config, return {};
Config::Snapshot::SNAPSHOT_USER, if (snapshot) {
comment); // Save snapshot ID before loading the alternate AppConfig, as loading the alternate AppConfig may fail.
snapshot != nullptr)
// Is thos correct? Save snapshot id for later, when new app config is loaded.
snapshot_id = snapshot->id; snapshot_id = snapshot->id;
else assert(! snapshot_id.empty());
BOOST_LOG_TRIVIAL(error) << "Failed to take congiguration snapshot: "; app_config->set("on_snapshot", snapshot_id);
} else
BOOST_LOG_TRIVIAL(error) << "Failed to take congiguration snapshot";
} }
// This will tell later (when config folder structure is sure to exists) to copy files from m_older_data_dir_path
m_init_app_config_from_older = true;
// load app config from older file // load app config from older file
app_config->set_loading_path((boost::filesystem::path(m_older_data_dir_path) / filename).string()); std::string error = app_config->load((boost::filesystem::path(older_data_dir_path) / filename).string());
std::string error = app_config->load();
if (!error.empty()) { if (!error.empty()) {
// Error while parsing config file. We'll customize the error message and rethrow to be displayed. // Error while parsing config file. We'll customize the error message and rethrow to be displayed.
if (is_editor()) { if (is_editor()) {
@ -1012,14 +1010,9 @@ bool GUI_App::check_older_app_config(Semver current_version, bool backup)
if (!snapshot_id.empty()) if (!snapshot_id.empty())
app_config->set("on_snapshot", snapshot_id); app_config->set("on_snapshot", snapshot_id);
m_app_conf_exists = true; m_app_conf_exists = true;
return true; return older_data_dir_path;
} }
return false; return {};
}
void GUI_App::copy_older_config()
{
preset_bundle->copy_files(m_older_data_dir_path);
} }
void GUI_App::init_single_instance_checker(const std::string &name, const std::string &path) void GUI_App::init_single_instance_checker(const std::string &name, const std::string &path)
@ -1085,6 +1078,42 @@ bool GUI_App::on_init_inner()
// Slic3r::debugf "wxWidgets version %s, Wx version %s\n", wxVERSION_STRING, wxVERSION; // Slic3r::debugf "wxWidgets version %s, Wx version %s\n", wxVERSION_STRING, wxVERSION;
// !!! Initialization of UI settings as a language, application color mode, fonts... have to be done before first UI action.
// Like here, before the show InfoDialog in check_older_app_config()
// If load_language() fails, the application closes.
load_language(wxString(), true);
#ifdef _MSW_DARK_MODE
bool init_dark_color_mode = app_config->get("dark_color_mode") == "1";
bool init_sys_menu_enabled = app_config->get("sys_menu_enabled") == "1";
NppDarkMode::InitDarkMode(init_dark_color_mode, init_sys_menu_enabled);
#endif
// initialize label colors and fonts
init_label_colours();
init_fonts();
std::string older_data_dir_path;
if (m_app_conf_exists) {
if (app_config->orig_version().valid() && app_config->orig_version() < *Semver::parse(SLIC3R_VERSION))
// Only copying configuration if it was saved with a newer slicer than the one currently running.
older_data_dir_path = check_older_app_config(app_config->orig_version(), true);
} else {
// No AppConfig exists, fresh install. Always try to copy from an alternate location, don't make backup of the current configuration.
older_data_dir_path = check_older_app_config(Semver(), false);
}
#ifdef _MSW_DARK_MODE
// app_config can be updated in check_older_app_config(), so check if dark_color_mode and sys_menu_enabled was changed
if (bool new_dark_color_mode = app_config->get("dark_color_mode") == "1";
init_dark_color_mode != new_dark_color_mode) {
NppDarkMode::SetDarkMode(new_dark_color_mode);
init_label_colours();
update_label_colours_from_appconfig();
}
if (bool new_sys_menu_enabled = app_config->get("sys_menu_enabled") == "1";
init_sys_menu_enabled != new_sys_menu_enabled)
NppDarkMode::SetSystemMenuForApp(new_sys_menu_enabled);
#endif
if (is_editor()) { if (is_editor()) {
std::string msg = Http::tls_global_init(); std::string msg = Http::tls_global_init();
@ -1106,24 +1135,6 @@ bool GUI_App::on_init_inner()
} }
} }
// Set language and color mode before check_older_app_config() call
// If load_language() fails, the application closes.
load_language(wxString(), true);
#ifdef _MSW_DARK_MODE
NppDarkMode::InitDarkMode(app_config->get("dark_color_mode") == "1", app_config->get("sys_menu_enabled") == "1");
#endif
if (m_last_config_version) {
if (*m_last_config_version < *Semver::parse(SLIC3R_VERSION))
check_older_app_config(*m_last_config_version, true);
} else {
check_older_app_config(Semver(), false);
}
app_config->set("version", SLIC3R_VERSION);
app_config->save();
SplashScreen* scrn = nullptr; SplashScreen* scrn = nullptr;
if (app_config->get("show_splash_screen") == "1") { if (app_config->get("show_splash_screen") == "1") {
// make a bitmap with dark grey banner on the left side // make a bitmap with dark grey banner on the left side
@ -1152,10 +1163,13 @@ bool GUI_App::on_init_inner()
// just checking for existence of Slic3r::data_dir is not enough : it may be an empty directory // just checking for existence of Slic3r::data_dir is not enough : it may be an empty directory
// supplied as argument to --datadir; in that case we should still run the wizard // supplied as argument to --datadir; in that case we should still run the wizard
preset_bundle->setup_directories(); preset_bundle->setup_directories();
if (m_init_app_config_from_older) if (! older_data_dir_path.empty())
copy_older_config(); preset_bundle->import_newer_configs(older_data_dir_path);
// Save PrusaSlicer.ini after possibly copying the config from the alternate location and after all the configs from the alternate location were copied.
app_config->set("version", SLIC3R_VERSION);
app_config->save();
if (is_editor()) { if (is_editor()) {
#ifdef __WXMSW__ #ifdef __WXMSW__
@ -1204,10 +1218,6 @@ bool GUI_App::on_init_inner()
#endif // __WXMSW__ #endif // __WXMSW__
} }
// initialize label colors and fonts
init_label_colours();
init_fonts();
// Suppress the '- default -' presets. // Suppress the '- default -' presets.
preset_bundle->set_default_suppressed(app_config->get("no_defaults") == "1"); preset_bundle->set_default_suppressed(app_config->get("no_defaults") == "1");
try { try {
@ -1708,6 +1718,7 @@ void GUI_App::force_colors_update()
if (WXHWND wxHWND = wxToolTip::GetToolTipCtrl()) if (WXHWND wxHWND = wxToolTip::GetToolTipCtrl())
NppDarkMode::SetDarkExplorerTheme((HWND)wxHWND); NppDarkMode::SetDarkExplorerTheme((HWND)wxHWND);
NppDarkMode::SetDarkTitleBar(mainframe->GetHWND()); NppDarkMode::SetDarkTitleBar(mainframe->GetHWND());
NppDarkMode::SetDarkTitleBar(mainframe->m_settings_dialog.GetHWND());
#endif //_MSW_DARK_MODE #endif //_MSW_DARK_MODE
m_force_colors_update = true; m_force_colors_update = true;
} }
@ -1727,6 +1738,14 @@ void GUI_App::update_ui_from_settings()
mainframe->printhost_queue_dlg()->force_color_changed(); mainframe->printhost_queue_dlg()->force_color_changed();
#ifdef _MSW_DARK_MODE #ifdef _MSW_DARK_MODE
update_scrolls(mainframe); update_scrolls(mainframe);
if (mainframe->is_dlg_layout()) {
// update for tabs bar
UpdateDarkUI(&mainframe->m_settings_dialog);
mainframe->m_settings_dialog.Fit();
mainframe->m_settings_dialog.Refresh();
// update scrollbars
update_scrolls(&mainframe->m_settings_dialog);
}
#endif //_MSW_DARK_MODE #endif //_MSW_DARK_MODE
} }
#endif #endif

View File

@ -341,8 +341,9 @@ public:
private: private:
bool on_init_inner(); bool on_init_inner();
void init_app_config(); void init_app_config();
bool check_older_app_config(Semver current_version, bool backup); // returns old config path to copy from if such exists,
void copy_older_config(); // returns an empty string if such config path does not exists or if it cannot be loaded.
std::string check_older_app_config(Semver current_version, bool backup);
void window_pos_save(wxTopLevelWindow* window, const std::string &name); void window_pos_save(wxTopLevelWindow* window, const std::string &name);
void window_pos_restore(wxTopLevelWindow* window, const std::string &name, bool default_maximized = false); void window_pos_restore(wxTopLevelWindow* window, const std::string &name, bool default_maximized = false);
void window_pos_sanitize(wxTopLevelWindow* window); void window_pos_sanitize(wxTopLevelWindow* window);
@ -351,10 +352,7 @@ private:
bool config_wizard_startup(); bool config_wizard_startup();
void check_updates(const bool verbose); void check_updates(const bool verbose);
bool m_init_app_config_from_older { false }; bool m_datadir_redefined { false };
bool m_datadir_redefined { false };
std::string m_older_data_dir_path;
boost::optional<Semver> m_last_config_version;
}; };
DECLARE_APP(GUI_App) DECLARE_APP(GUI_App)

View File

@ -1398,6 +1398,8 @@ void ObjectList::load_subobject(ModelVolumeType type, bool from_galery/* = false
if (m_objects_model->GetItemType(item)&itInstance) if (m_objects_model->GetItemType(item)&itInstance)
item = m_objects_model->GetItemById(obj_idx); item = m_objects_model->GetItemById(obj_idx);
take_snapshot((type == ModelVolumeType::MODEL_PART) ? _L("Load Part") : _L("Load Modifier"));
std::vector<ModelVolume*> volumes; std::vector<ModelVolume*> volumes;
// ! ysFIXME - delete commented code after testing and rename "load_modifier" to something common // ! ysFIXME - delete commented code after testing and rename "load_modifier" to something common
/* /*
@ -1409,8 +1411,6 @@ void ObjectList::load_subobject(ModelVolumeType type, bool from_galery/* = false
if (volumes.empty()) if (volumes.empty())
return; return;
take_snapshot((type == ModelVolumeType::MODEL_PART) ? _L("Load Part") : _L("Load Modifier"));
wxDataViewItemArray items = reorder_volumes_and_get_selection(obj_idx, [volumes](const ModelVolume* volume) { wxDataViewItemArray items = reorder_volumes_and_get_selection(obj_idx, [volumes](const ModelVolume* volume) {
return std::find(volumes.begin(), volumes.end(), volume) != volumes.end(); }); return std::find(volumes.begin(), volumes.end(), volume) != volumes.end(); });

View File

@ -131,7 +131,11 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin
wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
wxFont monospace = wxGetApp().code_font(); wxFont monospace = wxGetApp().code_font();
#ifdef _WIN32
wxColour text_clr = wxGetApp().get_label_clr_default(); wxColour text_clr = wxGetApp().get_label_clr_default();
#else
wxColour text_clr = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
#endif
wxColour bgr_clr = parent->GetBackgroundColour(); //wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); wxColour bgr_clr = parent->GetBackgroundColour(); //wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
auto text_clr_str = wxString::Format(wxT("#%02X%02X%02X"), text_clr.Red(), text_clr.Green(), text_clr.Blue()); auto text_clr_str = wxString::Format(wxT("#%02X%02X%02X"), text_clr.Red(), text_clr.Green(), text_clr.Blue());
auto bgr_clr_str = wxString::Format(wxT("#%02X%02X%02X"), bgr_clr.Red(), bgr_clr.Green(), bgr_clr.Blue()); auto bgr_clr_str = wxString::Format(wxT("#%02X%02X%02X"), bgr_clr.Red(), bgr_clr.Green(), bgr_clr.Blue());
@ -143,6 +147,20 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin
// calculate html page size from text // calculate html page size from text
wxSize page_size; wxSize page_size;
int em = wxGetApp().em_unit(); int em = wxGetApp().em_unit();
if (!wxGetApp().mainframe) {
// If mainframe is nullptr, it means that GUI_App::on_init_inner() isn't completed
// (We just show information dialog about configuration version now)
// And as a result the em_unit value wasn't created yet
// So, calculate it from the scale factor of Dialog
#if defined(__WXGTK__)
// Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3).
// So, initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window.
em = std::max<size_t>(10, parent->GetTextExtent("m").x - 1);
#else
double scale_factor = (double)get_dpi_for_window(parent) / (double)DPI_DEFAULT;
em = std::max<size_t>(10, 10.0f * scale_factor);
#endif // __WXGTK__
}
// if message containes the table // if message containes the table
if (msg.Contains("<tr>")) { if (msg.Contains("<tr>")) {

View File

@ -1769,14 +1769,13 @@ void TabPrint::update()
// Note: This workaround works till "support_material" and "overhangs" is exclusive sets of mutually no-exclusive parameters. // Note: This workaround works till "support_material" and "overhangs" is exclusive sets of mutually no-exclusive parameters.
// But it should be corrected when we will have more such sets. // But it should be corrected when we will have more such sets.
// Disable check of the compatibility of the "support_material" and "overhangs" options for saved user profile // Disable check of the compatibility of the "support_material" and "overhangs" options for saved user profile
// or for profile which was loaded from 3mf // NOTE: Initialization of the support_material_overhangs_queried value have to be processed just ones
// if (!m_config_manipulation.is_initialized_support_material_overhangs_queried()) if (!m_config_manipulation.is_initialized_support_material_overhangs_queried())
if (bool support_material_overhangs_queried = m_config->opt_bool("support_material") && !m_config->opt_bool("overhangs"))
{ {
const Preset& selected_preset = m_preset_bundle->prints.get_selected_preset(); const Preset& selected_preset = m_preset_bundle->prints.get_selected_preset();
bool is_user_and_saved_preset = !selected_preset.is_system && !selected_preset.is_dirty; bool is_user_and_saved_preset = !selected_preset.is_system && !selected_preset.is_dirty;
bool is_saved_in_3mf_preset = selected_preset.is_dirty && !wxGetApp().plater()->is_presets_dirty(); bool support_material_overhangs_queried = m_config->opt_bool("support_material") && !m_config->opt_bool("overhangs");
m_config_manipulation.initialize_support_material_overhangs_queried((is_user_and_saved_preset || is_saved_in_3mf_preset) && support_material_overhangs_queried); m_config_manipulation.initialize_support_material_overhangs_queried(is_user_and_saved_preset && support_material_overhangs_queried);
} }
m_config_manipulation.update_print_fff_config(m_config, true); m_config_manipulation.update_print_fff_config(m_config, true);

View File

@ -132,6 +132,7 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector<Update> &updates, bool force_
line->AddSpacer(3*VERT_SPACING); line->AddSpacer(3*VERT_SPACING);
line->Add(new wxHyperlinkCtrl(this, wxID_ANY, _(L("Open changelog page")), changelog_url)); line->Add(new wxHyperlinkCtrl(this, wxID_ANY, _(L("Open changelog page")), changelog_url));
versions->Add(line); versions->Add(line);
versions->AddSpacer(1); // empty value for the correct alignment inside a GridSizer
} }
} }
@ -189,6 +190,7 @@ MsgUpdateForced::MsgUpdateForced(const std::vector<Update>& updates) :
line->AddSpacer(3 * VERT_SPACING); line->AddSpacer(3 * VERT_SPACING);
line->Add(new wxHyperlinkCtrl(this, wxID_ANY, _(L("Open changelog page")), changelog_url)); line->Add(new wxHyperlinkCtrl(this, wxID_ANY, _(L("Open changelog page")), changelog_url));
versions->Add(line); versions->Add(line);
versions->AddSpacer(1); // empty value for the correct alignment inside a GridSizer
} }
} }

View File

@ -3,7 +3,7 @@
set(SLIC3R_APP_NAME "PrusaSlicer") set(SLIC3R_APP_NAME "PrusaSlicer")
set(SLIC3R_APP_KEY "PrusaSlicer") set(SLIC3R_APP_KEY "PrusaSlicer")
set(SLIC3R_VERSION "2.4.0-beta4") set(SLIC3R_VERSION "2.4.0-rc")
set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN") set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN")
set(SLIC3R_RC_VERSION "2,4,0,0") set(SLIC3R_RC_VERSION "2,4,0,0")
set(SLIC3R_RC_VERSION_DOTS "2.4.0.0") set(SLIC3R_RC_VERSION_DOTS "2.4.0.0")