Avoid collisions with previous extrusions in the same layer when moving Z down in an XYZ move.
This happens for example when starting a scarf joint after another perimeter was already printed.
Fixes SoftFever#7191
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add BLOCKS RD50, ProS100 and RF50 printers
Add printer configurations and profiles for Blockstech printers to OrcaSlicer
* Update RF50 thumbnail
Added the definative thumbnail for the RF50 printer model.
* pa calib: print flow value and acceleration
Print flow value and acceleration for PA pattern calibration.
This should help keep track during adaptive PA calibration.
* pa pattern: fix legent section too wide in some cases
Rework pa pattern legent generation to correctly estimate
width of the legend section.
Current flow value now has variable length which is a longest of
PA value and the acceleration for a given test.
Few examples:
1. PA value are 4 characters: 0.04
Acceleratioion 3 chars: 400
Flow value will be 4 chars long: 7.98, or 11.3
2. PA: 0.018
Accel: 1000
Flow: 12.35, or 6.345
3. PA: 0.04
Accel: 15000
Flow: 34.34, or 4.567
Rework number-to-string conversion flow to correctly round values at
given precision.
Fixed Clipper library (our own fork of it) when working with Z coordinate:
The Eigen vector type compares all components, while the ClipperLib
own IntPoint type compared x and y only.
Fixed by overriding the ==/!= operators to compare just x and y components
for Eigen types.
Cherry-picked from prusa3d/PrusaSlicer@0202eec4b7
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
If layer starts with a color change, the full layer time will be much longer, which will trick the slicer to think this layer has enough cooling time.
However the actual filament extrusion time (the real "printing" part) won't necessarily have enough time to cool down, so if we don't do extra slowing down
before starting next layer, the filament could still be soft and lead to worse surface quality.
# Description
Re-Creation of Pull Request #6964 with X1E changes pulled.
OrcaSlicer includes exhaust fan settings for each filaments, however
these settings do not take effect on Bambu Labs machines that include
chamber temperature regulation fans.

Further investigation into the g-code files produced reveals that the
filament start g-code is responsible for using the air filtration
setting and sending the appropriate `M106 P3
S{during_print_exhaust_fan_speed_num[current_extruder]}` command to the
printer. However, this command, even with the setting enabled, is never
written to the final g-code file.
By default, Bambu Lab's filament profiles wrap this command up in` {if
activate_air_filtration[current_extruder] && support_air_filtration}`
clause, which always evaluates to false. As it turns out, the printer's
have the `support_air_filtration` flag set to `0` in the
`fdm_machine_common.json` file.
This change updates that value to `1` in the .json files for the X1,
X1C, X1E, and P1S 0.4mm nozzles. This is then inherited to other nozzle
sizes and user generated profiles. This is done by simply adding a line
` "support_air_filtration": "1",` to the .json to override the inherited
setting.
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
Fixes#6066
# Screenshots/Recordings/Graphs
N/A
## Tests
Updated this flag in a custom user config for the printer than tried
generating the code file with Air Filtration enabled and set to 70%
The appropriate `M106 P3 S178 ` appears in the filament start gcode
section of the file.
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
Updated this flag in a custom user config for the printer than tried
generating the code file with Air Filtration enabled and set to 70%
The appropriate `M106 P3 S178 ` appears in the filament start gcode
section of the file.
# Description
Added support for Creality Print (E.g. Orca can upload and print
directly to Ender 3 V3 KE)
# Screenshots/Recordings/Graphs
Video: https://www.youtube.com/watch?v=ONzaMJhj_Hk
## Tests
Tested in the video above on a Macbook Pro, Ender 3 V3 KE.
It should also be tested on Windows but I don't have a windows computer.
# Description
fixed#6987
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
The idea behind this PR is to make it easier for the users to tweak
filament setting overrides i.e. reduce number of times users have to
switch between the printer and filament settings to compare the values.
# Screenshots/Recordings/Graphs




## Tests
I've done some manual testing to confirm:
* Override setting with the same value as extruder is still shown as a
change.
* Resetting unsaved override setting back to original value still works
as expected.
* Override settings are shown correctly on the next load after a save.
* Extruder settings changes are reflected on Settings Overrides page.
## Other
I have discovered a strange behaviour between `Filament Settings` and
`Printer Settings` windows. On a fresh load of application opening
`Filament Settings` window, navigating to `Settings Overrides` tab and
then closing the window results in `Filament` tab being opened the next
time `Filament Settings` window is opened. But if you open `Printer
settings` window, navigate to `Extruder` or `Motion ability` tabs then
the application changes the behaviour to open the last visited tab by
the user for both of the windows. I'm mentioning this because when this
happens the flow of events in the application changes and causes my
change to break until the user changes a tab. As far as I can tell for
some reason ConfigOptionsGroup's `reload_config` method is starting to
get called (second time?) after TabFilament's
`update_filament_overrides_page` method which wipes out the values set
by me. I'm not sure which is the correct behaviour, so I left that for a
discussion here. If last visited tab is the correct behaviour, then I
would need help to figure out how to fix this problem.