Klipper3d / klipper

Klipper is a 3d-printer firmware
GNU General Public License v3.0
9.33k stars 5.28k forks source link

bed_mesh: Implement adaptive bed mesh #6461

Closed voidtrance closed 8 months ago

voidtrance commented 8 months ago

This PR is for an implementation of adaptive bed meshes. Adaptive bed meshes use the exclude objects data to determine the area of the print bed being used and only create a mesh for that bed area. This has the benefit of greatly decreasing the amount of time needed to start a print without compromising print quality.

These changes have been tested on both Cartesian and Delta printers through the use of SimulAVR (with some custom Klipper modifications to enable it to report probe point z offset through Moonraker) and by many actual users in the Voron Discord.

Below is a ZIP archive containing two HTML files that show the behavior of the adaptive mesh. Plots where generated using test data from the SimulAVR simulation.

adaptive-mesh-plots.zip

The commands issues to define the print objects that produce these plots are below:

commands-cartesian.txt commands-delta.txt

Arksine commented 8 months ago

Moonraker's dependency on preprocess-cancellation has been updated. The next time a user updates Moonraker it should be installed.

voidtrance commented 8 months ago

Moonraker's dependency on preprocess-cancellation has been updated. The next time a user updates Moonraker it should be installed.

Do moonraker updates through the update manager also update the virtual environment? The script is installed in there, if I am not mistaken.

Arksine commented 8 months ago

Do moonraker updates through the update manager also update the virtual environment? The script is installed in there, if I am not mistaken.

Yes, it will update Moonraker's virtualenv.