Skip to content

PrusaSlicer 2.7.0-alpha1

Pre-release
Pre-release
Compare
Choose a tag to compare
@lukasmatena lukasmatena released this 20 Oct 15:52
· 621 commits to master since this release

PrusaSlicer

Summary

This is the first alpha release of PrusaSlicer 2.7.0. This release introduces SVG emboss tool, G2/G3 G-codes, binary G-code output, improved UI, editor for custom G-codes and many more smaller improvements and bugfixes.

To let you enjoy the alpha without worries, the alpha builds save their profiles into PrusaSlicer-alpha directory, so you may use the alpha side by side with the current release without ruining your production configuration.

Important note for Original Prusa MINI, MK4 and XL owners: The new configuration update of our system profiles will enable binary G-code and G2/G3 features. Users using older firmware need to update to 5.1.0-alpha2 or later or manually turn these features off. On older firmware, new binary G-code is not visible or recognized and the G2/G3 G-codes may not work perfectly.

Github clips this text at the release history overview. Please open the 2.7.0-alpha1 release log to see the complete change log.

SVG embossing tool (#6916, #9373)

In addition to the text embossing tool first presented in PrusaSlicer 2.6.0, it is now possible to emboss SVG images onto the models. The feature can be accessed through right button click and it allows similar options for projection and manipulation like the text tool.

ezgif com-video-to-gif

When saving a project file, the user is asked whether they want to save the path to the SVG file, which would allow them to further modify the embossing parameters or reload the SVG from disk later. Otherwise, the SVG part is saved as a model and editing it is no longer possible.

G2 and G3 G-code support #4352

Starting with this release, PrusaSlicer is able to emit G2 and G3 G-codes (arc and circle moves). This results in smaller G-code files when compared to the classic stream of plain G1 commands. The feature can be enabled in Print Settings->Advanced->Slicing->Arc fitting. The G-code size reduction heavily depends on the contents of the G-code, but we are talking tens of percent in general.

Note that emission of G2 and G3 is not compatible with Pressure Equalizer feature and with Spiral Vase mode. When either of the two is active, the G2 and G3 G-codes will not be emitted regardless of how arc_fitting is set.

This feature is based on ArcWelderLib by @FormerLurker, who is also the author of the famous ArcWelder OctoPrint plugin. Big thanks to @FormerLurker for all the effort invested into the project and for making it open-source.

Binary G-code

G-code files are easy to read and interpret, but their downside is that the data is not saved efficiently and the file size is often very large. Compression of the file is problematic because the printers usually run on limited hardware and they may not have enough memory and/or CPU power to decompress it. Several solutions to the problem were proposed by members of the community, such as MeatPack encoding (utilizing the fact that the character set of a typical G-code is very limited) or heatshrink compression algorithm (designed to have very small memory requirements).

We are proposing a new standard for a binary G-code format for encoding and compressing ASCII G-code files (see the specification). The format is flexible and the encoding and compression of individual blocks is variable. We also provide libbgcode library which contains the routines to convert ASCII G-codes to binary and vice versa. The library is written in C++ and the repository includes bindings for Python.

Regarding comparison of ASCII vs binary G-code sizes, the result depends on the contents of the G-code. Our testing shows that using binary G-code reduces the size by about 70 % on average. Using arc fitting (described above) at the same time can reduce the size even further. Following chart shows the comparison for 10 randomly selected 3MF projects:
image

The support for the new .bgcode file format was implemented in PrusaSlicer, including its export, loading configs, previewing G-code or file associations. Exporting binary G-code can be enabled in Print Settings->Output options->Export as binary G-code. An option to convert ASCII G-code to binary (or the opposite) has been added into File menu.

To print a binary G-code, it has to be supported by firmware of the printer. For Original Prusa MINI, MK4 and XL printers, this is supported since version 5.1.0-alpha2. It is necessary to update printer firmware before using the binary G-code format.

We would like to thank Scott Vokes (@atomicobject) for his work on heatshrink and
Scott Mudge (@scottmudge) for developing and maintaining MeatPack.

Improved user interface

The visual looks of user interface controls has been improved. They are now more pleasant to look at in both light and dark mode and various UI quirks have been resolved (e.g. #8877, #6399).

image

It is also now possible to change font size in the UI (Configuration->Preferences->Other). #6317, #8278, #7159

Custom G-code editor

One of the features of PrusaSlicer is a powerful macro language that can be used in various custom G-codes. In this release we added a dedicated dialog for editing these G-codes. The dialog contains list of all available placeholders for the given G-code and there is also a short description of each of the placeholders. Double-clicking a placeholder (or clicking the "plus" button) copies it into the G-code.

We believe that this will make editing custom G-codes more user-friendly and better documented at the same time.

image

Cancel object (Marlin, RRF and Klipper)

For a long time, PrusaSlicer can emit object annotations for OctoPrint CancelObject plugin, which allows to cancel an individual object while printing. Starting with this release, we support these annotations also for Marlin, RepRapFirmware and Klipper firmware, so the cancel object feature can be used without relying on OctoPrint.

The feature can be configured in Print Settings->Output options->Label objects. The option used to be a checkbox, it was now turned into a dropdown with Disabled, OctoPrint comments and Firmware-specific options. When set to Firmware-specific, the style of the annotations is chosen based on currently selected firmware flavor in Printer Settings (Marlin/RRF: M486, Klipper: EXCLUDE_OBJECT). When a different firmware flavor is selected, the annotations are not generated.

List of all objects is emitted at the very beginning of the print, so the printer knows about all the objects from the start.

For Klipper which supports graphical selection of the object to cancel, outline polygons are also provided for each object. Thanks to @jschuh for providing the implementation for Klipper (#10618).

The support for Marlin-style cancel object feature is implemented in Original Prusa MINI, MK4 and XL printer firmware since version 5.1.0-alpha2.

Other improvements with respect to 2.6.1

  • It is newly possible to emit several different thumbnail types (e.g. PNG and QOI) into the G-code. The old configuration options thumbnails and thumbnails_format were merged into one option called thumbnails and it accepts a string describing the required thumbnails. For example, 440x240/QOI, 640x480/PNG, etc.
    Opening an old configuration in new PrusaSlicer will automatically convert the old configuration options into the new one. Opening the new configuration in older PrusaSlicer will also work, but only the extension of the first thumbnail in the list will be used.
  • PrusaSlicer can generate an INI file containing Wi-Fi SSID and password for easier configuration of Original Prusa XL, MK4 and MINI printers. The option is available in Configuration->Wi-Fi Configuration File. You can select one of currently available networks and type in the password (PrusaSlicer will try to retrieve the password from the system and will auto-fill it when successful). Then you can save the configuration file on the USB drive of your choice. The INI file contains the Wi-Fi password in plaintext, make sure it is deleted after use. Note that loading the Wi-Fi info can fail in some cases. You can always enter the SSID and password as a text yourself.
  • Connectors in the Cut tool can be rotated using a new slider in the Cut tool panel (#10284).
  • macOS specific: The "About" menu item was moved from the Help section to the application menu (#10591, thanks to @iammattcoleman).
  • When using Variable Layer Height tool, the value in the tooltip is truncated to 3 digits (#10298, thanks to @vovodroid)
  • When importing a project containing multiple objects, there is a dialog asking whether they should be imported as parts of a single object. This is annoying in cases when one imports multiple projects at once. An extra "Apply to all" option was added into the dialog.
  • Opening of Configuration Wizard is now faster.
  • PrusaConnect print host is now available for Original Prusa MINI printer.
  • It is now possible to use dark mode in the standalone G-code Viewer application.
  • When loading a project/config containing post-processing scripts, the user is now notified and the post-processing script is shown to avoid unexpected behavior (thanks to Kamil Breński for the suggestion).
  • When the Configuration Update contains new printer models, the user is notified.

Bug fixes with respect to 2.6.1

  • Fixed ooze prevention when 'other layers' temp is set to zero (#11194)
  • Hyperlinks from parameter pages to Prusa Help did not work when using PrusaSlicer translated into a language that the help is not translated to (#11254).
  • Fixed a crash during infill generation occurring with specific geometries (#11267, #11287).
  • Some support extrusions were incorrectly considered as support interfaces even when support interfaces were disabled. This triggered an unwanted toolchanges when support interfaces were set to specific extruder (#11281).
  • Fixed incorrect setting of near z plane in Preview, resulting in part of the Preview not being rendered.
  • The placeholder input_filename was removed from PrusaSlicer macro language. The placeholder is not really useful and it was not generated correctly since PrusaSlicer 2.0.0.
  • Fixed mangled preset name in Substitutions dialog when it contained non-ASCII characters.
  • Fixed flickering of controls in parameter pages when a configuration option was being edited.
  • Fixed incorrect color of modifiers when the object is below the bed.
  • It was not possible to use all documented placeholders in Filament End G-code (#11329).
  • Modifiers were incorrectly shown after using Undo in supports/seam painting tool.
  • Fixed a crash in Configuration Wizard when installing a filament not compatible with currently selected printer (#11390).
  • Menu items referring to NetFabb mesh-fixing service were changed to 'Windows repair algorithm', which is what is currently used (mentioned in #11199).
  • Fixed a crash in the Cut tool in specific cases when cutting with dowels (mentioned in #11415).
  • Fixed a rare crash when manipulating profiles with aliases.
  • It was not possible to manipulate with mirrored object when it contained parts. This is now fixed.
  • Fixed a problem with unresponsive controls in the scene when controls from Object Manipulation panel were used in between.
  • Arrange did not account for extruder clearance when sequential printing was active, unless the Arrange settings dialog was opened first (#11258).
  • macOS specific: Fixed rare issues with loading OBJ files on macOS Sonoma.
  • Fixed visualization of toolpaths in the first layer and tool position when using z offset (#11337).
  • Travel moves above the top layer were not shown in preview.
  • Travel moves on the first layer were incorrectly shown even when first layer was not visible.
  • Fixed a rare crash during G-code conflict checking.

Architecture, infrastructure

  • More unit tests were rewritten from Perl to C++.
  • Fixed several asserts triggered by wxWidgets (#10811, thanks to @pmjdebruijn).

Translations

  • Updated dictionaries (CS, DE, ES, FR, IT, PL)