Merge branch 'master' into fs_emboss_temp
15
resources/icons/dowel.svg
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 27.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
width="16px" height="16px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<path fill = "#ED6B21" d="M9,12H7c-0.5522847,0-1-0.4477148-1-1V5c0-0.5522847,0.4477153-1,1-1h2c0.5522852,0,1,0.4477153,1,1v6
|
||||||
|
C10,11.5522852,9.5522852,12,9,12z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="none" stroke="#808080" stroke-linecap="round" stroke-miterlimit="10" d="M1.5,6.5h2v-3c0-1.1045694,0.8954306-2,2-2h5c1.1045694,0,2,0.8954306,2,2v3h2"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="none" stroke="#808080" stroke-linecap="round" stroke-miterlimit="10" d="M1.5,9.5h2v3c0,1.1045694,0.8954306,2,2,2h5c1.1045694,0,2-0.8954306,2-2v-3h2"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 899 B |
13
resources/icons/plug.svg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 27.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
width="16px" height="16px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<path fill="#ED6B21" d="M9,15H7c-0.5522847,0-1-0.4477148-1-1V5c0-0.5522847,0.4477153-1,1-1h2c0.5522852,0,1,0.4477153,1,1v9
|
||||||
|
C10,14.5522852,9.5522852,15,9,15z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="none" stroke="#808080" stroke-linecap="round" stroke-miterlimit="10" d="M1.5,11.5h2v-8c0-1.1045694,0.8954306-2,2-2h5c1.1045694,0,2,0.8954306,2,2v8h2"/>
|
||||||
|
</g>
|
||||||
|
<line fill="none" stroke="#ED6B21" stroke-linecap="round" stroke-miterlimit="10" x1="1.5" y1="14.5" x2="14.5" y2="14.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 847 B |
2
resources/profiles/MakerGear.idx
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
min_slic3r_version = 2.6.0-alpha1
|
||||||
|
0.1.0 Initial version
|
1754
resources/profiles/MakerGear.ini
Normal file
BIN
resources/profiles/MakerGear/M2_M3.stl
Normal file
1
resources/profiles/MakerGear/M2_M3.svg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
resources/profiles/MakerGear/MAKERGEAR_M2_DUAL_thumbnail.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
resources/profiles/MakerGear/MAKERGEAR_M2_thumbnail.png
Normal file
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 32 KiB |
BIN
resources/profiles/MakerGear/MAKERGEAR_M3_SE_thumbnail.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
resources/profiles/MakerGear/MAKERGEAR_M3_thumbnail.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
resources/profiles/MakerGear/MAKERGEAR_MICRO_thumbnail.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
resources/profiles/MakerGear/MAKERGEAR_U1_thumbnail.png
Normal file
After Width: | Height: | Size: 46 KiB |
@ -1,6 +1,8 @@
|
|||||||
min_slic3r_version = 2.6.0-alpha1
|
min_slic3r_version = 2.6.0-alpha1
|
||||||
|
1.6.0-alpha1 Updated FW version notification. Decreased min layer time for PLA.
|
||||||
1.6.0-alpha0 Default top fill set to monotonic lines. Updated infill/perimeter overlap values. Updated output filename format. Enabled dynamic overhang speeds.
|
1.6.0-alpha0 Default top fill set to monotonic lines. Updated infill/perimeter overlap values. Updated output filename format. Enabled dynamic overhang speeds.
|
||||||
min_slic3r_version = 2.5.0-alpha0
|
min_slic3r_version = 2.5.0-alpha0
|
||||||
|
1.5.6 Updated FW version notification (MK2.5/MK3 family). Added filament profile for Kimya PEBA-S.
|
||||||
1.5.5 Added new Prusament Resin material profiles. Enabled g-code thumbnails for MK2.5 family printers.
|
1.5.5 Added new Prusament Resin material profiles. Enabled g-code thumbnails for MK2.5 family printers.
|
||||||
1.5.4 Added material profiles for Prusament Resin BioBased60.
|
1.5.4 Added material profiles for Prusament Resin BioBased60.
|
||||||
1.5.3 Added filament profiles for ColorFabb VarioShore TPU, FormFutura PP, NinjaTek NinjaFlex/Cheetah TPU and for multiple Eolas Prints filaments. Updated bridging settings in 50um and 70um profiles.
|
1.5.3 Added filament profiles for ColorFabb VarioShore TPU, FormFutura PP, NinjaTek NinjaFlex/Cheetah TPU and for multiple Eolas Prints filaments. Updated bridging settings in 50um and 70um profiles.
|
||||||
@ -10,6 +12,7 @@ min_slic3r_version = 2.5.0-alpha0
|
|||||||
1.5.0-alpha1 Added filament profile for Prusament PA11 Carbon Fiber. Added profiles for multiple 3D-Fuel filaments.
|
1.5.0-alpha1 Added filament profile for Prusament PA11 Carbon Fiber. Added profiles for multiple 3D-Fuel filaments.
|
||||||
1.5.0-alpha0 Added parameters for Arachne perimeter generator. Changed default seam position. Updated output filename format.
|
1.5.0-alpha0 Added parameters for Arachne perimeter generator. Changed default seam position. Updated output filename format.
|
||||||
min_slic3r_version = 2.4.0-rc
|
min_slic3r_version = 2.4.0-rc
|
||||||
|
1.4.9 Updated FW version notification.
|
||||||
1.4.8 Added filament and SLA material profiles. Updated settings.
|
1.4.8 Added filament and SLA material profiles. Updated settings.
|
||||||
1.4.7 Added filament profile for Prusament PA11 Carbon Fiber. Added profiles for multiple 3D-Fuel filaments.
|
1.4.7 Added filament profile for Prusament PA11 Carbon Fiber. Added profiles for multiple 3D-Fuel filaments.
|
||||||
1.4.6 Added SLA materials. Updated filament profiles.
|
1.4.6 Added SLA materials. Updated filament profiles.
|
||||||
@ -39,6 +42,7 @@ min_slic3r_version = 2.4.0-alpha0
|
|||||||
1.3.0-alpha1 Added Prusament PCCF. Increased travel acceleration for Prusa MINI. Updated start g-code for Prusa MINI. Added multiple add:north and Extrudr filament profiles. Updated Z travel speed values.
|
1.3.0-alpha1 Added Prusament PCCF. Increased travel acceleration for Prusa MINI. Updated start g-code for Prusa MINI. Added multiple add:north and Extrudr filament profiles. Updated Z travel speed values.
|
||||||
1.3.0-alpha0 Disabled thick bridges, updated support settings.
|
1.3.0-alpha0 Disabled thick bridges, updated support settings.
|
||||||
min_slic3r_version = 2.3.2-alpha0
|
min_slic3r_version = 2.3.2-alpha0
|
||||||
|
1.3.8 Updated FW version notification.
|
||||||
1.3.7 Updated firmware version.
|
1.3.7 Updated firmware version.
|
||||||
1.3.6 Updated firmware version.
|
1.3.6 Updated firmware version.
|
||||||
1.3.5 Added material profiles for Prusament Resins.
|
1.3.5 Added material profiles for Prusament Resins.
|
||||||
@ -48,6 +52,7 @@ min_slic3r_version = 2.3.2-alpha0
|
|||||||
1.3.1 Added multiple add:north and Extrudr filament profiles. Updated support head settings (SL1S).
|
1.3.1 Added multiple add:north and Extrudr filament profiles. Updated support head settings (SL1S).
|
||||||
1.3.0 Added SL1S SPEED profiles.
|
1.3.0 Added SL1S SPEED profiles.
|
||||||
min_slic3r_version = 2.3.0-rc1
|
min_slic3r_version = 2.3.0-rc1
|
||||||
|
1.2.13 Updated FW version notification.
|
||||||
1.2.12 Updated firmware version.
|
1.2.12 Updated firmware version.
|
||||||
1.2.11 Updated firmware version.
|
1.2.11 Updated firmware version.
|
||||||
1.2.10 Added multiple profiles for Filatech filaments. Updated SLA print settings (pad wall slope angle).
|
1.2.10 Added multiple profiles for Filatech filaments. Updated SLA print settings (pad wall slope angle).
|
||||||
@ -69,6 +74,7 @@ min_slic3r_version = 2.3.0-alpha4
|
|||||||
1.2.0-alpha1 Renamed MK3S and MINI printer profiles. Updated end g-code (MINI). Added new SLA materials and filament profiles.
|
1.2.0-alpha1 Renamed MK3S and MINI printer profiles. Updated end g-code (MINI). Added new SLA materials and filament profiles.
|
||||||
1.2.0-alpha0 Added filament spool weights
|
1.2.0-alpha0 Added filament spool weights
|
||||||
min_slic3r_version = 2.2.0-alpha3
|
min_slic3r_version = 2.2.0-alpha3
|
||||||
|
1.1.17 Updated FW version notification.
|
||||||
1.1.16 Updated firmware version.
|
1.1.16 Updated firmware version.
|
||||||
1.1.15 Updated firmware version.
|
1.1.15 Updated firmware version.
|
||||||
1.1.14 Updated firmware version.
|
1.1.14 Updated firmware version.
|
||||||
@ -95,6 +101,7 @@ min_slic3r_version = 2.2.0-alpha0
|
|||||||
1.1.1-alpha2 Bumped up config version, so our in house customer will get updated profiles.
|
1.1.1-alpha2 Bumped up config version, so our in house customer will get updated profiles.
|
||||||
1.1.0 Filament aliases, Creality profiles and other goodies for PrusaSlicer 2.2.0-alpha0
|
1.1.0 Filament aliases, Creality profiles and other goodies for PrusaSlicer 2.2.0-alpha0
|
||||||
min_slic3r_version = 2.1.1-beta0
|
min_slic3r_version = 2.1.1-beta0
|
||||||
|
1.0.13 Updated FW version notification.
|
||||||
1.0.12 Updated firmware version.
|
1.0.12 Updated firmware version.
|
||||||
1.0.11 Updated firmware version.
|
1.0.11 Updated firmware version.
|
||||||
1.0.10 Updated firmware version for MK2.5/S and MK3/S.
|
1.0.10 Updated firmware version for MK2.5/S and MK3/S.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
name = Prusa Research
|
name = Prusa Research
|
||||||
# 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 = 1.6.0-alpha0
|
config_version = 1.6.0-alpha1
|
||||||
# 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/PrusaResearch/
|
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/
|
||||||
changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
||||||
@ -1589,6 +1589,7 @@ first_layer_temperature = 215
|
|||||||
max_fan_speed = 100
|
max_fan_speed = 100
|
||||||
min_fan_speed = 100
|
min_fan_speed = 100
|
||||||
temperature = 210
|
temperature = 210
|
||||||
|
slowdown_below_layer_time = 10
|
||||||
start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.6}0.04{else}0.05{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K18{elsif nozzle_diameter[0]==0.8};{else}M900 K30{endif} ; Filament gcode LA 1.0"
|
start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.6}0.04{else}0.05{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K18{elsif nozzle_diameter[0]==0.8};{else}M900 K30{endif} ; Filament gcode LA 1.0"
|
||||||
|
|
||||||
[filament:*PET*]
|
[filament:*PET*]
|
||||||
@ -9491,7 +9492,7 @@ inherits = Original Prusa i3 MK2S
|
|||||||
printer_model = MK2.5
|
printer_model = MK2.5
|
||||||
remaining_times = 1
|
remaining_times = 1
|
||||||
machine_max_jerk_e = 4.5
|
machine_max_jerk_e = 4.5
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
thumbnails = 160x120
|
thumbnails = 160x120
|
||||||
|
|
||||||
@ -9500,7 +9501,7 @@ inherits = Original Prusa i3 MK2S 0.25 nozzle
|
|||||||
printer_model = MK2.5
|
printer_model = MK2.5
|
||||||
remaining_times = 1
|
remaining_times = 1
|
||||||
machine_max_jerk_e = 4.5
|
machine_max_jerk_e = 4.5
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
thumbnails = 160x120
|
thumbnails = 160x120
|
||||||
|
|
||||||
@ -9510,7 +9511,7 @@ printer_model = MK2.5
|
|||||||
remaining_times = 1
|
remaining_times = 1
|
||||||
machine_max_jerk_e = 4.5
|
machine_max_jerk_e = 4.5
|
||||||
deretract_speed = 25
|
deretract_speed = 25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
thumbnails = 160x120
|
thumbnails = 160x120
|
||||||
|
|
||||||
@ -9527,7 +9528,7 @@ deretract_speed = 20
|
|||||||
retract_lift = 0.25
|
retract_lift = 0.25
|
||||||
remaining_times = 1
|
remaining_times = 1
|
||||||
machine_max_jerk_e = 4.5
|
machine_max_jerk_e = 4.5
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
default_filament_profile = Prusament PLA @0.8 nozzle
|
default_filament_profile = Prusament PLA @0.8 nozzle
|
||||||
@ -9542,7 +9543,7 @@ max_print_height = 200
|
|||||||
default_print_profile = 0.15mm OPTIMAL @MK2.5
|
default_print_profile = 0.15mm OPTIMAL @MK2.5
|
||||||
default_filament_profile = Prusament PLA
|
default_filament_profile = Prusament PLA
|
||||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n
|
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\n; select extruder\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; load to nozzle\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.20 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\n; select extruder\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; load to nozzle\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.20 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK2.5 MMU2 Single 0.8 nozzle]
|
[printer:Original Prusa i3 MK2.5 MMU2 Single 0.8 nozzle]
|
||||||
@ -9566,7 +9567,7 @@ printer_notes = Don't remove the following keywords! These keywords are used in
|
|||||||
single_extruder_multi_material = 1
|
single_extruder_multi_material = 1
|
||||||
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
||||||
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E32 F1073\nG1 X5 E32 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\nG92 E0\n
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E32 F1073\nG1 X5 E32 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\nG92 E0\n
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK2.5S]
|
[printer:Original Prusa i3 MK2.5S]
|
||||||
@ -9593,7 +9594,7 @@ max_print_height = 200
|
|||||||
default_print_profile = 0.15mm OPTIMAL @MK2.5
|
default_print_profile = 0.15mm OPTIMAL @MK2.5
|
||||||
default_filament_profile = Prusament PLA
|
default_filament_profile = Prusament PLA
|
||||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n
|
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK2.5S MMU2S Single 0.8 nozzle]
|
[printer:Original Prusa i3 MK2.5S MMU2S Single 0.8 nozzle]
|
||||||
@ -9607,7 +9608,7 @@ retract_length = 0.7
|
|||||||
retract_speed = 35
|
retract_speed = 35
|
||||||
deretract_speed = 20
|
deretract_speed = 20
|
||||||
retract_lift = 0.25
|
retract_lift = 0.25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
||||||
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
default_filament_profile = Prusament PLA @0.8 nozzle
|
default_filament_profile = Prusament PLA @0.8 nozzle
|
||||||
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
||||||
@ -9632,7 +9633,7 @@ nozzle_diameter = 0.25
|
|||||||
printer_variant = 0.25
|
printer_variant = 0.25
|
||||||
retract_lift = 0.15
|
retract_lift = 0.15
|
||||||
default_print_profile = 0.10mm DETAIL 0.25 nozzle
|
default_print_profile = 0.10mm DETAIL 0.25 nozzle
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F1400\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F1400\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n
|
||||||
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK2.5S MMU2S]
|
[printer:Original Prusa i3 MK2.5S MMU2S]
|
||||||
@ -9644,7 +9645,7 @@ printer_notes = Don't remove the following keywords! These keywords are used in
|
|||||||
single_extruder_multi_material = 1
|
single_extruder_multi_material = 1
|
||||||
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
||||||
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E29 F1073\nG1 X5 E29 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\nG92 E0\n
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E29 F1073\nG1 X5 E29 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\nG92 E0\n
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM900 K0 ; reset LA\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK2.5S MMU2S 0.6 nozzle]
|
[printer:Original Prusa i3 MK2.5S MMU2S 0.6 nozzle]
|
||||||
@ -9697,7 +9698,7 @@ color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
|||||||
## printer_variant = 0.8
|
## printer_variant = 0.8
|
||||||
## retract_length = 1
|
## retract_length = 1
|
||||||
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n
|
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n
|
||||||
|
|
||||||
## [printer:Original Prusa i3 MK2.5 MMU2 0.8 nozzle]
|
## [printer:Original Prusa i3 MK2.5 MMU2 0.8 nozzle]
|
||||||
## inherits = Original Prusa i3 MK2.5 MMU2
|
## inherits = Original Prusa i3 MK2.5 MMU2
|
||||||
@ -9707,7 +9708,7 @@ color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
|||||||
## printer_variant = 0.8
|
## printer_variant = 0.8
|
||||||
## retract_length = 1
|
## retract_length = 1
|
||||||
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n
|
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n
|
||||||
|
|
||||||
# XXXXXXXXXXXXXXXXX
|
# XXXXXXXXXXXXXXXXX
|
||||||
# XXX--- MK3 ---XXX
|
# XXX--- MK3 ---XXX
|
||||||
@ -9737,7 +9738,7 @@ remaining_times = 1
|
|||||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n
|
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n
|
||||||
retract_lift_below = 209
|
retract_lift_below = 209
|
||||||
max_print_height = 210
|
max_print_height = 210
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
||||||
printer_model = MK3
|
printer_model = MK3
|
||||||
default_print_profile = 0.15mm QUALITY @MK3
|
default_print_profile = 0.15mm QUALITY @MK3
|
||||||
thumbnails = 160x120
|
thumbnails = 160x120
|
||||||
@ -9749,7 +9750,7 @@ max_layer_height = 0.15
|
|||||||
min_layer_height = 0.05
|
min_layer_height = 0.05
|
||||||
printer_variant = 0.25
|
printer_variant = 0.25
|
||||||
retract_lift = 0.15
|
retract_lift = 0.15
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E8 F700 ; intro line\nG1 X100 E12.5 F700 ; intro line\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}\n\n; Don't change E value below. Excessive value can damage the printer.\n{if print_settings_id=~/.*@0.25 nozzle MK3.*/}M907 E430 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E8 F700 ; intro line\nG1 X100 E12.5 F700 ; intro line\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}\n\n; Don't change E value below. Excessive value can damage the printer.\n{if print_settings_id=~/.*@0.25 nozzle MK3.*/}M907 E430 ; set extruder motor current{endif}
|
||||||
default_print_profile = 0.10mm DETAIL @0.25 nozzle MK3
|
default_print_profile = 0.10mm DETAIL @0.25 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -9760,7 +9761,7 @@ max_layer_height = 0.40
|
|||||||
min_layer_height = 0.15
|
min_layer_height = 0.15
|
||||||
printer_variant = 0.6
|
printer_variant = 0.6
|
||||||
deretract_speed = 25
|
deretract_speed = 25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}
|
||||||
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -9774,7 +9775,7 @@ retract_length = 0.7
|
|||||||
retract_speed = 35
|
retract_speed = 35
|
||||||
deretract_speed = 20
|
deretract_speed = 20
|
||||||
retract_lift = 0.25
|
retract_lift = 0.25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S95
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S95
|
||||||
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
default_filament_profile = Prusament PLA @0.8 nozzle
|
default_filament_profile = Prusament PLA @0.8 nozzle
|
||||||
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
||||||
@ -9846,7 +9847,7 @@ default_filament_profile = Prusament PLA @MMU2
|
|||||||
inherits = *mm2*
|
inherits = *mm2*
|
||||||
single_extruder_multi_material = 0
|
single_extruder_multi_material = 0
|
||||||
default_filament_profile = Prusament PLA
|
default_filament_profile = Prusament PLA
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK3 MMU2 Single 0.6 nozzle]
|
[printer:Original Prusa i3 MK3 MMU2 Single 0.6 nozzle]
|
||||||
@ -9857,7 +9858,7 @@ max_layer_height = 0.40
|
|||||||
min_layer_height = 0.15
|
min_layer_height = 0.15
|
||||||
printer_variant = 0.6
|
printer_variant = 0.6
|
||||||
deretract_speed = 25
|
deretract_speed = 25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
||||||
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -9872,7 +9873,7 @@ retract_length = 0.7
|
|||||||
retract_speed = 35
|
retract_speed = 35
|
||||||
deretract_speed = 20
|
deretract_speed = 20
|
||||||
retract_lift = 0.25
|
retract_lift = 0.25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
||||||
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
default_filament_profile = Prusament PLA @0.8 nozzle
|
default_filament_profile = Prusament PLA @0.8 nozzle
|
||||||
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
||||||
@ -9885,7 +9886,7 @@ max_layer_height = 0.15
|
|||||||
min_layer_height = 0.05
|
min_layer_height = 0.05
|
||||||
printer_variant = 0.25
|
printer_variant = 0.25
|
||||||
retract_lift = 0.15
|
retract_lift = 0.15
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F1000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F1400\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E value below. Excessive value can damage the printer.\n{if print_settings_id=~/.*@0.25 nozzle MK3.*/}M907 E430 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F1000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F1400\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E value below. Excessive value can damage the printer.\n{if print_settings_id=~/.*@0.25 nozzle MK3.*/}M907 E430 ; set extruder motor current{endif}
|
||||||
default_print_profile = 0.10mm DETAIL @0.25 nozzle MK3
|
default_print_profile = 0.10mm DETAIL @0.25 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -9894,7 +9895,7 @@ inherits = *mm2*
|
|||||||
machine_max_acceleration_e = 8000,8000
|
machine_max_acceleration_e = 8000,8000
|
||||||
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
||||||
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E32 F1073\nG1 X5 E32 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E32 F1073\nG1 X5 E32 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK3S & MK3S+ MMU2S Single]
|
[printer:Original Prusa i3 MK3S & MK3S+ MMU2S Single]
|
||||||
@ -9902,7 +9903,7 @@ inherits = *mm2s*
|
|||||||
renamed_from = "Original Prusa i3 MK3S MMU2S Single"
|
renamed_from = "Original Prusa i3 MK3S MMU2S Single"
|
||||||
single_extruder_multi_material = 0
|
single_extruder_multi_material = 0
|
||||||
default_filament_profile = Prusament PLA
|
default_filament_profile = Prusament PLA
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM702 C\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
|
|
||||||
[printer:Original Prusa i3 MK3S & MK3S+ MMU2S Single 0.6 nozzle]
|
[printer:Original Prusa i3 MK3S & MK3S+ MMU2S Single 0.6 nozzle]
|
||||||
@ -9914,7 +9915,7 @@ max_layer_height = 0.40
|
|||||||
min_layer_height = 0.15
|
min_layer_height = 0.15
|
||||||
printer_variant = 0.6
|
printer_variant = 0.6
|
||||||
deretract_speed = 25
|
deretract_speed = 25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
||||||
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -9929,7 +9930,7 @@ retract_length = 0.7
|
|||||||
retract_speed = 35
|
retract_speed = 35
|
||||||
deretract_speed = 20
|
deretract_speed = 20
|
||||||
retract_lift = 0.25
|
retract_lift = 0.25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
||||||
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
default_filament_profile = Prusament PLA @0.8 nozzle
|
default_filament_profile = Prusament PLA @0.8 nozzle
|
||||||
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change
|
||||||
@ -9943,7 +9944,7 @@ max_layer_height = 0.15
|
|||||||
min_layer_height = 0.05
|
min_layer_height = 0.05
|
||||||
printer_variant = 0.25
|
printer_variant = 0.25
|
||||||
retract_lift = 0.15
|
retract_lift = 0.15
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F1400\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E value below. Excessive value can damage the printer.\n{if print_settings_id=~/.*@0.25 nozzle MK3.*/}M907 E430 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F1400\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E value below. Excessive value can damage the printer.\n{if print_settings_id=~/.*@0.25 nozzle MK3.*/}M907 E430 ; set extruder motor current{endif}
|
||||||
default_print_profile = 0.10mm DETAIL @0.25 nozzle MK3
|
default_print_profile = 0.10mm DETAIL @0.25 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -9953,7 +9954,7 @@ renamed_from = "Original Prusa i3 MK3S MMU2S"
|
|||||||
machine_max_acceleration_e = 8000,8000
|
machine_max_acceleration_e = 8000,8000
|
||||||
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
|
||||||
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
extruder_colour = #FF8000;#DB5182;#3EC0FF;#FF4F4F;#FBEB7D
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E29 F1073\nG1 X5 E29 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E29 F1073\nG1 X5 E29 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y210 F7200 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\n{if has_wipe_tower}\nG1 E-15 F3000\n{else}\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15 F5800\nG1 E-20 F5500\nG1 E10 F3000\nG1 E-10 F3100\nG1 E10 F3150\nG1 E-10 F3250\nG1 E10 F3300\n{endif}\n\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM221 S100 ; reset flow\nM900 K0 ; reset LA\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3|SOLUBLE|@0.25 nozzle MK3).*/}M907 E538 ; reset extruder motor current{endif}\nM104 S0 ; turn off temperature\nM84 ; disable motors\n; max_layer_z = [max_layer_z]
|
||||||
|
|
||||||
## 0.6mm nozzle MMU2/S printer profiles
|
## 0.6mm nozzle MMU2/S printer profiles
|
||||||
@ -9966,7 +9967,7 @@ max_layer_height = 0.40
|
|||||||
min_layer_height = 0.15
|
min_layer_height = 0.15
|
||||||
printer_variant = 0.6
|
printer_variant = 0.6
|
||||||
deretract_speed = 25
|
deretract_speed = 25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E29 F1073\nG1 X5 E29 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E29 F1073\nG1 X5 E29 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
||||||
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -9977,7 +9978,7 @@ max_layer_height = 0.40
|
|||||||
min_layer_height = 0.15
|
min_layer_height = 0.15
|
||||||
printer_variant = 0.6
|
printer_variant = 0.6
|
||||||
deretract_speed = 25
|
deretract_speed = 25
|
||||||
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E32 F1073\nG1 X5 E32 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E32 F1073\nG1 X5 E32 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0
|
||||||
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3
|
||||||
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change
|
||||||
|
|
||||||
@ -10011,7 +10012,7 @@ color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
|||||||
## max_layer_height = 0.6
|
## max_layer_height = 0.6
|
||||||
## min_layer_height = 0.2
|
## min_layer_height = 0.2
|
||||||
## printer_variant = 0.8
|
## printer_variant = 0.8
|
||||||
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0
|
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0
|
||||||
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
|
|
||||||
## [printer:Original Prusa i3 MK3S & MK3S+ MMU2S 0.8 nozzle]
|
## [printer:Original Prusa i3 MK3S & MK3S+ MMU2S 0.8 nozzle]
|
||||||
@ -10020,7 +10021,7 @@ color_change_gcode = M600\nG1 E0.3 F1500 ; prime after color change
|
|||||||
## max_layer_height = 0.6
|
## max_layer_height = 0.6
|
||||||
## min_layer_height = 0.2
|
## min_layer_height = 0.2
|
||||||
## printer_variant = 0.8
|
## printer_variant = 0.8
|
||||||
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0
|
## start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.12.1 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0
|
||||||
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
## default_print_profile = 0.40mm QUALITY @0.8 nozzle
|
||||||
|
|
||||||
## MINI
|
## MINI
|
||||||
|
@ -150,6 +150,8 @@ namespace ImGui
|
|||||||
// const wchar_t CustomSupportsMarker = 0x1D;
|
// const wchar_t CustomSupportsMarker = 0x1D;
|
||||||
// const wchar_t CustomSeamMarker = 0x1E;
|
// const wchar_t CustomSeamMarker = 0x1E;
|
||||||
// const wchar_t MmuSegmentationMarker = 0x1F;
|
// const wchar_t MmuSegmentationMarker = 0x1F;
|
||||||
|
const wchar_t PlugMarker = 0x1C;
|
||||||
|
const wchar_t DowelMarker = 0x1D;
|
||||||
// Do not forget use following letters only in wstring
|
// Do not forget use following letters only in wstring
|
||||||
const wchar_t DocumentationButton = 0x2600;
|
const wchar_t DocumentationButton = 0x2600;
|
||||||
const wchar_t DocumentationHoverButton = 0x2601;
|
const wchar_t DocumentationHoverButton = 0x2601;
|
||||||
|
@ -288,12 +288,12 @@ inline void extrusion_entities_append_paths(ExtrusionEntitiesPtr &dst, const Pol
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void extrusion_entities_append_paths(ExtrusionEntitiesPtr &dst, Polylines &&polylines, ExtrusionRole role, double mm3_per_mm, float width, float height)
|
inline void extrusion_entities_append_paths(ExtrusionEntitiesPtr &dst, Polylines &&polylines, ExtrusionRole role, double mm3_per_mm, float width, float height, bool can_reverse = true)
|
||||||
{
|
{
|
||||||
dst.reserve(dst.size() + polylines.size());
|
dst.reserve(dst.size() + polylines.size());
|
||||||
for (Polyline &polyline : polylines)
|
for (Polyline &polyline : polylines)
|
||||||
if (polyline.is_valid()) {
|
if (polyline.is_valid()) {
|
||||||
ExtrusionPath *extrusion_path = new ExtrusionPath(role, mm3_per_mm, width, height);
|
ExtrusionPath *extrusion_path = can_reverse ? new ExtrusionPath(role, mm3_per_mm, width, height) : new ExtrusionPathOriented(role, mm3_per_mm, width, height);
|
||||||
dst.push_back(extrusion_path);
|
dst.push_back(extrusion_path);
|
||||||
extrusion_path->polyline = std::move(polyline);
|
extrusion_path->polyline = std::move(polyline);
|
||||||
}
|
}
|
||||||
|
@ -1784,9 +1784,7 @@ std::vector<GCode::InstanceToPrint> GCode::sort_print_object_instances(
|
|||||||
if (ordering == nullptr) {
|
if (ordering == nullptr) {
|
||||||
// Sequential print, single object is being printed.
|
// Sequential print, single object is being printed.
|
||||||
assert(object_layers.size() == 1);
|
assert(object_layers.size() == 1);
|
||||||
const Layer *layer = object_layers.front().object_layer;
|
out.emplace_back(0, *object_layers.front().object(), single_object_instance_idx);
|
||||||
assert(layer != nullptr);
|
|
||||||
out.emplace_back(0, *layer->object(), single_object_instance_idx);
|
|
||||||
} else {
|
} else {
|
||||||
// Create mapping from PrintObject* to ObjectLayerToPrint ID.
|
// Create mapping from PrintObject* to ObjectLayerToPrint ID.
|
||||||
std::vector<std::pair<const PrintObject*, size_t>> sorted;
|
std::vector<std::pair<const PrintObject*, size_t>> sorted;
|
||||||
|
@ -461,23 +461,24 @@ std::vector<PerExtruderAdjustments> CoolingBuffer::parse_layer_gcode(const std::
|
|||||||
}
|
}
|
||||||
active_speed_modifier = size_t(-1);
|
active_speed_modifier = size_t(-1);
|
||||||
} else if (boost::starts_with(sline, m_toolchange_prefix)) {
|
} else if (boost::starts_with(sline, m_toolchange_prefix)) {
|
||||||
unsigned int new_extruder;
|
unsigned int new_extruder = 0;
|
||||||
auto res = std::from_chars(sline.data() + m_toolchange_prefix.size(), sline.data() + sline.size(), new_extruder);
|
auto res = std::from_chars(sline.data() + m_toolchange_prefix.size(), sline.data() + sline.size(), new_extruder);
|
||||||
// Only change extruder in case the number is meaningful. User could provide an out-of-range index through custom gcodes - those shall be ignored.
|
if (res.ec != std::errc::invalid_argument) {
|
||||||
if (new_extruder < map_extruder_to_per_extruder_adjustment.size()) {
|
// Only change extruder in case the number is meaningful. User could provide an out-of-range index through custom gcodes - those shall be ignored.
|
||||||
if (new_extruder != current_extruder) {
|
if (new_extruder < map_extruder_to_per_extruder_adjustment.size()) {
|
||||||
// Switch the tool.
|
if (new_extruder != current_extruder) {
|
||||||
line.type = CoolingLine::TYPE_SET_TOOL;
|
// Switch the tool.
|
||||||
current_extruder = new_extruder;
|
line.type = CoolingLine::TYPE_SET_TOOL;
|
||||||
adjustment = &per_extruder_adjustments[map_extruder_to_per_extruder_adjustment[current_extruder]];
|
current_extruder = new_extruder;
|
||||||
|
adjustment = &per_extruder_adjustments[map_extruder_to_per_extruder_adjustment[current_extruder]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Only log the error in case of MM printer. Single extruder printers likely ignore any T anyway.
|
||||||
|
if (map_extruder_to_per_extruder_adjustment.size() > 1)
|
||||||
|
BOOST_LOG_TRIVIAL(error) << "CoolingBuffer encountered an invalid toolchange, maybe from a custom gcode: " << sline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
// Only log the error in case of MM printer. Single extruder printers likely ignore any T anyway.
|
|
||||||
if (map_extruder_to_per_extruder_adjustment.size() > 1)
|
|
||||||
BOOST_LOG_TRIVIAL(error) << "CoolingBuffer encountered an invalid toolchange, maybe from a custom gcode: " << sline;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (boost::starts_with(sline, ";_BRIDGE_FAN_START")) {
|
} else if (boost::starts_with(sline, ";_BRIDGE_FAN_START")) {
|
||||||
line.type = CoolingLine::TYPE_BRIDGE_FAN_START;
|
line.type = CoolingLine::TYPE_BRIDGE_FAN_START;
|
||||||
} else if (boost::starts_with(sline, ";_BRIDGE_FAN_END")) {
|
} else if (boost::starts_with(sline, ";_BRIDGE_FAN_END")) {
|
||||||
@ -785,9 +786,9 @@ std::string CoolingBuffer::apply_layer_cooldown(
|
|||||||
if (line_start > pos)
|
if (line_start > pos)
|
||||||
new_gcode.append(pos, line_start - pos);
|
new_gcode.append(pos, line_start - pos);
|
||||||
if (line->type & CoolingLine::TYPE_SET_TOOL) {
|
if (line->type & CoolingLine::TYPE_SET_TOOL) {
|
||||||
unsigned int new_extruder;
|
unsigned int new_extruder = 0;
|
||||||
auto res = std::from_chars(line_start + m_toolchange_prefix.size(), line_end, new_extruder);
|
auto res = std::from_chars(line_start + m_toolchange_prefix.size(), line_end, new_extruder);
|
||||||
if (new_extruder != m_current_extruder) {
|
if (res.ec != std::errc::invalid_argument && new_extruder != m_current_extruder) {
|
||||||
m_current_extruder = new_extruder;
|
m_current_extruder = new_extruder;
|
||||||
change_extruder_set_fan();
|
change_extruder_set_fan();
|
||||||
}
|
}
|
||||||
|
@ -593,9 +593,11 @@ void GCodeProcessor::apply_config(const PrintConfig& config)
|
|||||||
m_time_processor.filament_unload_times[i] = static_cast<float>(config.filament_unload_time.values[i]);
|
m_time_processor.filament_unload_times[i] = static_cast<float>(config.filament_unload_time.values[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_single_extruder_multi_material = config.single_extruder_multi_material;
|
||||||
|
|
||||||
// With MM setups like Prusa MMU2, the filaments may be expected to be parked at the beginning.
|
// With MM setups like Prusa MMU2, the filaments may be expected to be parked at the beginning.
|
||||||
// Remember the parking position so the initial load is not included in filament estimate.
|
// Remember the parking position so the initial load is not included in filament estimate.
|
||||||
if (config.single_extruder_multi_material && extruders_count > 1 && config.wipe_tower) {
|
if (m_single_extruder_multi_material && extruders_count > 1 && config.wipe_tower) {
|
||||||
m_parking_position = float(config.parking_pos_retraction.value);
|
m_parking_position = float(config.parking_pos_retraction.value);
|
||||||
m_extra_loading_move = float(config.extra_loading_move);
|
m_extra_loading_move = float(config.extra_loading_move);
|
||||||
}
|
}
|
||||||
@ -772,8 +774,10 @@ void GCodeProcessor::apply_config(const DynamicPrintConfig& config)
|
|||||||
const ConfigOptionFloat* parking_pos_retraction = config.option<ConfigOptionFloat>("parking_pos_retraction");
|
const ConfigOptionFloat* parking_pos_retraction = config.option<ConfigOptionFloat>("parking_pos_retraction");
|
||||||
const ConfigOptionFloat* extra_loading_move = config.option<ConfigOptionFloat>("extra_loading_move");
|
const ConfigOptionFloat* extra_loading_move = config.option<ConfigOptionFloat>("extra_loading_move");
|
||||||
|
|
||||||
if (single_extruder_multi_material != nullptr && wipe_tower != nullptr && parking_pos_retraction != nullptr && extra_loading_move != nullptr) {
|
m_single_extruder_multi_material = single_extruder_multi_material != nullptr && single_extruder_multi_material->value;
|
||||||
if (single_extruder_multi_material->value && m_result.extruders_count > 1 && wipe_tower->value) {
|
|
||||||
|
if (m_single_extruder_multi_material && wipe_tower != nullptr && parking_pos_retraction != nullptr && extra_loading_move != nullptr) {
|
||||||
|
if (m_single_extruder_multi_material && m_result.extruders_count > 1 && wipe_tower->value) {
|
||||||
m_parking_position = float(parking_pos_retraction->value);
|
m_parking_position = float(parking_pos_retraction->value);
|
||||||
m_extra_loading_move = float(extra_loading_move->value);
|
m_extra_loading_move = float(extra_loading_move->value);
|
||||||
}
|
}
|
||||||
@ -977,6 +981,8 @@ void GCodeProcessor::reset()
|
|||||||
m_spiral_vase_active = false;
|
m_spiral_vase_active = false;
|
||||||
m_kissslicer_toolchange_time_correction = 0.0f;
|
m_kissslicer_toolchange_time_correction = 0.0f;
|
||||||
|
|
||||||
|
m_single_extruder_multi_material = false;
|
||||||
|
|
||||||
#if ENABLE_GCODE_VIEWER_DATA_CHECKING
|
#if ENABLE_GCODE_VIEWER_DATA_CHECKING
|
||||||
m_mm3_per_mm_compare.reset();
|
m_mm3_per_mm_compare.reset();
|
||||||
m_height_compare.reset();
|
m_height_compare.reset();
|
||||||
@ -3372,6 +3378,11 @@ void GCodeProcessor::process_T(const std::string_view command)
|
|||||||
extra_time += m_kissslicer_toolchange_time_correction;
|
extra_time += m_kissslicer_toolchange_time_correction;
|
||||||
simulate_st_synchronize(extra_time);
|
simulate_st_synchronize(extra_time);
|
||||||
|
|
||||||
|
// specific to single extruder multi material, set the extruder temperature
|
||||||
|
// if not done yet
|
||||||
|
if (m_single_extruder_multi_material && m_extruder_temps[m_extruder_id] == 0.0f)
|
||||||
|
m_extruder_temps[m_extruder_id] = m_extruder_temps[old_extruder_id];
|
||||||
|
|
||||||
m_result.extruders_count = std::max<size_t>(m_result.extruders_count, m_extruder_id + 1);
|
m_result.extruders_count = std::max<size_t>(m_result.extruders_count, m_extruder_id + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -559,6 +559,7 @@ namespace Slic3r {
|
|||||||
#if ENABLE_GCODE_VIEWER_STATISTICS
|
#if ENABLE_GCODE_VIEWER_STATISTICS
|
||||||
std::chrono::time_point<std::chrono::high_resolution_clock> m_start_time;
|
std::chrono::time_point<std::chrono::high_resolution_clock> m_start_time;
|
||||||
#endif // ENABLE_GCODE_VIEWER_STATISTICS
|
#endif // ENABLE_GCODE_VIEWER_STATISTICS
|
||||||
|
bool m_single_extruder_multi_material;
|
||||||
|
|
||||||
enum class EProducer
|
enum class EProducer
|
||||||
{
|
{
|
||||||
|
@ -385,7 +385,11 @@ public:
|
|||||||
bool is_mm_painted() const;
|
bool is_mm_painted() const;
|
||||||
// Checks if object contains just one volume and it's a text
|
// Checks if object contains just one volume and it's a text
|
||||||
bool is_text() const;
|
bool is_text() const;
|
||||||
|
// This object may have a varying layer height by painting or by a table.
|
||||||
|
// Even if true is returned, the layer height profile may be "flat" with no difference to default layering.
|
||||||
|
bool has_custom_layering() const
|
||||||
|
{ return ! this->layer_config_ranges.empty() || ! this->layer_height_profile.empty(); }
|
||||||
|
|
||||||
ModelInstance* add_instance();
|
ModelInstance* add_instance();
|
||||||
ModelInstance* add_instance(const ModelInstance &instance);
|
ModelInstance* add_instance(const ModelInstance &instance);
|
||||||
ModelInstance* add_instance(const Vec3d &offset, const Vec3d &scaling_factor, const Vec3d &rotation, const Vec3d &mirror);
|
ModelInstance* add_instance(const Vec3d &offset, const Vec3d &scaling_factor, const Vec3d &rotation, const Vec3d &mirror);
|
||||||
|
@ -728,6 +728,7 @@ ExtrusionPaths sort_and_connect_extra_perimeters(const std::vector<ExtrusionPath
|
|||||||
std::vector<ExtrusionPaths> connected_shells;
|
std::vector<ExtrusionPaths> connected_shells;
|
||||||
connected_shells.reserve(extra_perims.size());
|
connected_shells.reserve(extra_perims.size());
|
||||||
for (const ExtrusionPaths &ps : extra_perims) {
|
for (const ExtrusionPaths &ps : extra_perims) {
|
||||||
|
// this will also filter away empty paths
|
||||||
connected_shells.push_back(reconnect_extrusion_paths(ps, 1.0 * extrusion_spacing));
|
connected_shells.push_back(reconnect_extrusion_paths(ps, 1.0 * extrusion_spacing));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -753,7 +754,7 @@ ExtrusionPaths sort_and_connect_extra_perimeters(const std::vector<ExtrusionPath
|
|||||||
std::unordered_set<Pidx, PidxHash> current_dependencies{};
|
std::unordered_set<Pidx, PidxHash> current_dependencies{};
|
||||||
if (shell > 0) {
|
if (shell > 0) {
|
||||||
for (const auto &prev_path : dependencies[shell - 1]) {
|
for (const auto &prev_path : dependencies[shell - 1]) {
|
||||||
if (paths_touch(get_path(current_path), get_path(prev_path.first), extrusion_spacing * 2.0)) {
|
if (paths_touch(get_path(current_path), get_path(prev_path.first), extrusion_spacing * 1.5f)) {
|
||||||
current_dependencies.insert(prev_path.first);
|
current_dependencies.insert(prev_path.first);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -845,7 +846,18 @@ first_point_found:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ExtrusionPaths reconnected = reconnect_extrusion_paths(sorted_paths, extrusion_spacing * 2.0);
|
ExtrusionPaths reconnected;
|
||||||
|
reconnected.reserve(sorted_paths.size());
|
||||||
|
for (const ExtrusionPath &path : sorted_paths) {
|
||||||
|
if (!reconnected.empty() && (reconnected.back().last_point() - path.first_point()).cast<double>().squaredNorm() <
|
||||||
|
extrusion_spacing * extrusion_spacing * 4.0) {
|
||||||
|
reconnected.back().polyline.points.insert(reconnected.back().polyline.points.end(), path.polyline.points.begin(),
|
||||||
|
path.polyline.points.end());
|
||||||
|
} else {
|
||||||
|
reconnected.push_back(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ExtrusionPaths filtered;
|
ExtrusionPaths filtered;
|
||||||
filtered.reserve(reconnected.size());
|
filtered.reserve(reconnected.size());
|
||||||
for (ExtrusionPath &p : reconnected) {
|
for (ExtrusionPath &p : reconnected) {
|
||||||
@ -1030,12 +1042,6 @@ std::tuple<std::vector<ExtrusionPaths>, Polygons> generate_extra_perimeters_over
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Polylines perimeter = intersection_pl(to_polylines(perimeter_polygon), shrinked_overhang_to_cover);
|
|
||||||
if (!perimeter.empty()) {
|
|
||||||
overhang_region.emplace_back();
|
|
||||||
extrusion_paths_append(overhang_region.back(), perimeter, ExtrusionRole::OverhangPerimeter, overhang_flow.mm3_per_mm(),
|
|
||||||
overhang_flow.width(), overhang_flow.height());
|
|
||||||
}
|
|
||||||
|
|
||||||
perimeter_polygon = expand(perimeter_polygon, 0.5 * overhang_flow.scaled_spacing());
|
perimeter_polygon = expand(perimeter_polygon, 0.5 * overhang_flow.scaled_spacing());
|
||||||
perimeter_polygon = union_(perimeter_polygon, anchoring);
|
perimeter_polygon = union_(perimeter_polygon, anchoring);
|
||||||
|
@ -474,6 +474,10 @@ std::string Print::validate(std::string* warning) const
|
|||||||
return L("Some objects are too tall and cannot be printed without extruder collisions.");
|
return L("Some objects are too tall and cannot be printed without extruder collisions.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_config.avoid_crossing_perimeters && m_config.avoid_crossing_curled_overhangs) {
|
||||||
|
return L("Avoid crossing perimeters option and avoid crossing curled overhangs option cannot be both enabled together.");
|
||||||
|
}
|
||||||
|
|
||||||
if (m_config.spiral_vase) {
|
if (m_config.spiral_vase) {
|
||||||
size_t total_copies_count = 0;
|
size_t total_copies_count = 0;
|
||||||
for (const PrintObject *object : m_objects)
|
for (const PrintObject *object : m_objects)
|
||||||
@ -487,6 +491,47 @@ std::string Print::validate(std::string* warning) const
|
|||||||
return L("The Spiral Vase option can only be used when printing single material objects.");
|
return L("The Spiral Vase option can only be used when printing single material objects.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cache of layer height profiles for checking:
|
||||||
|
// 1) Whether all layers are synchronized if printing with wipe tower and / or unsynchronized supports.
|
||||||
|
// 2) Whether layer height is constant for Organic supports.
|
||||||
|
// 3) Whether build volume Z is not violated.
|
||||||
|
std::vector<std::vector<coordf_t>> layer_height_profiles;
|
||||||
|
auto layer_height_profile = [this, &layer_height_profiles](const size_t print_object_idx) -> const std::vector<coordf_t>& {
|
||||||
|
const PrintObject &print_object = *m_objects[print_object_idx];
|
||||||
|
if (layer_height_profiles.empty())
|
||||||
|
layer_height_profiles.assign(m_objects.size(), std::vector<coordf_t>());
|
||||||
|
std::vector<coordf_t> &profile = layer_height_profiles[print_object_idx];
|
||||||
|
if (profile.empty())
|
||||||
|
PrintObject::update_layer_height_profile(*print_object.model_object(), print_object.slicing_parameters(), profile);
|
||||||
|
return profile;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Checks that the print does not exceed the max print height
|
||||||
|
for (size_t print_object_idx = 0; print_object_idx < m_objects.size(); ++ print_object_idx) {
|
||||||
|
const PrintObject &print_object = *m_objects[print_object_idx];
|
||||||
|
//FIXME It is quite expensive to generate object layers just to get the print height!
|
||||||
|
if (auto layers = generate_object_layers(print_object.slicing_parameters(), layer_height_profile(print_object_idx));
|
||||||
|
! layers.empty() && layers.back() > this->config().max_print_height) {
|
||||||
|
return L("The print is taller than the maximum allowed height. You might want to reduce the size of your model"
|
||||||
|
" or change current print settings and retry.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some of the objects has variable layer height applied by painting or by a table.
|
||||||
|
bool has_custom_layering = std::find_if(m_objects.begin(), m_objects.end(),
|
||||||
|
[](const PrintObject *object) { return object->model_object()->has_custom_layering(); })
|
||||||
|
!= m_objects.end();
|
||||||
|
|
||||||
|
// Custom layering is not allowed for tree supports as of now.
|
||||||
|
for (size_t print_object_idx = 0; print_object_idx < m_objects.size(); ++ print_object_idx)
|
||||||
|
if (const PrintObject &print_object = *m_objects[print_object_idx];
|
||||||
|
print_object.has_support_material() && print_object.config().support_material_style.value == smsOrganic &&
|
||||||
|
print_object.model_object()->has_custom_layering()) {
|
||||||
|
if (const std::vector<coordf_t> &layers = layer_height_profile(print_object_idx); ! layers.empty())
|
||||||
|
if (! check_object_layers_fixed(print_object.slicing_parameters(), layers))
|
||||||
|
return L("Variable layer height is not supported with Organic supports.");
|
||||||
|
}
|
||||||
|
|
||||||
if (this->has_wipe_tower() && ! m_objects.empty()) {
|
if (this->has_wipe_tower() && ! m_objects.empty()) {
|
||||||
// Make sure all extruders use same diameter filament and have the same nozzle diameter
|
// Make sure all extruders use same diameter filament and have the same nozzle diameter
|
||||||
// EPSILON comparison is used for nozzles and 10 % tolerance is used for filaments
|
// EPSILON comparison is used for nozzles and 10 % tolerance is used for filaments
|
||||||
@ -514,19 +559,8 @@ std::string Print::validate(std::string* warning) const
|
|||||||
return L("The Wipe Tower is currently not supported for multimaterial sequential prints.");
|
return L("The Wipe Tower is currently not supported for multimaterial sequential prints.");
|
||||||
|
|
||||||
if (m_objects.size() > 1) {
|
if (m_objects.size() > 1) {
|
||||||
bool has_custom_layering = false;
|
const SlicingParameters &slicing_params0 = m_objects.front()->slicing_parameters();
|
||||||
std::vector<std::vector<coordf_t>> layer_height_profiles;
|
size_t tallest_object_idx = 0;
|
||||||
for (const PrintObject *object : m_objects) {
|
|
||||||
has_custom_layering = ! object->model_object()->layer_config_ranges.empty() || ! object->model_object()->layer_height_profile.empty();
|
|
||||||
if (has_custom_layering) {
|
|
||||||
layer_height_profiles.assign(m_objects.size(), std::vector<coordf_t>());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const SlicingParameters &slicing_params0 = m_objects.front()->slicing_parameters();
|
|
||||||
size_t tallest_object_idx = 0;
|
|
||||||
if (has_custom_layering)
|
|
||||||
PrintObject::update_layer_height_profile(*m_objects.front()->model_object(), slicing_params0, layer_height_profiles.front());
|
|
||||||
for (size_t i = 1; i < m_objects.size(); ++ i) {
|
for (size_t i = 1; i < m_objects.size(); ++ i) {
|
||||||
const PrintObject *object = m_objects[i];
|
const PrintObject *object = m_objects[i];
|
||||||
const SlicingParameters &slicing_params = object->slicing_parameters();
|
const SlicingParameters &slicing_params = object->slicing_parameters();
|
||||||
@ -541,8 +575,9 @@ std::string Print::validate(std::string* warning) const
|
|||||||
if (! equal_layering(slicing_params, slicing_params0))
|
if (! equal_layering(slicing_params, slicing_params0))
|
||||||
return L("The Wipe Tower is only supported for multiple objects if they are sliced equally.");
|
return L("The Wipe Tower is only supported for multiple objects if they are sliced equally.");
|
||||||
if (has_custom_layering) {
|
if (has_custom_layering) {
|
||||||
PrintObject::update_layer_height_profile(*object->model_object(), slicing_params, layer_height_profiles[i]);
|
auto &lh = layer_height_profile(i);
|
||||||
if (*(layer_height_profiles[i].end()-2) > *(layer_height_profiles[tallest_object_idx].end()-2))
|
auto &lh_tallest = layer_height_profile(tallest_object_idx);
|
||||||
|
if (*(lh.end()-2) > *(lh_tallest.end()-2))
|
||||||
tallest_object_idx = i;
|
tallest_object_idx = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1169,7 +1204,7 @@ void Print::alert_when_supports_needed()
|
|||||||
for (const auto &obj : objects_isssues) {
|
for (const auto &obj : objects_isssues) {
|
||||||
for (const auto &issue : obj.second) {
|
for (const auto &issue : obj.second) {
|
||||||
po_by_support_issues[issue].push_back(obj.first);
|
po_by_support_issues[issue].push_back(obj.first);
|
||||||
if (issue.first == SupportSpotsGenerator::SupportPointCause::SeparationFromBed){
|
if (issue.first == SupportSpotsGenerator::SupportPointCause::SeparationFromBed && !obj.first->has_brim()){
|
||||||
recommend_brim = true;
|
recommend_brim = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1200,7 +1235,9 @@ void Print::alert_when_supports_needed()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
message += "\n" + L("Consider enabling supports") + (recommend_brim ? (" " + L("and/or brim")) : "") + ".";
|
bool brim_or_supp = recommend_brim && po_by_support_issues.size() < 2;
|
||||||
|
auto brim_part = " " + (brim_or_supp ? L("or") : L("and")) + " " + L("brim");
|
||||||
|
message += "\n" + L("Consider enabling supports") + (recommend_brim ? brim_part : "") + ".";
|
||||||
|
|
||||||
if (objects_isssues.size() > 0) {
|
if (objects_isssues.size() > 0) {
|
||||||
this->active_step_add_warning(PrintStateBase::WarningLevel::NON_CRITICAL, message);
|
this->active_step_add_warning(PrintStateBase::WarningLevel::NON_CRITICAL, message);
|
||||||
|
@ -1792,6 +1792,8 @@ bool PrintObject::update_layer_height_profile(const ModelObject &model_object, c
|
|||||||
// use the constructor because the assignement is crashing on ASAN OsX
|
// use the constructor because the assignement is crashing on ASAN OsX
|
||||||
layer_height_profile = std::vector<coordf_t>(model_object.layer_height_profile.get());
|
layer_height_profile = std::vector<coordf_t>(model_object.layer_height_profile.get());
|
||||||
// layer_height_profile = model_object.layer_height_profile;
|
// layer_height_profile = model_object.layer_height_profile;
|
||||||
|
// The layer height returned is sampled with high density for the UI layer height painting
|
||||||
|
// and smoothing tool to work.
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1806,6 +1808,7 @@ bool PrintObject::update_layer_height_profile(const ModelObject &model_object, c
|
|||||||
if (layer_height_profile.empty()) {
|
if (layer_height_profile.empty()) {
|
||||||
//layer_height_profile = layer_height_profile_adaptive(slicing_parameters, model_object.layer_config_ranges, model_object.volumes);
|
//layer_height_profile = layer_height_profile_adaptive(slicing_parameters, model_object.layer_config_ranges, model_object.volumes);
|
||||||
layer_height_profile = layer_height_profile_from_ranges(slicing_parameters, model_object.layer_config_ranges);
|
layer_height_profile = layer_height_profile_from_ranges(slicing_parameters, model_object.layer_config_ranges);
|
||||||
|
// The layer height profile is already compressed.
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
return updated;
|
return updated;
|
||||||
|
@ -183,32 +183,47 @@ std::vector<coordf_t> layer_height_profile_from_ranges(
|
|||||||
// 2) Convert the trimmed ranges to a height profile, fill in the undefined intervals between z=0 and z=slicing_params.object_print_z_max()
|
// 2) Convert the trimmed ranges to a height profile, fill in the undefined intervals between z=0 and z=slicing_params.object_print_z_max()
|
||||||
// with slicing_params.layer_height
|
// with slicing_params.layer_height
|
||||||
std::vector<coordf_t> layer_height_profile;
|
std::vector<coordf_t> layer_height_profile;
|
||||||
for (std::vector<std::pair<t_layer_height_range,coordf_t>>::const_iterator it_range = ranges_non_overlapping.begin(); it_range != ranges_non_overlapping.end(); ++ it_range) {
|
auto last_z = [&layer_height_profile]() {
|
||||||
coordf_t lo = it_range->first.first;
|
return layer_height_profile.empty() ? 0. : *(layer_height_profile.end() - 2);
|
||||||
coordf_t hi = it_range->first.second;
|
};
|
||||||
coordf_t height = it_range->second;
|
auto lh_append = [&layer_height_profile, last_z](coordf_t z, coordf_t layer_height) {
|
||||||
coordf_t last_z = layer_height_profile.empty() ? 0. : layer_height_profile[layer_height_profile.size() - 2];
|
if (! layer_height_profile.empty()) {
|
||||||
if (lo > last_z + EPSILON) {
|
bool last_z_matches = is_approx(*(layer_height_profile.end() - 2), z);
|
||||||
|
bool last_h_matches = is_approx(layer_height_profile.back(), layer_height);
|
||||||
|
if (last_h_matches) {
|
||||||
|
if (last_z_matches) {
|
||||||
|
// Drop a duplicate.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (layer_height_profile.size() >= 4 && is_approx(*(layer_height_profile.end() - 3), layer_height)) {
|
||||||
|
// Third repetition of the same layer_height. Update z of the last entry.
|
||||||
|
*(layer_height_profile.end() - 2) = z;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layer_height_profile.push_back(z);
|
||||||
|
layer_height_profile.push_back(layer_height);
|
||||||
|
};
|
||||||
|
|
||||||
|
for (const std::pair<t_layer_height_range,coordf_t> &non_overlapping_range : ranges_non_overlapping) {
|
||||||
|
coordf_t lo = non_overlapping_range.first.first;
|
||||||
|
coordf_t hi = non_overlapping_range.first.second;
|
||||||
|
coordf_t height = non_overlapping_range.second;
|
||||||
|
if (coordf_t z = last_z(); lo > z + EPSILON) {
|
||||||
// Insert a step of normal layer height.
|
// Insert a step of normal layer height.
|
||||||
layer_height_profile.push_back(last_z);
|
lh_append(z, slicing_params.layer_height);
|
||||||
layer_height_profile.push_back(slicing_params.layer_height);
|
lh_append(lo, slicing_params.layer_height);
|
||||||
layer_height_profile.push_back(lo);
|
|
||||||
layer_height_profile.push_back(slicing_params.layer_height);
|
|
||||||
}
|
}
|
||||||
// Insert a step of the overriden layer height.
|
// Insert a step of the overriden layer height.
|
||||||
layer_height_profile.push_back(lo);
|
lh_append(lo, height);
|
||||||
layer_height_profile.push_back(height);
|
lh_append(hi, height);
|
||||||
layer_height_profile.push_back(hi);
|
|
||||||
layer_height_profile.push_back(height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
coordf_t last_z = layer_height_profile.empty() ? 0. : layer_height_profile[layer_height_profile.size() - 2];
|
if (coordf_t z = last_z(); z < slicing_params.object_print_z_height()) {
|
||||||
if (last_z < slicing_params.object_print_z_height()) {
|
|
||||||
// Insert a step of normal layer height up to the object top.
|
// Insert a step of normal layer height up to the object top.
|
||||||
layer_height_profile.push_back(last_z);
|
lh_append(z, slicing_params.layer_height);
|
||||||
layer_height_profile.push_back(slicing_params.layer_height);
|
lh_append(slicing_params.object_print_z_height(), slicing_params.layer_height);
|
||||||
layer_height_profile.push_back(slicing_params.object_print_z_height());
|
|
||||||
layer_height_profile.push_back(slicing_params.layer_height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return layer_height_profile;
|
return layer_height_profile;
|
||||||
@ -294,7 +309,7 @@ std::vector<double> layer_height_profile_adaptive(const SlicingParameters& slici
|
|||||||
print_z += height;
|
print_z += height;
|
||||||
}
|
}
|
||||||
|
|
||||||
double z_gap = slicing_params.object_print_z_height() - layer_height_profile[layer_height_profile.size() - 2];
|
double z_gap = slicing_params.object_print_z_height() - *(layer_height_profile.end() - 2);
|
||||||
if (z_gap > 0.0)
|
if (z_gap > 0.0)
|
||||||
{
|
{
|
||||||
layer_height_profile.push_back(slicing_params.object_print_z_height());
|
layer_height_profile.push_back(slicing_params.object_print_z_height());
|
||||||
@ -632,6 +647,40 @@ std::vector<coordf_t> generate_object_layers(
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check whether the layer height profile describes a fixed layer height profile.
|
||||||
|
bool check_object_layers_fixed(
|
||||||
|
const SlicingParameters &slicing_params,
|
||||||
|
const std::vector<coordf_t> &layer_height_profile)
|
||||||
|
{
|
||||||
|
assert(layer_height_profile.size() >= 4);
|
||||||
|
assert(layer_height_profile.size() % 2 == 0);
|
||||||
|
assert(layer_height_profile[0] == 0);
|
||||||
|
|
||||||
|
if (layer_height_profile.size() != 4 && layer_height_profile.size() != 8)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
bool fixed_step1 = is_approx(layer_height_profile[1], layer_height_profile[3]);
|
||||||
|
bool fixed_step2 = layer_height_profile.size() == 4 ||
|
||||||
|
(layer_height_profile[2] == layer_height_profile[4] && is_approx(layer_height_profile[5], layer_height_profile[7]));
|
||||||
|
|
||||||
|
if (! fixed_step1 || ! fixed_step2)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (layer_height_profile[2] < 0.5 * slicing_params.first_object_layer_height + EPSILON ||
|
||||||
|
! is_approx(layer_height_profile[3], slicing_params.first_object_layer_height))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
double z_max = layer_height_profile[layer_height_profile.size() - 2];
|
||||||
|
double z_2nd = slicing_params.first_object_layer_height + 0.5 * slicing_params.layer_height;
|
||||||
|
if (z_2nd > z_max)
|
||||||
|
return true;
|
||||||
|
if (z_2nd < *(layer_height_profile.end() - 4) + EPSILON ||
|
||||||
|
! is_approx(layer_height_profile.back(), slicing_params.layer_height))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
int generate_layer_height_texture(
|
int generate_layer_height_texture(
|
||||||
const SlicingParameters &slicing_params,
|
const SlicingParameters &slicing_params,
|
||||||
const std::vector<coordf_t> &layers,
|
const std::vector<coordf_t> &layers,
|
||||||
|
@ -129,11 +129,11 @@ inline bool equal_layering(const SlicingParameters &sp1, const SlicingParameters
|
|||||||
typedef std::pair<coordf_t,coordf_t> t_layer_height_range;
|
typedef std::pair<coordf_t,coordf_t> t_layer_height_range;
|
||||||
typedef std::map<t_layer_height_range, ModelConfig> t_layer_config_ranges;
|
typedef std::map<t_layer_height_range, ModelConfig> t_layer_config_ranges;
|
||||||
|
|
||||||
extern std::vector<coordf_t> layer_height_profile_from_ranges(
|
std::vector<coordf_t> layer_height_profile_from_ranges(
|
||||||
const SlicingParameters &slicing_params,
|
const SlicingParameters &slicing_params,
|
||||||
const t_layer_config_ranges &layer_config_ranges);
|
const t_layer_config_ranges &layer_config_ranges);
|
||||||
|
|
||||||
extern std::vector<double> layer_height_profile_adaptive(
|
std::vector<double> layer_height_profile_adaptive(
|
||||||
const SlicingParameters& slicing_params,
|
const SlicingParameters& slicing_params,
|
||||||
const ModelObject& object, float quality_factor);
|
const ModelObject& object, float quality_factor);
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ struct HeightProfileSmoothingParams
|
|||||||
HeightProfileSmoothingParams(unsigned int radius, bool keep_min) : radius(radius), keep_min(keep_min) {}
|
HeightProfileSmoothingParams(unsigned int radius, bool keep_min) : radius(radius), keep_min(keep_min) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<double> smooth_height_profile(
|
std::vector<double> smooth_height_profile(
|
||||||
const std::vector<double>& profile, const SlicingParameters& slicing_params,
|
const std::vector<double>& profile, const SlicingParameters& slicing_params,
|
||||||
const HeightProfileSmoothingParams& smoothing_params);
|
const HeightProfileSmoothingParams& smoothing_params);
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ enum LayerHeightEditActionType : unsigned int {
|
|||||||
LAYER_HEIGHT_EDIT_ACTION_SMOOTH = 3
|
LAYER_HEIGHT_EDIT_ACTION_SMOOTH = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void adjust_layer_height_profile(
|
void adjust_layer_height_profile(
|
||||||
const SlicingParameters &slicing_params,
|
const SlicingParameters &slicing_params,
|
||||||
std::vector<coordf_t> &layer_height_profile,
|
std::vector<coordf_t> &layer_height_profile,
|
||||||
coordf_t z,
|
coordf_t z,
|
||||||
@ -167,14 +167,19 @@ extern void adjust_layer_height_profile(
|
|||||||
|
|
||||||
// Produce object layers as pairs of low / high layer boundaries, stored into a linear vector.
|
// Produce object layers as pairs of low / high layer boundaries, stored into a linear vector.
|
||||||
// The object layers are based at z=0, ignoring the raft layers.
|
// The object layers are based at z=0, ignoring the raft layers.
|
||||||
extern std::vector<coordf_t> generate_object_layers(
|
std::vector<coordf_t> generate_object_layers(
|
||||||
|
const SlicingParameters &slicing_params,
|
||||||
|
const std::vector<coordf_t> &layer_height_profile);
|
||||||
|
|
||||||
|
// Check whether the layer height profile describes a fixed layer height profile.
|
||||||
|
bool check_object_layers_fixed(
|
||||||
const SlicingParameters &slicing_params,
|
const SlicingParameters &slicing_params,
|
||||||
const std::vector<coordf_t> &layer_height_profile);
|
const std::vector<coordf_t> &layer_height_profile);
|
||||||
|
|
||||||
// Produce a 1D texture packed into a 2D texture describing in the RGBA format
|
// Produce a 1D texture packed into a 2D texture describing in the RGBA format
|
||||||
// the planned object layers.
|
// the planned object layers.
|
||||||
// Returns number of cells used by the texture of the 0th LOD level.
|
// Returns number of cells used by the texture of the 0th LOD level.
|
||||||
extern int generate_layer_height_texture(
|
int generate_layer_height_texture(
|
||||||
const SlicingParameters &slicing_params,
|
const SlicingParameters &slicing_params,
|
||||||
const std::vector<coordf_t> &layers,
|
const std::vector<coordf_t> &layers,
|
||||||
void *data, int rows, int cols, bool level_of_detail_2nd_level);
|
void *data, int rows, int cols, bool level_of_detail_2nd_level);
|
||||||
|
@ -3246,6 +3246,10 @@ static Polylines draw_perimeters(const ExPolygon &expoly, double clip_length)
|
|||||||
for (size_t i = 0; i <= expoly.holes.size(); ++ i) {
|
for (size_t i = 0; i <= expoly.holes.size(); ++ i) {
|
||||||
Polyline pl(i == 0 ? expoly.contour.points : expoly.holes[i - 1].points);
|
Polyline pl(i == 0 ? expoly.contour.points : expoly.holes[i - 1].points);
|
||||||
pl.points.emplace_back(pl.points.front());
|
pl.points.emplace_back(pl.points.front());
|
||||||
|
if (i > 0)
|
||||||
|
// It is a hole, reverse it.
|
||||||
|
pl.reverse();
|
||||||
|
// so that all contours are CCW oriented.
|
||||||
pl.clip_end(clip_length);
|
pl.clip_end(clip_length);
|
||||||
polylines.emplace_back(std::move(pl));
|
polylines.emplace_back(std::move(pl));
|
||||||
}
|
}
|
||||||
@ -3351,13 +3355,17 @@ static inline void tree_supports_generate_paths(
|
|||||||
const double anchor_length = spacing * 6.;
|
const double anchor_length = spacing * 6.;
|
||||||
ClipperLib_Z::Paths anchor_candidates;
|
ClipperLib_Z::Paths anchor_candidates;
|
||||||
for (ExPolygon& expoly : closing_ex(polygons, float(SCALED_EPSILON), float(SCALED_EPSILON + 0.5 * flow.scaled_width()))) {
|
for (ExPolygon& expoly : closing_ex(polygons, float(SCALED_EPSILON), float(SCALED_EPSILON + 0.5 * flow.scaled_width()))) {
|
||||||
|
std::unique_ptr<ExtrusionEntityCollection> eec;
|
||||||
double area = expoly.area();
|
double area = expoly.area();
|
||||||
if (area > sqr(scaled<double>(5.))) {
|
if (area > sqr(scaled<double>(5.))) {
|
||||||
|
eec = std::make_unique<ExtrusionEntityCollection>();
|
||||||
|
// Don't reoder internal / external loops of the same island, always start with the internal loop.
|
||||||
|
eec->no_sort = true;
|
||||||
// Make the tree branch stable by adding another perimeter.
|
// Make the tree branch stable by adding another perimeter.
|
||||||
ExPolygons level2 = offset2_ex({ expoly }, -1.5 * flow.scaled_width(), 0.5 * flow.scaled_width());
|
ExPolygons level2 = offset2_ex({ expoly }, -1.5 * flow.scaled_width(), 0.5 * flow.scaled_width());
|
||||||
if (level2.size() == 1) {
|
if (level2.size() == 1) {
|
||||||
Polylines polylines;
|
Polylines polylines;
|
||||||
extrusion_entities_append_paths(dst, draw_perimeters(expoly, clip_length), ExtrusionRole::SupportMaterial, flow.mm3_per_mm(), flow.width(), flow.height(),
|
extrusion_entities_append_paths(eec->entities, draw_perimeters(expoly, clip_length), ExtrusionRole::SupportMaterial, flow.mm3_per_mm(), flow.width(), flow.height(),
|
||||||
// Disable reversal of the path, always start with the anchor, always print CCW.
|
// Disable reversal of the path, always start with the anchor, always print CCW.
|
||||||
false);
|
false);
|
||||||
expoly = level2.front();
|
expoly = level2.front();
|
||||||
@ -3369,20 +3377,21 @@ static inline void tree_supports_generate_paths(
|
|||||||
// The anchor candidate points are annotated with an index of the source contour or with -1 if on intersection.
|
// The anchor candidate points are annotated with an index of the source contour or with -1 if on intersection.
|
||||||
anchor_candidates.clear();
|
anchor_candidates.clear();
|
||||||
shrink_expolygon_with_contour_idx(expoly, flow.scaled_width(), DefaultJoinType, 1.2, anchor_candidates);
|
shrink_expolygon_with_contour_idx(expoly, flow.scaled_width(), DefaultJoinType, 1.2, anchor_candidates);
|
||||||
// Orient all contours CCW.
|
// Orient all contours CW.
|
||||||
for (auto &path : anchor_candidates)
|
for (auto &path : anchor_candidates)
|
||||||
if (ClipperLib_Z::Area(path) < 0)
|
if (ClipperLib_Z::Area(path) > 0)
|
||||||
std::reverse(path.begin(), path.end());
|
std::reverse(path.begin(), path.end());
|
||||||
|
|
||||||
// Draw the perimeters.
|
// Draw the perimeters.
|
||||||
Polylines polylines;
|
Polylines polylines;
|
||||||
polylines.reserve(expoly.holes.size() + 1);
|
polylines.reserve(expoly.holes.size() + 1);
|
||||||
for (size_t idx_loop = 0; idx_loop <= expoly.holes.size(); ++ idx_loop) {
|
for (size_t idx_loop = 0; idx_loop < expoly.num_contours(); ++ idx_loop) {
|
||||||
// Open the loop with a seam.
|
// Open the loop with a seam.
|
||||||
const Polygon &loop = idx_loop == 0 ? expoly.contour : expoly.holes[idx_loop - 1];
|
const Polygon &loop = expoly.contour_or_hole(idx_loop);
|
||||||
Polyline pl(loop.points);
|
Polyline pl(loop.points);
|
||||||
// Orient all contours CCW.
|
// Orient all contours CW, because the anchor will be added to the end of polyline while we want to start a loop with the anchor.
|
||||||
if (loop.area() < 0)
|
if (idx_loop == 0)
|
||||||
|
// It is an outer contour.
|
||||||
pl.reverse();
|
pl.reverse();
|
||||||
pl.points.emplace_back(pl.points.front());
|
pl.points.emplace_back(pl.points.front());
|
||||||
pl.clip_end(clip_length);
|
pl.clip_end(clip_length);
|
||||||
@ -3421,7 +3430,7 @@ static inline void tree_supports_generate_paths(
|
|||||||
}
|
}
|
||||||
if (d2min < sqr(flow.scaled_width() * 3.)) {
|
if (d2min < sqr(flow.scaled_width() * 3.)) {
|
||||||
// Try to cut an anchor from the closest_contour.
|
// Try to cut an anchor from the closest_contour.
|
||||||
// Both closest_contour and pl are CCW oriented.
|
// Both closest_contour and pl are CW oriented.
|
||||||
pl.points.emplace_back(closest_point.cast<coord_t>());
|
pl.points.emplace_back(closest_point.cast<coord_t>());
|
||||||
const ClipperLib_Z::Path &path = *closest_contour;
|
const ClipperLib_Z::Path &path = *closest_contour;
|
||||||
double remaining_length = anchor_length - (seam_pt - closest_point).norm();
|
double remaining_length = anchor_length - (seam_pt - closest_point).norm();
|
||||||
@ -3460,9 +3469,15 @@ static inline void tree_supports_generate_paths(
|
|||||||
pl.reverse();
|
pl.reverse();
|
||||||
polylines.emplace_back(std::move(pl));
|
polylines.emplace_back(std::move(pl));
|
||||||
}
|
}
|
||||||
extrusion_entities_append_paths(dst, polylines, ExtrusionRole::SupportMaterial, flow.mm3_per_mm(), flow.width(), flow.height(),
|
|
||||||
|
ExtrusionEntitiesPtr &out = eec ? eec->entities : dst;
|
||||||
|
extrusion_entities_append_paths(out, std::move(polylines), ExtrusionRole::SupportMaterial, flow.mm3_per_mm(), flow.width(), flow.height(),
|
||||||
// Disable reversal of the path, always start with the anchor, always print CCW.
|
// Disable reversal of the path, always start with the anchor, always print CCW.
|
||||||
false);
|
false);
|
||||||
|
if (eec) {
|
||||||
|
std::reverse(eec->entities.begin(), eec->entities.end());
|
||||||
|
dst.emplace_back(eec.release());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -923,7 +923,9 @@ static void generate_initial_areas(
|
|||||||
// does not turn valid in double the amount of layers a slope of support angle would take to travel xy_distance, nothing reasonable will come from it.
|
// does not turn valid in double the amount of layers a slope of support angle would take to travel xy_distance, nothing reasonable will come from it.
|
||||||
// The 2*z_distance_delta is only a catch for when the support angle is very high.
|
// The 2*z_distance_delta is only a catch for when the support angle is very high.
|
||||||
// Used only if not min_xy_dist.
|
// Used only if not min_xy_dist.
|
||||||
const coord_t max_overhang_insert_lag = std::max<coord_t>(round_up_divide(mesh_config.xy_distance, max_overhang_speed / 2), 2 * mesh_config.z_distance_top_layers);
|
const coord_t max_overhang_insert_lag = mesh_config.z_distance_top_layers > 0 ?
|
||||||
|
std::max<coord_t>(round_up_divide(mesh_config.xy_distance, max_overhang_speed / 2), 2 * mesh_config.z_distance_top_layers) :
|
||||||
|
0;
|
||||||
|
|
||||||
//FIXME
|
//FIXME
|
||||||
size_t num_support_layers = print_object.layer_count();
|
size_t num_support_layers = print_object.layer_count();
|
||||||
@ -2498,8 +2500,10 @@ static void create_nodes_from_area(
|
|||||||
// Point is chosen based on an inaccurate estimate where the branches will split into two, but every point inside the influence area would produce a valid result.
|
// Point is chosen based on an inaccurate estimate where the branches will split into two, but every point inside the influence area would produce a valid result.
|
||||||
{
|
{
|
||||||
SupportElements *layer_above = move_bounds.size() > 1 ? &move_bounds[1] : nullptr;
|
SupportElements *layer_above = move_bounds.size() > 1 ? &move_bounds[1] : nullptr;
|
||||||
for (SupportElement &elem : *layer_above)
|
if (layer_above) {
|
||||||
elem.state.marked = false;
|
for (SupportElement &elem : *layer_above)
|
||||||
|
elem.state.marked = false;
|
||||||
|
}
|
||||||
for (SupportElement &init : move_bounds.front()) {
|
for (SupportElement &init : move_bounds.front()) {
|
||||||
init.state.result_on_layer = move_inside_if_outside(init.influence_area, init.state.next_position);
|
init.state.result_on_layer = move_inside_if_outside(init.influence_area, init.state.next_position);
|
||||||
// Also set the parent nodes, as these will be required for the first iteration of the loop below and mark the parent nodes.
|
// Also set the parent nodes, as these will be required for the first iteration of the loop below and mark the parent nodes.
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
#include "libslic3r/Format/SL1.hpp"
|
#include "libslic3r/Format/SL1.hpp"
|
||||||
#include "libslic3r/Thread.hpp"
|
#include "libslic3r/Thread.hpp"
|
||||||
#include "libslic3r/libslic3r.h"
|
#include "libslic3r/libslic3r.h"
|
||||||
#include "libslic3r/BuildVolume.hpp"
|
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
@ -145,20 +144,6 @@ std::string BackgroundSlicingProcess::output_filepath_for_project(const boost::f
|
|||||||
void BackgroundSlicingProcess::process_fff()
|
void BackgroundSlicingProcess::process_fff()
|
||||||
{
|
{
|
||||||
assert(m_print == m_fff_print);
|
assert(m_print == m_fff_print);
|
||||||
|
|
||||||
// Checks that the print does not exceed the max print height
|
|
||||||
const BuildVolume& build_volume = GUI::wxGetApp().mainframe->m_plater->build_volume();
|
|
||||||
auto objects = m_fff_print->objects();
|
|
||||||
for (auto obj : objects) {
|
|
||||||
std::vector<coordf_t> layer_height_profile;
|
|
||||||
PrintObject::update_layer_height_profile(*obj->model_object(), obj->slicing_parameters(), layer_height_profile);
|
|
||||||
auto layers = generate_object_layers(obj->slicing_parameters(), layer_height_profile);
|
|
||||||
if (!layers.empty() && layers.back() > build_volume.max_print_height()) {
|
|
||||||
throw Slic3r::SlicingError("The print is taller than the maximum allowed height. You might want to reduce the size of your model"
|
|
||||||
" or change current print settings and retry.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_print->process();
|
m_print->process();
|
||||||
wxCommandEvent evt(m_event_slicing_completed_id);
|
wxCommandEvent evt(m_event_slicing_completed_id);
|
||||||
// Post the Slicing Finished message for the G-code viewer to update.
|
// Post the Slicing Finished message for the G-code viewer to update.
|
||||||
|
@ -1445,9 +1445,11 @@ bool PageDownloader::on_finish_downloader() const
|
|||||||
return downloader->on_finish();
|
return downloader->on_finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DownloaderUtils::Worker::perform_register()
|
bool DownloaderUtils::Worker::perform_register(const std::string& path_override/* = {}*/)
|
||||||
{
|
{
|
||||||
boost::filesystem::path aux_dest (GUI::into_u8(path_name()));
|
boost::filesystem::path aux_dest (GUI::into_u8(path_name()));
|
||||||
|
if (!path_override.empty())
|
||||||
|
aux_dest = boost::filesystem::path(path_override);
|
||||||
boost::system::error_code ec;
|
boost::system::error_code ec;
|
||||||
boost::filesystem::path chosen_dest = boost::filesystem::absolute(aux_dest, ec);
|
boost::filesystem::path chosen_dest = boost::filesystem::absolute(aux_dest, ec);
|
||||||
if(ec)
|
if(ec)
|
||||||
|
@ -430,7 +430,6 @@ class Worker : public wxBoxSizer
|
|||||||
bool perform_registration_linux { false };
|
bool perform_registration_linux { false };
|
||||||
#endif // __linux__
|
#endif // __linux__
|
||||||
|
|
||||||
bool perform_register();
|
|
||||||
void deregister();
|
void deregister();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -445,7 +444,7 @@ public:
|
|||||||
void set_path_name(const std::string& name);
|
void set_path_name(const std::string& name);
|
||||||
|
|
||||||
bool on_finish();
|
bool on_finish();
|
||||||
|
bool perform_register(const std::string& path_override = {});
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
bool get_perform_registration_linux() { return perform_registration_linux; }
|
bool get_perform_registration_linux() { return perform_registration_linux; }
|
||||||
#endif // __linux__
|
#endif // __linux__
|
||||||
|
@ -338,42 +338,47 @@ void DesktopIntegrationDialog::perform_desktop_integration(bool perform_download
|
|||||||
"StartupNotify=false\n"
|
"StartupNotify=false\n"
|
||||||
"StartupWMClass=prusa-slicer\n", name_suffix, version_suffix, excutable_path);
|
"StartupWMClass=prusa-slicer\n", name_suffix, version_suffix, excutable_path);
|
||||||
|
|
||||||
|
bool candidate_found = false;
|
||||||
for (size_t i = 0; i < target_candidates.size(); ++i) {
|
for (size_t i = 0; i < target_candidates.size(); ++i) {
|
||||||
if (contains_path_dir(target_candidates[i], "applications")) {
|
if (contains_path_dir(target_candidates[i], "applications")) {
|
||||||
target_dir_desktop = target_candidates[i];
|
target_dir_desktop = target_candidates[i];
|
||||||
// Write slicer desktop file
|
// Write slicer desktop file
|
||||||
std::string path = GUI::format("%1%/applications/PrusaSlicer%2%.desktop", target_dir_desktop, version_suffix);
|
std::string path = GUI::format("%1%/applications/PrusaSlicer%2%.desktop", target_dir_desktop, version_suffix);
|
||||||
if (create_desktop_file(path, desktop_file)){
|
if (create_desktop_file(path, desktop_file)) {
|
||||||
|
candidate_found = true;
|
||||||
BOOST_LOG_TRIVIAL(debug) << "PrusaSlicer.desktop file installation success.";
|
BOOST_LOG_TRIVIAL(debug) << "PrusaSlicer.desktop file installation success.";
|
||||||
break;
|
break;
|
||||||
} else {
|
|
||||||
// write failed - try another path
|
|
||||||
BOOST_LOG_TRIVIAL(debug) << "Attempt to PrusaSlicer.desktop file installation failed. failed path: " << target_candidates[i];
|
|
||||||
target_dir_desktop.clear();
|
|
||||||
}
|
}
|
||||||
}
|
else {
|
||||||
// if all failed - try creating default home folder
|
// write failed - try another path
|
||||||
if (i == target_candidates.size() - 1) {
|
BOOST_LOG_TRIVIAL(debug) << "Attempt to PrusaSlicer.desktop file installation failed. failed path: " << target_candidates[i];
|
||||||
// create $HOME/.local/share
|
target_dir_desktop.clear();
|
||||||
create_path(boost::nowide::narrow(wxFileName::GetHomeDir()), ".local/share/applications");
|
|
||||||
// create desktop file
|
|
||||||
target_dir_desktop = GUI::format("%1%/.local/share",wxFileName::GetHomeDir());
|
|
||||||
std::string path = GUI::format("%1%/applications/PrusaSlicer%2%.desktop", target_dir_desktop, version_suffix);
|
|
||||||
if (contains_path_dir(target_dir_desktop, "applications")) {
|
|
||||||
if (!create_desktop_file(path, desktop_file)) {
|
|
||||||
// Desktop file not written - end desktop integration
|
|
||||||
BOOST_LOG_TRIVIAL(error) << "Performing desktop integration failed - could not create desktop file";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Desktop file not written - end desktop integration
|
|
||||||
BOOST_LOG_TRIVIAL(error) << "Performing desktop integration failed because the application directory was not found.";
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(target_dir_desktop.empty()) {
|
// if all failed - try creating default home folder
|
||||||
// Desktop file not written - end desktop integration
|
if (!candidate_found) {
|
||||||
|
// create $HOME/.local/share
|
||||||
|
create_path(boost::nowide::narrow(wxFileName::GetHomeDir()), ".local/share/applications");
|
||||||
|
// create desktop file
|
||||||
|
target_dir_desktop = GUI::format("%1%/.local/share", wxFileName::GetHomeDir());
|
||||||
|
std::string path = GUI::format("%1%/applications/PrusaSlicer%2%.desktop", target_dir_desktop, version_suffix);
|
||||||
|
if (contains_path_dir(target_dir_desktop, "applications")) {
|
||||||
|
if (!create_desktop_file(path, desktop_file)) {
|
||||||
|
// Desktop file not written - end desktop integration
|
||||||
|
BOOST_LOG_TRIVIAL(error) << "Performing desktop integration failed - could not create desktop file";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Desktop file not written - end desktop integration
|
||||||
|
BOOST_LOG_TRIVIAL(error) << "Performing desktop integration failed because the application directory was not found.";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assert(!target_dir_desktop.empty());
|
||||||
|
if (target_dir_desktop.empty()) {
|
||||||
|
// Desktop file not written - end desktop integration
|
||||||
BOOST_LOG_TRIVIAL(error) << "Performing desktop integration failed because the application directory was not found.";
|
BOOST_LOG_TRIVIAL(error) << "Performing desktop integration failed because the application directory was not found.";
|
||||||
show_error(nullptr, _L("Performing desktop integration failed because the application directory was not found."));
|
show_error(nullptr, _L("Performing desktop integration failed because the application directory was not found."));
|
||||||
return;
|
return;
|
||||||
|
@ -201,7 +201,14 @@ bool Field::is_matched(const std::string& string, const std::string& pattern)
|
|||||||
return std::regex_match(string, regex_pattern);
|
return std::regex_match(string, regex_pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
static wxString na_value() { return _(L("N/A")); }
|
static wxString na_value(bool for_spin_ctrl = false)
|
||||||
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
if (for_spin_ctrl)
|
||||||
|
return "";
|
||||||
|
#endif
|
||||||
|
return _(L("N/A"));
|
||||||
|
}
|
||||||
|
|
||||||
void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true*/)
|
void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true*/)
|
||||||
{
|
{
|
||||||
@ -888,7 +895,7 @@ void SpinCtrl::set_value(const boost::any& value, bool change_event/* = false*/)
|
|||||||
if (m_opt.nullable) {
|
if (m_opt.nullable) {
|
||||||
const bool m_is_na_val = tmp_value == ConfigOptionIntsNullable::nil_value();
|
const bool m_is_na_val = tmp_value == ConfigOptionIntsNullable::nil_value();
|
||||||
if (m_is_na_val)
|
if (m_is_na_val)
|
||||||
dynamic_cast<wxSpinCtrl*>(window)->SetValue(na_value());
|
dynamic_cast<wxSpinCtrl*>(window)->SetValue(na_value(true));
|
||||||
else {
|
else {
|
||||||
m_last_meaningful_value = value;
|
m_last_meaningful_value = value;
|
||||||
dynamic_cast<wxSpinCtrl*>(window)->SetValue(tmp_value);
|
dynamic_cast<wxSpinCtrl*>(window)->SetValue(tmp_value);
|
||||||
@ -909,7 +916,7 @@ void SpinCtrl::set_last_meaningful_value()
|
|||||||
|
|
||||||
void SpinCtrl::set_na_value()
|
void SpinCtrl::set_na_value()
|
||||||
{
|
{
|
||||||
dynamic_cast<wxSpinCtrl*>(window)->SetValue(na_value());
|
dynamic_cast<wxSpinCtrl*>(window)->SetValue(na_value(true));
|
||||||
m_value = ConfigOptionIntsNullable::nil_value();
|
m_value = ConfigOptionIntsNullable::nil_value();
|
||||||
propagate_value();
|
propagate_value();
|
||||||
}
|
}
|
||||||
@ -917,7 +924,7 @@ void SpinCtrl::set_na_value()
|
|||||||
boost::any& SpinCtrl::get_value()
|
boost::any& SpinCtrl::get_value()
|
||||||
{
|
{
|
||||||
wxSpinCtrl* spin = static_cast<wxSpinCtrl*>(window);
|
wxSpinCtrl* spin = static_cast<wxSpinCtrl*>(window);
|
||||||
if (spin->GetTextValue() == na_value())
|
if (spin->GetTextValue() == na_value(true))
|
||||||
return m_value;
|
return m_value;
|
||||||
|
|
||||||
int value = spin->GetValue();
|
int value = spin->GetValue();
|
||||||
|
@ -79,6 +79,7 @@
|
|||||||
#include "DesktopIntegrationDialog.hpp"
|
#include "DesktopIntegrationDialog.hpp"
|
||||||
#include "SendSystemInfoDialog.hpp"
|
#include "SendSystemInfoDialog.hpp"
|
||||||
#include "Downloader.hpp"
|
#include "Downloader.hpp"
|
||||||
|
#include "ConfigWizard_private.hpp"
|
||||||
|
|
||||||
#include "BitmapCache.hpp"
|
#include "BitmapCache.hpp"
|
||||||
#include "Notebook.hpp"
|
#include "Notebook.hpp"
|
||||||
@ -1010,7 +1011,6 @@ std::string GUI_App::check_older_app_config(Semver current_version, bool backup)
|
|||||||
return {};
|
return {};
|
||||||
BOOST_LOG_TRIVIAL(info) << "last app config file used: " << 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
|
||||||
, format_wxstr(_L("You are opening %1% version %2%."), SLIC3R_APP_NAME, SLIC3R_VERSION)
|
, format_wxstr(_L("You are opening %1% version %2%."), SLIC3R_APP_NAME, SLIC3R_VERSION)
|
||||||
, backup ?
|
, backup ?
|
||||||
@ -1155,12 +1155,16 @@ bool GUI_App::on_init_inner()
|
|||||||
|
|
||||||
std::string older_data_dir_path;
|
std::string older_data_dir_path;
|
||||||
if (m_app_conf_exists) {
|
if (m_app_conf_exists) {
|
||||||
if (app_config->orig_version().valid() && app_config->orig_version() < *Semver::parse(SLIC3R_VERSION))
|
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.
|
// 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);
|
older_data_dir_path = check_older_app_config(app_config->orig_version(), true);
|
||||||
|
m_last_app_conf_lower_version = true;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// No AppConfig exists, fresh install. Always try to copy from an alternate location, don't make backup of the current configuration.
|
// 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);
|
older_data_dir_path = check_older_app_config(Semver(), false);
|
||||||
|
if (!older_data_dir_path.empty())
|
||||||
|
m_last_app_conf_lower_version = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _MSW_DARK_MODE
|
#ifdef _MSW_DARK_MODE
|
||||||
@ -3078,6 +3082,29 @@ void GUI_App::show_desktop_integration_dialog()
|
|||||||
#endif //__linux__
|
#endif //__linux__
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GUI_App::show_downloader_registration_dialog()
|
||||||
|
{
|
||||||
|
InfoDialog msg(nullptr
|
||||||
|
, format_wxstr(_L("Welcome to %1% version %2%."), SLIC3R_APP_NAME, SLIC3R_VERSION)
|
||||||
|
, format_wxstr(_L(
|
||||||
|
"Do you wish to register downloads from <b>Printables.com</b>"
|
||||||
|
"\nfor this <b>%1% %2%</b> executable?"
|
||||||
|
"\n\nDownloads can be registered for only 1 executable at time."
|
||||||
|
), SLIC3R_APP_NAME, SLIC3R_VERSION)
|
||||||
|
, true, wxYES_NO);
|
||||||
|
if (msg.ShowModal() == wxID_YES) {
|
||||||
|
auto downloader = new DownloaderUtils::Worker(nullptr);
|
||||||
|
downloader->perform_register(app_config->get("url_downloader_dest"));
|
||||||
|
#ifdef __linux__
|
||||||
|
if (downloader->get_perform_registration_linux())
|
||||||
|
DesktopIntegrationDialog::perform_desktop_integration(true);
|
||||||
|
#endif // __linux__
|
||||||
|
} else {
|
||||||
|
app_config->set("downloader_url_registered", "0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if ENABLE_THUMBNAIL_GENERATOR_DEBUG
|
#if ENABLE_THUMBNAIL_GENERATOR_DEBUG
|
||||||
void GUI_App::gcode_thumbnails_debug()
|
void GUI_App::gcode_thumbnails_debug()
|
||||||
{
|
{
|
||||||
@ -3225,7 +3252,13 @@ bool GUI_App::config_wizard_startup()
|
|||||||
|
|
||||||
run_wizard(ConfigWizard::RR_DATA_LEGACY);
|
run_wizard(ConfigWizard::RR_DATA_LEGACY);
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
#ifndef __APPLE__
|
||||||
|
else if (is_editor() && m_last_app_conf_lower_version && app_config->get("downloader_url_registered") == "1") {
|
||||||
|
show_downloader_registration_dialog();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,6 +122,7 @@ private:
|
|||||||
bool m_initialized { false };
|
bool m_initialized { false };
|
||||||
bool m_post_initialized { false };
|
bool m_post_initialized { false };
|
||||||
bool m_app_conf_exists{ false };
|
bool m_app_conf_exists{ false };
|
||||||
|
bool m_last_app_conf_lower_version{ false };
|
||||||
EAppMode m_app_mode{ EAppMode::Editor };
|
EAppMode m_app_mode{ EAppMode::Editor };
|
||||||
bool m_is_recreating_gui{ false };
|
bool m_is_recreating_gui{ false };
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
@ -343,6 +344,7 @@ public:
|
|||||||
bool may_switch_to_SLA_preset(const wxString& caption);
|
bool may_switch_to_SLA_preset(const wxString& caption);
|
||||||
bool run_wizard(ConfigWizard::RunReason reason, ConfigWizard::StartPage start_page = ConfigWizard::SP_WELCOME);
|
bool run_wizard(ConfigWizard::RunReason reason, ConfigWizard::StartPage start_page = ConfigWizard::SP_WELCOME);
|
||||||
void show_desktop_integration_dialog();
|
void show_desktop_integration_dialog();
|
||||||
|
void show_downloader_registration_dialog();
|
||||||
|
|
||||||
#if ENABLE_THUMBNAIL_GENERATOR_DEBUG
|
#if ENABLE_THUMBNAIL_GENERATOR_DEBUG
|
||||||
// temporary and debug only -> extract thumbnails from selected gcode and save them as png files
|
// temporary and debug only -> extract thumbnails from selected gcode and save them as png files
|
||||||
|
@ -206,7 +206,16 @@ GLGizmoCut3D::GLGizmoCut3D(GLCanvas3D& parent, const std::string& icon_filename,
|
|||||||
};
|
};
|
||||||
|
|
||||||
m_connector_modes = { _u8L("Auto"), _u8L("Manual") };
|
m_connector_modes = { _u8L("Auto"), _u8L("Manual") };
|
||||||
m_connector_types = { _u8L("Plug"), _u8L("Dowel") };
|
|
||||||
|
std::map<const wchar_t, std::string> connetor_types = {
|
||||||
|
{ImGui::PlugMarker , _u8L("Plug") },
|
||||||
|
{ImGui::DowelMarker, _u8L("Dowel") },
|
||||||
|
};
|
||||||
|
for (auto connector : connetor_types) {
|
||||||
|
std::string type_label = " " + connector.second + " ";
|
||||||
|
type_label += connector.first;
|
||||||
|
m_connector_types.push_back(type_label);
|
||||||
|
}
|
||||||
|
|
||||||
m_connector_styles = { _u8L("Prizm"), _u8L("Frustum")
|
m_connector_styles = { _u8L("Prizm"), _u8L("Frustum")
|
||||||
// , _u8L("Claw")
|
// , _u8L("Claw")
|
||||||
@ -506,7 +515,7 @@ bool GLGizmoCut3D::render_slider_double_input(const std::string& label, float& v
|
|||||||
|
|
||||||
const BoundingBoxf3 bbox = bounding_box();
|
const BoundingBoxf3 bbox = bounding_box();
|
||||||
float mean_size = float((bbox.size().x() + bbox.size().y() + bbox.size().z()) / 9.0);
|
float mean_size = float((bbox.size().x() + bbox.size().y() + bbox.size().z()) / 9.0);
|
||||||
float min_size = value_in < 0.f ? UndefMinVal : 2.f;
|
float min_size = value_in < 0.f ? UndefMinVal : 1.f;
|
||||||
if (m_imperial_units) {
|
if (m_imperial_units) {
|
||||||
mean_size *= float(ObjectManipulation::mm_to_in);
|
mean_size *= float(ObjectManipulation::mm_to_in);
|
||||||
min_size *= float(ObjectManipulation::mm_to_in);
|
min_size *= float(ObjectManipulation::mm_to_in);
|
||||||
|
@ -65,6 +65,8 @@ static const std::map<const wchar_t, std::string> font_icons = {
|
|||||||
{ImGui::RevertButton , "undo" },
|
{ImGui::RevertButton , "undo" },
|
||||||
{ImGui::WarningMarkerSmall , "notification_warning" },
|
{ImGui::WarningMarkerSmall , "notification_warning" },
|
||||||
{ImGui::InfoMarkerSmall , "notification_info" },
|
{ImGui::InfoMarkerSmall , "notification_info" },
|
||||||
|
{ImGui::PlugMarker , "plug" },
|
||||||
|
{ImGui::DowelMarker , "dowel" },
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::map<const wchar_t, std::string> font_icons_large = {
|
static const std::map<const wchar_t, std::string> font_icons_large = {
|
||||||
|
@ -943,7 +943,7 @@ bool MainFrame::can_export_supports() const
|
|||||||
const PrintObjects& objects = m_plater->sla_print().objects();
|
const PrintObjects& objects = m_plater->sla_print().objects();
|
||||||
for (const SLAPrintObject* object : objects)
|
for (const SLAPrintObject* object : objects)
|
||||||
{
|
{
|
||||||
if (!object->support_mesh().empty())
|
if (!object->support_mesh().empty() || !object->pad_mesh().empty())
|
||||||
{
|
{
|
||||||
can_export = true;
|
can_export = true;
|
||||||
break;
|
break;
|
||||||
|
@ -315,12 +315,12 @@ void MeshClipper::recalculate_triangles()
|
|||||||
|
|
||||||
// To prevent overflow after scaling, downscale the input if needed:
|
// To prevent overflow after scaling, downscale the input if needed:
|
||||||
double extra_scale = 1.;
|
double extra_scale = 1.;
|
||||||
int32_t limit = int32_t(std::min(std::numeric_limits<coord_t>::max() / (2. * scale_x), std::numeric_limits<coord_t>::max() / (2. * scale_y)));
|
int32_t limit = int32_t(std::min(std::numeric_limits<coord_t>::max() / (2. * std::max(1., scale_x)), std::numeric_limits<coord_t>::max() / (2. * std::max(1., scale_y))));
|
||||||
int32_t max_coord = 0;
|
int32_t max_coord = 0;
|
||||||
for (const Point& pt : exp.contour)
|
for (const Point& pt : exp.contour)
|
||||||
max_coord = std::max(max_coord, std::max(std::abs(pt.x()), std::abs(pt.y())));
|
max_coord = std::max(max_coord, std::max(std::abs(pt.x()), std::abs(pt.y())));
|
||||||
if (max_coord + m_contour_width >= limit)
|
if (max_coord + m_contour_width >= limit)
|
||||||
extra_scale = 0.9 * double(limit) / max_coord;
|
extra_scale = 0.9 * double(limit) / max_coord;
|
||||||
|
|
||||||
ExPolygon exp_copy = exp;
|
ExPolygon exp_copy = exp;
|
||||||
if (extra_scale != 1.)
|
if (extra_scale != 1.)
|
||||||
|
@ -241,9 +241,7 @@ PhysicalPrinterDialog::PhysicalPrinterDialog(wxWindow* parent, wxString printer_
|
|||||||
m_printer_name->SelectAll();
|
m_printer_name->SelectAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxSize& bestsize = this->GetBestSize();
|
this->Fit();
|
||||||
const wxSize& size = wxSize(bestsize.x, 1.1f * bestsize.y);
|
|
||||||
this->SetSize(size);
|
|
||||||
this->Layout();
|
this->Layout();
|
||||||
|
|
||||||
this->CenterOnScreen();
|
this->CenterOnScreen();
|
||||||
@ -532,10 +530,11 @@ void PhysicalPrinterDialog::update(bool printer_change)
|
|||||||
|
|
||||||
update_printhost_buttons();
|
update_printhost_buttons();
|
||||||
|
|
||||||
const wxSize& bestsize= this->GetBestSize();
|
this->Fit();
|
||||||
const wxSize& size = wxSize( bestsize.x, 1.1f * bestsize.y);
|
|
||||||
this->SetSize(size);
|
|
||||||
this->Layout();
|
this->Layout();
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
this->Refresh();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void PhysicalPrinterDialog::update_host_type(bool printer_change)
|
void PhysicalPrinterDialog::update_host_type(bool printer_change)
|
||||||
|
@ -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.6.0-alpha1")
|
set(SLIC3R_VERSION "2.6.0-alpha3")
|
||||||
set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN")
|
set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN")
|
||||||
set(SLIC3R_RC_VERSION "2,6,0,0")
|
set(SLIC3R_RC_VERSION "2,6,0,0")
|
||||||
set(SLIC3R_RC_VERSION_DOTS "2.6.0.0")
|
set(SLIC3R_RC_VERSION_DOTS "2.6.0.0")
|
||||||
|