PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)

AGPL-3.0 License

Stars
7.7K
Committers
215

Bot releases are hidden (Show)

PrusaSlicer - PrusaSlicer 2.7.0-rc1

Published by lukasmatena 11 months ago

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.7.0. It mostly fixes bugs found in the 2.7.0-beta1. Read the change log of 2.7.0-alpha1 and 2.7.0-beta1 for complete list of changes with respect to 2.6.1.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Improvements with respect to 2.7.0-beta1

  • PrusaSlicer 2.7.0-alpha1 introduced the binary G-code format. The new format is enabled in our system profiles for Original Prusa MINI, XL and MK4 printers, but it requires that the printer firmware is updated. Old firmware would not show the binary G-code files at all. Based on the feedback that we collected, this was a frequent problem and a source of confusion. Therefore, we decided to add an extra dialog informing the user about the need to update firmware. The dialog is shown when exporting binary G-code for the printer models mentioned above, and it contains a "Don't show again" checkbox, which dismisses the dialog for good.

Bug fixes with respect to 2.7.0-beta1

  • macOS specific: Fixed a crash when modifying purging volumes (#11627).
  • It was not possible to change selection in a focused combo boxes using the mouse wheel (#11640).
  • Fixed a crash when opening the Shape Gallery (#11681).
  • macOS specific: Fixed occasional failures to upload G-code to PrusaConnect. The problem was possibly caused by a bug in libCURL library shipped with the affected macOS versions (possibly https://github.com/curl/curl/issues/11353). We worked around the problem by using HTTP/1.1 for libCURL requests (#11076, #11355, #11399).
  • The helper arrows in the scene indicating direction when a value in Object Manipulation is being edited were not shown by mistake (#11636).
  • Overhang fan speed was not reset before printing infill, which is now fixed. Thanks to @jschuh for debugging the issue and providing a fix (PR #11650, #11648).
  • Fixed a possible crash when deleting the last object with auto-center enabled (#11186).
  • Fixed incorrect placement of checkboxes in some of the dialogs.
  • Linux specific: Fixed appearance of checkboxes in GTK2 version (#11664).
  • Fixed updates of some Preferences options, e.g. when it changed as a result of "Remember my choice" checkbox in some dialog.
  • Focus of spin controls did not work correctly in Config Wizard and Ramming dialog.
  • Linux and macOS specific: Colors in the combo boxes did not change when system settings were changed (#11556).
  • File names in the Shape Gallery were cut short (#11642).
  • Fixed a hang occasionally happening during Arrange (#11392).
  • When loading a 3MF containing a profile based on a system profile which is currently not installed, an incorrect preset was sometimes chosen instead of the temporary installed preset. Also, a notification is now shown when the temporary preset is installed (it was inadvertently removed in 2.7.0-alpha1).
  • In certain cases, materials and filaments in Configuration Wizard were incorrectly marked as not compatible with the printer.
  • When loading a 3MF with multiple filament profiles, some of the profiles were incorrectly marked as modified, even though they were not.

Infrastructure

  • Update build_win.bat max version to Visual Studio 2022 (PR #11646, thanks to @jschuh, related to #11635).
  • Updated build instructions for Windows, added deps/README.md containing details about building dependencies.

Translations

  • Updated CS, DE, ES, FR, IT, JA, PL dictionaries
  • Catalan dictionary updated (#11641, thanks to @davidjuanesb).
  • Russian dictionary updated (#11559, thanks to @AndylgTom).
  • Updated POT file for community translators.
PrusaSlicer - PrusaSlicer 2.7.0-beta1

Published by lukasmatena 11 months ago

PrusaSlicer

Summary

This is the first beta release of PrusaSlicer 2.7.0. It brings small improvements and fixes several bugs found in the first alpha. Read the change log of 2.7.0-alpha1 for complete list of changes with respect to 2.6.1.

To let you enjoy the beta without worries, the beta builds save their profiles into PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration. The beta will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

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.

Travel moves improvements

To help fight stringing and oozing deposition, PrusaSlicer now implements ramping travel moves. Previously you could set just the Lift height (Printer Settings->Extruder) which resulted in the print head lifting up before each travel move and then returning back down after the travel move. Such lift could result in undesirable stringing, especially while using wider nozzles. Now you can use the new ramping lift which ensures that the print head lifts up gradually during the travel.

The feature can be turned on in Printer Settings->Extruder for each extruder you are using in the new Travel lift section. You can override the setting for each filament in the Filament overrides section. The ramping travel is parametrized by an angle and a maximal ramping lift:
image.

The ramping travel moves are now enabled in our system profiles for Original Prusa XL.

To fully harness the stringing reduction potential of the ramping travels moves a new layer change strategy is implemented while the ramping travel moves are active. Instead of going straight up to the next layer the printer head follows a helical ("screw thread") trajectory while changing layers. This feature is on by default once the ramping travel move is used.
image
The helical travel move was inspired by the same feature in BambuStudio. Thanks to bambulab for the idea.

Other improvements with respect to 2.7.0-alpha1

  • After we collected feedback to the UI improvements presented in the previous alpha, we did several tweaks to the combo boxes. They react better to keyboard input, the spacing of the items is smaller, the scrollbar has been made wider and it allows dragging by mouse (#11499, #11505).
    image
  • Arrange is now faster in processing more complex scenarios (#11360).
  • The thumbnails in the G-code are now colored correctly even when using the painting tool.
  • A notification suggesting to upload Wi-Fi configuration data is opened when USB flash drive containing the configuration file is inserted. PrusaSlicer is then able to append the Wi-Fi data into the file.
  • When PrusaConnect print host is selected in the Physical Printer dialog, the Browse button is now hidden as it would make little sense. When confirming the dialog, the URL field is checked and if it contains anything different from https://connect.prusa3d.com, the user is asked to confirm that it is intentional.
  • A notification suggesting to upload Wi-Fi configuration data is opened when USB flash drive containing the configuration file is inserted. PrusaSlicer is then able to append the Wi-Fi data into the file.
  • The SVG dialog contains an extra button "Face the camera", which rotates the SVG so it is perpendicular to current view direction.
  • Trying to exporting ASCII G-code with binary G-code extension or vice versa is now reported as an error (#11498).
  • Colors of selected volumes in the scene were slightly changed so the negative volumes are visible even when selected (#11496).

Bug fixes with respect to 2.7.0-alpha1

  • The new "Wi-Fi Configuration File" dialog did not show correctly in dark mode and it did not use the new UI controls.
  • Cancel object G-codes were not correctly emitted for RepRapFirmware and the objects were not labeled as a result (#11492).
  • In some scenarios, an item in a combo box was duplicated.
  • When using the cut tool and assigning a part of the model to the other side, connectors were missing after slicing (#11415, #11487).
  • Fixed a rare crash when using 'Split to Objects' (#11484).
  • Password authentication did not work correctly when sending G-code to Duet SBC (#10061).
  • Perimeters were not generated when using Arachne perimeter generator with specific configuration (#11082, #11510).
  • The wipe tower was not generated correctly when non-zero extruder offset was used.
  • Number of tool changes in the statistics only showed when the wipe tower was enabled (#6832).
  • When slicing with the wipe tower enabled and then disabling it, PrusaSlicer sometimes ended up in an infinite loop.
  • Fixed incorrect label object markers at the start of the G-code when it was set to "OctoPrint comments" and the firmware flavor was Klipper (#11569).
  • Fixed a UI glitch related to the scrollbar in Preferences dialog (#11566).
  • Fixed invalid link to Organic Supports documentation (#11555).
  • When using the experimental option "Wipe tower with no sparse layers", a travel move to the wipe tower was sometimes missing, which resulted in the print head digging into the last printed object (#11089).
  • Spin controls which allow setting the value negative now accept minus sign input from the keyboard (#11574).
  • When configuring a physical printer, the IP address was not always correctly read from the text field, resulting in failed uploads later on.
  • Fixed a crash when slicing a sinking object with multiple instances (#11562).
  • Fixed synchronization of instances when rotating an instance in Object Coordinates.
  • Fixed a bug resulting in monotonic infill was not being monotonic (#11565).
  • Fixed crash in multi-material painting gizmo and during generating multicolor thumbnails when number of extruders was changed.

Other

  • 3DBenchy model and template models for signs were added to Shape Gallery.

Translations

  • Updated POT file for community translators.
PrusaSlicer - PrusaSlicer 2.7.0-alpha1

Published by lukasmatena 12 months ago

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

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)
PrusaSlicer - PrusaSlicer 2.6.1

Published by lukasmatena about 1 year ago

PrusaSlicer

Summary

​This is the stable release of PrusaSlicer 2.6.1. This release fixes bugs found in previous release candidates. See the change logs of 2.6.1-rc1 and 2.6.1-rc2 for the complete list of improvements with respect to 2.6.0.

Improvements with respect to 2.6.1-rc2

  • The Help menu in PrusaSlicer was extended with "Sample G-codes and Models" item, which navigates the user to the respective page on our website where these assets can be downloaded.
  • The Help menu was extended with "Quick Start" item, which navigates the user to the beginner's guide on our website.

Bugs fixed with respect to 2.6.1-rc2

  • Two tooltips in the Cut tool dialog were shown with mangled encoding in some languages (#11236).

Bugs fixed with respect to 2.6.0

  • When renaming a preset to a name containing non-ASCII characters, the encoding was mangled. This is now fixed (#11232).
  • Supports are no longer shown when using the clipping plane in SLA supports tool.
  • Fixed a crash when displaying command line help (#11060).

Translations

  • Updated CS, DE, ES, FR, IT, JA, PL dictionaries.
PrusaSlicer - PrusaSlicer 2.6.1-rc2

Published by lukasmatena about 1 year ago

PrusaSlicer

Summary

​This is a second release candidate of PrusaSlicer 2.6.1. This release fixes bugs found in previous release candidate. See the change log of 2.6.1-rc1 for the complete list of improvements with respect to 2.6.0.

Improvements with respect to 2.6.1-rc1

  • The new Snap connectors in the Cut tool can now be reset to default settings by a dedicated Reset button (#11159).

Bugs fixed with respect to 2.6.1-rc1

  • Shells in preview incorrectly showed when switching to the 3D scene and back to Preview (#11191).
  • Fixed access violation when using multi-material priming with multi-extruder printer (#11174, #11197).

Bugs fixed with respect to 2.6.0

  • Fixed a crash when replacing painted object with lower-polygon model (#11188).
  • Fixed occasional application freezes during slicing with tree supports and raft (#10762, #10858, #10891).
  • Objects larger than the print bed are not scaled down after cut operation when connectors are used.
  • Fixed a rare bug resulting in incorrectly loaded profiles from INI or 3MF files.
  • Fixed an occasional crash when switching between single-extruder and multi-extruder printer profiles.
  • Fixed crashes during hollowing in SLA mode (#10887).
  • Fixed a bug when exporting G-code: When output_filename_format contained a custom file extension, the "Save as" dialog would incorrectly force the extension to be .gcode. This is a regression which was reintroduced in 2.6.0 (#1221).
  • Organic support generation was occasionally crashing when using specific combinations of parameters. Additional validation checks were added to prevent the crashes. #9555

Translations

  • Updated CS, DE, ES, FR, IT, JA, PL dictionaries
  • Updated Catalan dictionary (#11175, thanks to @davidjuanesb)
  • Updated Russian dictionary (#11135, thanks to @AndylgTom)

Infrastructure

PrusaSlicer is an open-source project with a long history. The first commit by @alranel was commited 12 years ago (to the day), and during all that time, many people have contributed many improvements and bugfixes, both big and small. All these people have played their part in getting Slic3r and later PrusaSlicer to where it is now.

Open-source licenses such as AGPL3 are somewhat ambiguous about how the contributors should be attributed. Regarding PrusaSlicer, the data are effectively kept only in the form of version control histories, and those don't transfer reliably when the project is forked/rebased/altered etc. To avoid losing the information about the original authors, we have added a short header to each of the source files, where all the contributors are listed. We believe that it is the correct way of claiming who's shoulders we are standing on.

Please note that although we have invested quite a lot of time to provide complete information about the authorship of each file (using both automated scripts and extensive manual lookup and investigation), it is still possible that we might have missed someone. For example because a part of the code was moved around the codebase and passed undetected by our scripts. If you feel that an attribution is missing, let us know and we will fix it. Unfortunately, it is not possible to reliably reconstruct the history of such a big project easily.

PrusaSlicer - PrusaSlicer 2.6.1-rc1

Published by lukasmatena about 1 year ago

PrusaSlicer

Summary

​This is a first release candidate of PrusaSlicer 2.6.1. This release brings significantly improved Arrange function, new features in the Cut tool, improved embossing on curved surfaces and various smaller improvements and bugfixes with respect to 2.6.0.

Arrange improvements

The Arrange feature has been significantly improved and it is now able to place objects inside concave areas formed by other objects #8225:
image

Currently there are three distinct levels of geometry handling, which can be selected using a drop-down in the Arrange dialog:

  • Fast - essentially the old behavior considering only the convex hulls of each object
  • Balanced – still reasonably fast profile considering the full shape complexity of objects which are not being arranged and the convex hull of the currently arranged object.
  • Accurate – considers the full shape complexity of each object at all circumstances

"Balanced" profile produces very similar results to "Accurate" in most cases but it is typically faster by multiple orders of magnitude.

As another improvement, arbitrary bed shapes are now supported:
ezgif com-crop (1)

Also, several bugs were fixed along the way:

  • Fixed crashes when arranging objects very far from the physical bed
  • Improved handling of hidden/disabled objects
  • Fixed issue with missing items after "Fill bed with instances"
  • Improved cancellation response, the application no longer freezes when Arrange is cancelled

Cut tool improvements

New cutting mode is now available in the Cut tool. Dovetail mode automatically creates a tongue-and-groove connection that allows sliding one part into the other. #9382 The geometry of the connection is adjustable in the Cut tool dialog. Also, a new connector type was added (Snap).

image

Emboss improvements

The Emboss tool introduced in 2.6.0 now allows much better projection on curved surfaces. The feature is accessible through a Per glyph orientation checkbox in the the Emboss dialog. When checked, the individual glyphs are (perpendicularly) projected along a curved line on the surface. The idea was inspired by the implementation in BambuStudio.

image

Other improvements with respect to 2.6.0

  • When using multi-material painting tool, there is now an option to enable interlocking of the painted patches with the neighboring segments. This improves connection of the patches. The setting is available in Print Settings->Advanced->Interlocking depth of a segmented region and it must be smaller than Maximum width of a segmented region , otherwise the setting is ignored.
  • Support spot generation performance was improved, previously it ran very slow in specific cases. #10940
  • Wipe tower printing speed is no longer hardcoded. Instead, Perimeter speed is used for the perimeter of the wipe tower and Infill speed is used for the purging area (in the latter case, the speed is gradually increasing to that value). On the first layer, First layer speed is used in both cases. #2058 #4590 #8399 #10854
  • The two Printer Settings parameters from Retraction when tool is disabled group (retraction length and extra length on restart) can now be overridden in Filament Settings.
  • "Ramming" the filament on the wipe tower just before the toolchange is now allowed for multi-extruder printers (until now, only single extruder printers equipped with a filament changing device such as Prusa MMU supported this). The volume and flow for the multi-extruder ramming can be set in Filament Settings->Advanced->Toolchange parameters with multi extruder MM printers and it is independent on the settings for the single-extruder ramming.
  • Object shells are now shown in G-code Preview before the toolpaths are calculated.
  • Opening the Measuring tool is now significantly faster when compared to 2.6.0.
  • Improved performance when slicing multiple objects.

Bugs fixed with respect to 2.6.0

  • When specific wipe tower extruder is set, the extruder indices for the placeholder parser were sometimes shifted. Custom G-Codes then got incorrect information about whether a given extruder is used. #11039
  • Fixed a rare crash when when Height Range Modifier was active. #10890
  • Fixed a bug in cooling buffer resulting in G-codes setting fan to more than 100 %.
  • Mirroring was incorrectly reverted when an object was cut. #11001
  • Fixed occasional crashes during "Export to STL". #10923
  • Suppressing template filament profiles when one was selected sometimes led to selection of a filament profile incompatible with the current printer. This is now fixed.
  • The new "Ensure vertical wall thickness" algorithm introduced in 2.6.0 sometimes caused missing solid infill in small areas. This is now fixed. #10607
  • Wipe tower: the new option introduced in 2.6.0 to increase the spacing of the purging lines is newly disregarded on the first layer. The extra spacing sometimes caused inadequate adhesion to the bed.
  • Fixed occasional crash during cut. #11070
  • Fixed a crash after a specific manipulation with the vertical slider in Preview. #10941
  • It was possible to scale an object after cut when the scaling tool was opened by a keyboard shortcut, even though such action should scale all parts that resulted from the cut. This is now fixed.
  • Fixed a missing update of the cut tool after undo.
  • Cancelling Unsaved Changes Dialog when there were unsaved changes in the old profile did not correctly revert the values.
  • Fixed translation of volumes in Object Coordinates. #10839
  • Fixed 'drop to bed' command for volumes in Part Coordinates.

Translations

  • Updated POT

Profiles

Infrastructure

  • We no longer support building PrusaSlicer against wxWidgets 3.0 or 3.1. The CMake option SLIC3R_WX_STABLE has been removed and our CMake script looks strictly for wxWidgets>=3.2 (#11027, thanks to @bnavigator).
PrusaSlicer - PrusaSlicer 2.6.0

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

​This is the final release of PrusaSlicer 2.6.0. This release is functionally equivalent to 2.6.0-rc2.

See the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4, 2.6.0-alpha5, 2.6.0-alpha6, 2.6.0-beta1, 2.6.0-beta2, 2.6.0-beta3, 2.6.0-beta4, 2.6.0-rc1 and 2.6.0-rc2 for the complete list of changes with respect to 2.5.2.

If any of the PrusaSlicer 2.6.0 alphas or betas was used before on the same machine, PrusaSlicer 2.6.0 will offer to import such alpha or beta configuration when it is first executed. In such case, the current release configuration will be archived first before importing the alpha or beta configuration.

Translations

  • Updated CS, DE, ES, FR, IT, JA, PL dictionaries.
  • Updated Catalan dictionary, thanks to @davidjuanesb. #10824
PrusaSlicer - PrusaSlicer 2.6.0-rc2

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

This is the second release candidate of PrusaSlicer 2.6.0, mostly fixing bugs found in 2.6.0-rc1. See the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4, 2.6.0-alpha5, 2.6.0-alpha6, 2.6.0-beta1, 2.6.0-beta2, 2.6.0-beta3, 2.6.0-beta4 and 2.6.0-rc1 for the complete list of changes with respect to 2.5.2.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. If any of the PrusaSlicer 2.6.0 alphas or betas was used before on the same machine, PrusaSlicer 2.6.0-rc2 will offer to import such alpha or beta configuration when it is first executed. In such case, the current release configuration will be archived first before importing the alpha or beta configuration.

Template filaments safeguard

We have introduced 'Template' filament profiles 2.6.0-alpha2 to provide the users a convenient starting point for their own profiles without having to inherit from a system profile and then detaching from it. This created a possibility of using the unaltered template profile for actual slicing by mistake, which often leads to horrible prints or downright print failures (because the template profiles are not tuned for any particular setup). The feedback that we collected from our users shows that this scenario happens quite often.

To prevent this from happening, we now show a warning notification immediately after slicing when a template filament profile is used. When exporting the G-code, there is one more warning dialog that the user has to confirm. We also extended the "cog" menu next to the Filament dropdown in the right panel and added an item 'Show/Hide template filament presets'. Clicking the item navigates to Preferences where this option is.

Other improvements with respect to 2.6.0-rc1

  • Custom G-codes now support a new variable num_extruders. It expands to the number of extruders the printer has, regardless of whether they are used in the print or not.

Bugs fixed with respect to 2.6.0-rc1

  • 'Dynamic overhang speed' setting was not taken into account when configured using modifier volumes. This is now partially fixed (only for overhang perimeters). #10786
  • Custom G-code vector variable is_extruder_used did not always expand to the correct value when asked about an extruder that the printer does not have.
  • The extruder dropdown shown at the top of the Filament configuration page did not correctly update when switching from light mode to dark or vice versa.
  • macOS specific: Fixed an incorrect visualization of fan speed (and possibly other quantities too) in the G-code preview. The issue seems to have been specific to macOS 13.3.1. #10380 #10331 #10542
  • Fixed a crash when hitting 'Jump to' in the toolpaths conflict notification while some tool from the left panel was open.
  • Fixed a crash on "Select All" action while some tool from the left panel was open. #10797
  • Fixed incorrect behavior of Arrange in SLA mode after slicing (objects were placed out of bed).
  • Fixed a crash when trying to rename a system filament preset (the option was inadvertently allowed in 2.6.0-rc1). #10800
PrusaSlicer - PrusaSlicer 2.6.0-rc1

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.6.0, fixing bugs found in beta4. See the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4, 2.6.0-alpha5, 2.6.0-alpha6, 2.6.0-beta1, 2.6.0-beta2, 2.6.0-beta3 and 2.6.0-beta4 for the complete list of changes with respect to 2.5.2.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. If any of the PrusaSlicer 2.6.0 alphas or betas was used before on the same machine, PrusaSlicer 2.6.0-rc1 will offer to import such alpha or beta configuration when it is first executed. In such case, the current release configuration will be archived first before importing the alpha or beta configuration.

Improvements with respect to 2.6.0-beta4

  • The 'Mainsail/Fluidd' print host has been renamed to 'Klipper (via Moonraker)' which is technically more correct. #10255, thanks to @pedrolamas.

Bugs fixed with respect to 2.6.0-beta4

  • Cyrillic characters in some of the dialogs did not show correctly in BE translation (added in 2.6.0-beta4).
  • Fixed positioning of sequentially loaded parts. #10662
  • Automatic orientation of bridging infill was incorrect in specific cases. #10736
  • Using asterisk in the name of a preset is no longer allowed, because it has a special meaning. #10745
  • When configured to show settings tabs as menu items, the combo-box for selecting currently edited profile was shown too narrow. #10746
  • Fixed a crash during Export to STL when the object does not fit the bed.
  • Fixed a crash in GCcodeViewer when loading gcode files generated by Cura.
  • macOS specific: When running in Chinese language, locales were not selected correctly during startup in some cases. #9779
  • Fixed visualization of SLA holes in 3D scene.
  • Fixed a crash when using Lighting infill and raft together. #9399
  • Fixed incorrect behavior (crash on Linux, addition of erroneous lines into Object List on Win and macOS) when moving objects when Variable Layer Height toolbar was active.

Translations

  • Updated CS dictionary.
  • Fixed typo in DE translation. #10728

Profiles

  • Added Trimaker bundle. #10582, thanks to @MatiGabaglio16.
PrusaSlicer - PrusaSlicer 2.6.0-beta4

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

This is the next beta release of PrusaSlicer 2.6.0, introducing G-code collision detection and fixing bugs found in beta3. See the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4, 2.6.0-alpha5, 2.6.0-alpha6, 2.6.0-beta1, 2.6.0-beta2 and 2.6.0-beta3 for the complete list of changes with respect to 2.5.2.

To let you enjoy the beta without worries, the beta builds save their profiles into the PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration. When you first run the beta, it will search for all configurations produced by alpha or final versions and offer to create a copy of the latest one.

Conflict detection for toolpaths

PrusaSlicer now performs a check for colliding toolpaths after slicing. This prevents print failures when multiple objects (or their supports) intersect and would be printed one over the other (e.g. #316, #10148 and many others). The feature works for all instances of all objects, their supports and the wipe tower. A notification is shown in case an intersection is detected, but it is still possible to export the G-code (the user may decide that it is insignificant, or even intentional). The feature was ported from BambuStudio, thanks to @bambulab for the initial implementation.
image

Other improvements with respect to 2.6.0-beta3

  • An error dialog was added when saving of a project file fails. #10688
  • When using the "Import ZIP file" and selecting a 3MF project, the project is opened. Previous versions would offer to import the individual files instead, which makes little sense in case of a 3MF project.
  • Sorting profile names in Configuration wizard and in combo boxes has been changed to case insensitive sorting.
  • After using Cut tool, only the cut object parts are rearranged (previous versions rearranged all objects) #10620

Bugs fixed with respect to 2.6.0-beta3

  • When using the Cut tool with the selective cut, negative volumes and modifiers did not always scale correctly.
  • Internal bridges did not always correcly connect to perimeters. #10231
  • Merging object parts together did not work correctly when the parts had mirroring applied to them.
  • It was not always possible to uniformly scale an object after cutting, which is now fixed. #10667
  • The wipe tower preview shown in the 3D scene was shown even when the wipe tower was not actually used in the print.
  • The horizontal slider in G-code Viewer did not always allow to view all moves in the layer. The problem mostly appeared when viewing G-codes from different slicers than PrusaSlicer.
  • macOS specific: Fixed a crash when sending files to print host on older macOS systems. #10713
  • Fixed tiny gaps sometimes appearing in bridging infill.

Translations

  • Added FI (Finnish) translation #10678 thanks to @J3r0github
  • Updated FR, IT, JA, PL dictionaries
  • Updated CA dictionaries #10676 thanks to @davidjuanesb
  • Update CN dictionaries #10703 thanks to @ptsa
  • Fixed a typo in HU dictionaries #10693 thanks to @Utelagazkodas

Profiles

  • Added MK4IS profiles for MK4 with input shaper
PrusaSlicer - PrusaSlicer 2.6.0-beta3

Published by kubispe1 over 1 year ago

PrusaSlicer

Summary

This is the third beta release of PrusaSlicer 2.6.0, which fixes bugs and introduces a few improvements compared to beta2. See the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4, 2.6.0-alpha5, 2.6.0-alpha6, 2.6.0-beta1, and 2.6.0-beta2 for the complete list of changes with respect to 2.5.2.

To let you enjoy the beta without worries, the beta builds save their profiles into the PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration. When you first run the beta, it will search for all configurations produced by alpha or final versions and offer to create a copy of the latest one.

Improvements with respect to 2.6.0-beta2

  • The improvement of PlaceholderParser includes the addition of the 'is_nil' function, displaying error messages for custom G-codes, and preventing issues related to disabled filament override values. #10578
  • The new improvement allows PrusaSlicer to recognize and accept projects with a .zip extension as 3mf projects.
  • The user now has the option to specify the extruder to be used for printing perimeters of the wipe tower, which enhances the stability of the wipe tower in multi-material printing. (See Print Settings / Multiple Extruders / Wipe tower extruder)
  • Added a warning to alert users when the bed temperature varies significantly. This situation can occur when multiple objects of different materials are placed on the bed.

Bugs fixed with respect to 2.6.0-beta2

  • Linux specific: Fixed a crash that occurred after a specific manipulation in the right panel.
  • Fixed an issue that selecting and arranging specific objects outside of the bed (on the virtual bed), resulted in overlapping with other existing objects.
  • macOS specific: The context menu did not appear when the user right-clicks on selected objects in the object menu. #10576
  • Fix of crash when selecting multiple objects and using "Set number of instances" in the context menu. #10617
  • Fixed issue where travel toolpaths on the top layer were incorrect, causing some models to appear black when travels were enabled in the preview.
  • Negative volumes became disorganized and assigned to the wrong subparts of the object when cut with selection was used. The fix involves merging solid part components (excluding Connectors) and setting the merged volume name to match the object name. #10631
  • Fixed an issue where the 'Slice Now' button remained inactive in SLA mode after creating a shape, adding a negative volume, and moving it within the shape.
  • The Undo/Redo functionality did not work correctly with the Variable Layer Height bar.
  • Fixed crash in Organic supports #10605
  • The selected filament color in the Filament menu did not transfer to the main screen. #10636
  • The issue in PrusaLink and Octoprint has been fixed, where the Host in the header is set to the original hostname instead of the resolved IP address after resolving domain name. #9734

Translations

  • Updated FR, IT, JA, PL, CS, DE, ES dictionaries
  • Updated CA dictionaries #10601 thanks to @davidjuanesb
  • Updated RU dictionaries #10567 thanks to @AndylgTom
  • Updated UK dictionaries #10379 thanks to @unreadablename
  • Updated BE dictionaries #9449 thanks to @lidacity
  • Corrected some typos in DE dictionaries #10318 thanks to @mike-sch
  • General Update for TU dictionaries #10310 thanks to @mehmetsutas
  • Correction of FR dictionaries #10157 thanks to @artemisart
  • Corrected some typos in PL dictionaries #9713 thanks to @rjaros87
  • Corrected some typos in CS dictionaries #9668 thanks to @DemonioCZ
  • Corrected some typos in FR dictionaries #9586 thanks to @5axes
PrusaSlicer - PrusaSlicer 2.6.0-beta2

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

​This is the second beta release of PrusaSlicer 2.6.0, fixing the most critical bugs found in beta1. See the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4, 2.6.0-alpha5, 2.6.0-alpha6 and 2.6.0-beta1. for the complete list of changes with respect to 2.5.2.

To let you enjoy the beta without worries, the beta builds save their profiles into the PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration. When you first run the beta, it will search for all configurations produced by alpha or final versions and offer to create a copy of the latest one.

Bugs fixed with respect to 2.6.0-beta1

  • Fixed a crash in Configuration Wizard. #10556
  • Fixed a crash of the new ensuring fill when no vertical lines were generated. #10563
  • Fixed a crash in Organic supports. #10551
  • Fixed a crash after using automatic support painting. #10516
  • Fixed a crash with Organic supports with zero top interfaces and raft enabled. #10547
  • Fixed vertical holes when bridging over infill.
PrusaSlicer - PrusaSlicer 2.6.0-beta1

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

​This is the first beta release of PrusaSlicer 2.6.0, mostly fixing bugs found in the previous alphas. See the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4, 2.6.0-alpha5, and 2.6.0-alpha6. for the complete list of changes with respect to 2.5.2.

With this release, PrusaSlicer not only brings fixes but also introduces several noteworthy improvements to existing features. Highlighting the most significant enhancements, the Cut tool has been upgraded to provide increased power and functionality, Organic supports have undergone improvements to enhance stability and reliability, and modifications have been made to improve compatibility presets for multitool printers.

To let you enjoy the beta without worries, the beta builds save their profiles into the PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration. When you first run the beta, it will search for all configurations produced by alpha or final versions and offer to create a copy of the latest one.

Upgrades of the Cut Tool for selective object splits #9472, #9577, #9922,

The improved Cut tool now offers more flexibility by allowing users to selectively select parts of the object which should not be cut. Selection and deselection of the parts can be controlled with the right mouse button. Note that when some parts are selected, PrusaSlicer will always generate two separate objects, the option to leave everything as parts of one object is not available.
Cut_with_connectors_improvements2

Changes in modification of compatibility of presets

When using a Multitool printer (with 'single_extruder_multi_material' turned off), PrusaSlicer now filters filament presets and presents the user with only the appropriate filaments based on the compatible printers conditions ('compatible_printers_condition') for each individual extruder. This change also introduces a new combobox in the Filament settings, simplifying the listing of extruders.
Filament_Bar

Other improvements with respect to 2.6.0-alpha6

  • Embossed text objects can now be edited in Simple mode.
  • When using MainSail/Fluidd print host, PrusaSlicer now uses Moonraker API, without relying on OctoPrint compatibility mode being enabled.
  • A new ‘Hide/Show Custom G-Code’ button was added to the G-Code preview. The range of color scale in the legend is possible to visualize without the effect of the purge line. The button is available only for parameters where it is relevant (Width and Volumetric flow rate) #10259
  • Improved error reporting when the last layer exceeds the maximum build volume height due to variable layer height. The name of the object violating print height is reported. Improvement is related to original issues. #9467 #9519 #9646
  • macOS specific: Fixed performance issue with the G-Code viewer when travels were enabled.
  • Added 'Zoom to mouse cursor' by Shift+Mouse wheel. Thanks to @LiZ-Li-BBL
  • Thumbnails generated to G-code now use the same colors as in the 3D view. #4577
  • The slicer now includes an improved algorithm for overhang speed slowdown and avoiding curled filament. A new and tuned estimation method is applied for the curled height of the filament. The estimated curling now affects the slowdown of overhang speed on external perimeters and also on internal ones. #9756. The new enhancement should significantly improve surface quality and prevent artifacts, without slowing down internal perimeters unnecessarily.
  • After slicing an object with negative volumes in SLA mode, users now have the ability to toggle the visualization on or off, allowing for better control over the final geometry in the 3D editor. This convenient new button for switching between visualizations is located adjacent to the object, facilitating an intuitive user experience.
    SLA_button_merged
  • New ensuring addresses the occasional occurrence of local zig-zag patterns that were generated in the ensuring perimeters. It detects segments with short movements that cause vibrations and can reduce surface quality, and fixes them. #9970
  • Improvement of Organic supports by preventing collisions between the main object and its own support branches. Note that the collision issue between different objects and their support branches remains unresolved. #10247
  • The bottom interfaces of Organic supports have been fixed and enabled, providing enhanced stability when positioned on the model's body. #9512
  • The user now has control over the utilization of either one or two perimeters for Organic supports using the support_tree_branch_diameter_double_wall parameter. #10304

Improvements in bridges over internal infill

  • Improved the algorithm so it does not generate extremely long bridges when the layer below is very sparse. #10222
  • PrusaSlicer now detects areas where internal bridges require anchoring to perimeters and enhances it by adding an extra ensuring line in the previous layer. This addition provides support and enhances structural stability for the bridges.
  • Furthermore, PrusaSlicer has improved the handling of internal bridges when using Lightning infill. It expands the Lightning infill around bridged surfaces, ensuring improved anchoring for a greater number of bridges.

Bugs fixed with respect to 2.6.0-alpha6

  • Fixed crash at startup of PrusaSlicer when any of the SVG files used as icons in dialogs is renamed or removed.
  • Fix of Undo-Redo mainly for Emboss text tool. Undo-Redo will not add new parts after the text edit is closed.
  • Fixed crash in SLA, when an instance of the object is selected after slice.
  • Resolved the issue where the speed was not reset correctly after travel when dynamic fan speed was enabled. This caused travel speeds to be used for printing. #10229
  • Refactor of export archives for Anycubic Photon Mono and Mono SE printer. Thanks to @Mimoja #9929
  • The Ensuring algorithm was filtering perimeters too aggressively causing several issues, including making holes in top surfaces with low inclination (#9978), some bridges not being anchored properly into perimeters (#10231), and non-anchored solid fill when slicing with one top/bottom surface and very low minimal shell thickness. #9988
  • Fixed a rare crash in Placeholder parser, when the respective Custom G-code contained specific erroneous syntax. #10183
  • The wrong flow was used for spacing of internal bridging over infill causing an error when a small nozzle diameter was used or a small layer height was applied.
  • The 'Dynamic overhang speed' feature applied volumetric limits incorrectly for some overhangs. By now for a zero input value, the external perimeter speed is used instead. #10269
  • Fixed ‘Bad function call’ without any obvious reason for Organic support. #9892
  • Fixed height detection when using sequential printing. #10312
  • Linux specific: Fixed object disappearing when opening SLA hollowing or support gizmos.
  • The issue of broken object indexing for the 'Label object' feature has been fixed by assigning an incremental index randomly to each object and adding relevant comments, making it easy to cancel objects in OctoPrint and other applications. #10257
  • Fixed error when adding instance to a mirrored object.
  • When adding an instance use the orientation of the currently selected instance.
  • Fixed a crash when sending G-codes to "Mainsail/Fluidd" print host (introduced in 2.6.0-alpha6). #10210
  • Resolved the issue where entering too low or too high values for parameters Branch Diameter and Tip Diameter resulted in errors such as "Divided by zero" or caused the software to crash. #10385
  • Windows specific: Fixed the issue where disconnecting an SD card that was connected via an external card reader would also disconnect the card reader, requiring it to be disconnected and reconnected to be loaded again. The new code also triggers Windows notifications. #9881
  • Fixed the issue where the SLA support gizmo was inactive and was not possible to slice due to invalid data. The issue was triggered by attempting to hollow an object without proper settings.
  • Fix of crash upon loading a 3mf project with cut objects. #10319
  • Fixed occasional crash in Organic supports. #9665
  • Fix an issue where the 'Place on Face' gizmo did not work correctly with instances, causing the marks on the surface to be inactive for added instances.
  • Fixed a crash that occurred when an object placed outside of the print bed was arranged. #10241, #10278, #10416
  • Fix of crashes in the Support Point and Hollowing gizmos when used with non-printable objects. As a result, SLA supports and Hollow gizmos are now disabled when a non-printable object is selected, and users are prevented from setting an object to non-printable while these features are active.
  • Fixed occasional crashes during arrange.
  • Resolved issues when rotating individual instances around the X or Y axis (crash on macOS, incorrect selection on Windows and Linux).
  • Fixed a bug in the rounded extrusion calculation. This issue caused inconsistent bridge extrusion widths for different 'bridge_flow_ratio' values. #9007
  • Fixed a crash that occurred when loading a project while the camera was positioned below the print bed.

Translations

  • Updated translations and phrases.

Profiles

  • Add Voron Switchwire printer initial bundle (thanks to @stucamp)
PrusaSlicer - PrusaSlicer 2.6.0-alpha6

Published by lukasmatena over 1 year ago

PrusaSlicer 

Summary

This is another alpha release of PrusaSlicer 2.6.0. Among other things, the release adds support for Klipper firmware flavor, extends capabilities of custom G-codes, improves Arrange function, enhances Export to STL to subtract negative meshes, and fixes bugs found in previous alphas. For the full list of new features in the 2.6.0 series, please read the release logs of 2.6.0-alpha2, 2.6.0-alpha3, 2.6.0-alpha4 and 2.6.0-alpha5.

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

Klipper firmware support #3452

While it has been technically possible to use PrusaSlicer with printers running Klipper even in previous versions, it required the printer profile to be properly set and the settings were not intuitive. To make the configuration easier:

  • There is now an extra G-code flavor for Klipper (Printer Settings->General->Firmware flavor)
  • The machine limits table is shown to allow more precise time estimates, but no values from the Machine limits table are emitted into the G-code when Klipper is selected
  • The automatic insertion of temperature commands at the beginning of the G-code is now optional and is controlled by a new configuration checkbox named "Autoemit temperature commands". If you are using macros in your Start G-code to set temperatures, you might want to turn this off. It is enabled by default to maintain backwards compatibility. #2420, #6847, #10018
  • Acceleration can be set separately for travel moves
  • There is a new print host named Mainsail/Fluidd

Placeholder parser improvements

The macro language that is used to process Custom G-codes got several significant improvements, namely:

  • Added support for local and global variables #4048 #7196
  • Support for "writable" variables, that can be used to pass changes of state (such as position or retraction) that a custom G-code performed back to PrusaSlicer so it knows to compensate.
  • one_of() function to match an argument to any of the given patterns
  • interpolate_table() function, which interpolates a piecewise linear function at point x
  • size() and empty() functions to return the state of any vector variable
  • New and simplified syntax for if-elsif-else blocks
  • Added vector placeholders extruded_volume, extruded_weight, extruded_volume_total and extruded_weight_total to give current consumption of the material for individual extruders

The changes are described in more detail in the respective wiki page.

Other improvements with respect to 2.6.0-alpha5

  • 'Arrange' and 'Fill bed with instances' functions now take into account skirt and brim separation (#3072, #3477, #5286, #5310, #9301, #9309). Many thanks to @jschuh (#7653) and @individ-divided (#9181), whose pull requests were very useful sources of inspiration, despite not being used verbatim.
  • The 'Export as STL/OBJ' function is now able to subtract negative meshes. Note that the algorithm may fail on non-manifold geometries (e.g., those containing self-intersection, etc). In that case, the user is notified, and only positive volumes are exported. #9798 #7594 #8853
  • The configuration option Only infill when needed was removed. It never worked well, and it was a frequent source of confusion and bug reports when it removed infill from places where it was desirable or vice versa (#9790, #8381, #7914, #6286, #5791, #4916, #2796). The option is superseded by Lightning infill (#8648) and the feature has become too much of a maintenance burden, leading to problems when implementing new features #9935.
  • The 'Purging volumes' settings accessible by a button in the right panel is now only shown and used for single-extruder multi material printers. Setting purging volumes based on which filament is unloaded does not make sense for proper multi-extruder systems, which can easily control the required purging in Filament Settings->Advanced->Minimal purge on the wipe tower. Note that this is potentially a breaking change, affecting non-single MM profiles with the 'Purging volumes' set much higher than the value in filament settings, in which case the wipe tower will become smaller than it was in previous PrusaSlicer versions.
  • The wipe tower can optionally be printed with a "stabilization cone", which prevents it from toppling over. The apex angle of the cone is adjustable in Print Settings->Multiple Extruders->Wipe tower. Setting the value to zero disables the cone.
  • The spacing of purging lines on the wipe tower can be increased using another new configuration option in Print Settings->Multiple Extruders->Wipe tower
  • The size of the wipe tower preview block the 3D scene should now be more precisely estimated
  • When switching to 3D scene after slicing in SLA mode, the pad and support trees are now shown as they were in 2.5.x. This functionality was temporarily removed in 2.6.0-alpha2 because of issues it caused when using negative meshes (which was not possible in 2.5.x).
  • Print bed reference axes are now automatically downscaled when zoomed in #9483
  • The pointy ends of 'Frustum'-type connectors produced by the Cut tool are now slightly trimmed
  • When an edge is selected in the Measurement tool, its length is shown in the measurement dialog
  • It is now possible to set separate acceleration for travel moves in Print Settings->Speed->Acceleration control. The value is clamped by the maximum travel acceleration in Printer Settings->Machine limits when using Marlin 2 or RepRapFirmware flavor.
  • The M107 (turn fan off) command emitted at the beginning of the G-code was removed
  • For a long time, PrusaSlicer would scan the Start G-code and insert temperature-setting commands when they were not present. This feature is now optional and is controlled by a new configuration checkbox named "Autoemit temperature commands".
  • 'Save/Rename Preset' dialog was simplified when only one preset is being saved/renamed.
  • Organic supports: reduced default support_tree_top_rate to 15%
  • Estimated print time for the first layer was added as a comment at the end of the G-code, supplementing similar information already available
  • The text tool behaves better when positioning text on an object with multiple instances
  • The text tool now has a lock switch next to 'Rotation' field in the Advanced controls. This allows to unlock the free rotation. It is for dragging text over the surface without orientation jump.
  • Constrained scaling (scaling using the scale tool while pressing the CTRL key) can now be used with any selection

Bugs fixed with respect to 2.6.0-alpha5

  • The reference axes at the origin were incorrectly rendered on top of objects when viewed from the bottom of the bed
  • Filament type dropdown did not accept user editable text #9770
  • Extra perimeters on overhangs were printed in the air when the external perimeters option was enabled #9545
  • The cut tool did not place the pins and holes correctly when used on an object with scaling applied #9991, #10010, #10056, #10096, #10126
  • Export STL did not export anything when the file extension entered in the Save dialog was not lowercase #10000
  • Fixed a hang in rare cases when calculating Organic supports #10048
  • The new bridging algorithm that extends bridge infill over sparse infill now works with Adaptive Cubic and Adaptive Support infill types. The only infill type that is not yet supported is Lightning infill.
  • The bridge angle setting was incorrectly interpreted as if it was in radians instead of degrees #9963 
  • Fixed an incorrect bridging angle in some cases #10086, #9895
  • The new bridging algorithm generated overextrusions when 'Thick bridges' were enabled #10073
  • The new bridging algorithm was extremely slow in certain cases #10049
  • The new bridging algorithm sometimes extended the bridging extrusions too much (mentioned in https://github.com/prusa3d/PrusaSlicer/issues/9245#issuecomment-1456764409)
  • When 'Disable fan for first N layers' was enabled, the 'Fan speed on overhangs' feature did not work correctly (#9975, thanks @jschuh)
  • Fixed a false positive warning about stability issues, sometimes appearing on simple models with straight walls #9744
  • Fixed a crash when using add instance function with the wipe tower selected
  • Several layout issues were fixed #9768
  • It was not possible to export multi-extruder config when some filaments had idle_temperature checked and others did not #10163
  • Fixed an error sometimes reported when slicing in SLA mode
  • macOS specific: Fixed a crash in the text embossing tool when moving a text with on an object partially below the bed
  • Fixed incorrect selection in Object list when moving a part of an object below the bed (or from below the bed)
  • Fixed a bug in Organic supports that caused the trees to cut through an object in some cases
  • Fixed a hang in the Arachne perimeter generator with specific geometries #10034
  • Improved eject function on Windows. Since our code added to 2.6.0-alpha2 is having issues with external SD card readers, we have added a detection of such devices (based on https://github.com/microsoft/Windows-driver-samples/tree/main/usb/usbview). Detected external SD card readers are ejected using the code from 2.5.0 and older. We are aware that the older approach might eject devices too early and we are working on a fix.
  • When adding text to a scaled/mirrored object, the text is not created with the scale/mirror applied
  • Fixed the constrained scaling (scaling using scale tool while pressing CTRL key)
  • The reset button for skew is only shown when the world matrix contains it (the skewed object/volume is visible in the 3D scene)

Bugs fixed with respect to 2.5.0

  • 'Scale to fit' function was modified to avoid having the top layer exceed the print volume max height
  • When emitting M204 command at the beginning of the G-code, the correct format (M204 ST) is now used for Marlin (legacy) firmware flavor (in previous versions, the new M204 PRT was used).
  • Incorrect parts were selected in some cases after 'Split to objects' was used #10072
PrusaSlicer - PrusaSlicer 2.5.2

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

​This is the final release of PrusaSlicer 2.5.2. This release is functionally equivalent to 2.5.1, the only difference is that it contains profiles for Original Prusa MK4 printer.

It does NOT contain Organic supports, the improved Cut tool, and other features introduced in PrusaSlicer 2.6.x series. These are currently only available in 2.6.0 prerelease versions (the most recent currently being 2.6.0-alpha5).

PrusaSlicer - PrusaSlicer 2.5.1

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

​This is the final release of PrusaSlicer 2.5.1, which is a minor release containing profiles for the Original Prusa XL printer and several related improvements over 2.5.0.

It does NOT contain Organic supports, the improved Cut tool, and other features introduced in PrusaSlicer 2.6.x series. These are currently only available in 2.6.0 prerelease versions (the most recent currently being 2.6.0-alpha5).

Improvements with respect to PrusaSlicer 2.5.0

  • 'Monotonic lines' top/bottom fill pattern
    It is very similar to Monotonic, except that adjacent lines are not connected. This allows for smaller perimeter/infill overlap and results in better filling of the top/bottom layer, less over-extrusion, and better dimensional accuracy.
  • It is now possible to set acceleration separately for external perimeters, solid infill and top solid infill (Print Settings->Speed->Acceleration control)
  • Original Prusa XL specific: Arrangement into the corner
    The Prusa XL printer has a segmented bed, and it is capable of heating just a part of it to lower power consumption. Because the most efficient way of doing this is to start heating at the corner, the Arrange function in PrusaSlicer can now be configured to prefer corners. The setting is available after right-clicking the Arrange icon in the top toolbar and defaults to "Front Left". Auto arrangement is forced when an object is added to an empty print bed.

Bugfixes with respect to PrusaSlicer 2.5.0

Profiles

  • Added Original Prusa XL profiles

Translations

  • Updated dictionaries for CS, DE, ES, FR, IT and PL
PrusaSlicer - PrusaSlicer 2.6.0-alpha5

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

This is another alpha release of PrusaSlicer 2.6.0. It brings several substantial changes to the slicing core and fixes bugs found in previous alphas. For new features in the 2.6.0 series, please read the release logs of 2.6.0-alpha2, 2.6.0-alpha3 and 2.6.0-alpha4.

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

Ensure vertical shell thickness improvement

This change improves one of the most hated feature of PrusaSlicer: too much solid infill and the way it is printed. Some of the related issues are #28, #223, #1054, #1531, #2137, #3744, #6853, #9245, #9898.

The problem and its history are as follows: When printing sloping surfaces, the resulting wall gets thinner (for obvious geometrical reasons). In the case that the slope is small, this effect can even produce holes in these walls, as the external perimeter on one layer may in fact be "more inside" than the innermost perimeter on the layer below. Original Slic3r applied rectilinear infill to fill in these gaps, PrusaSlicer added an extra logic to Ensure vertical shell thickness, which was trying to ensure that the shell would not be thinner than a vertical wall would be. The algorithm had the disadvantage of consuming more material than needed and creating very short segments of infill with abrupt changes of direction, leading to significant vibrations of the printer.

Starting with this version, PrusaSlicer fills the areas with concentric infill. The calculation of the areas is also reworked, so the material is only added where it is really needed. The old "Ensure vertical shell thickness" parameter used to switch between the upstream Slic3r and Slic3r Prusa Edition algorithms to ensure vertical wall thickness. The new algorithm implemented in PrusaSlicer 2.6.0-alpha5 is significantly better than either of the two old algorithms; thus, the switch "Ensure vertical shell thickness" was removed.

image

Extend sparse infill #569

Another long-standing issue was connected to bridging solid infill printed over sparse infill. The shape of such infill islands was only determined by what was above, and the infill lines were often inadequately supported as a result, leading to mid-air extrusions and possibly failed prints. PrusaSlicer now extends the lines of the bridge infill so that their ends are supported by the sparse infill on the layer below. The bridge infill is now always using 'Thick bridges'. The new algorithm is NOT applied for Support Cubic, Adaptive Cubic and Lightning infill.

This change also made it possible to decrease the expansion of the bridging layers, which leads to smaller filament consumption and shorter print times. The comparison image below shows exactly the same model (a cube with a counterbored hole in the top face). Only the two adjacent layers are shown for clarity:
image

Dynamic control of fan speed on overhangs #2921

This feature is similar to Dynamic overhang speed introduced in 2.6.0-alpha2. Fan speed is defined for predefined overlaps, and PrusaSlicer interpolates between the values to set the optimal fan speed when printing overhangs. The feature is accessible in Filament settings->Cooling->Dynamic fan speeds.

Other improvements with respect to 2.6.0-alpha4

  • It is now possible to import ZIP file contents from File->Import->Import ZIP Archive. A dedicated dialog is shown, and the user can select which of the files in the ZIP archive they want to open.
  • Organic supports can now be used with raft. Raft is built for the object only. Organic supports are routed directly to a print bed, they are not supported by a raft. #9816, #9743, #9526
  • Raft interface / contact layers are newly produced with alternating directions, and raft contact layer is newly perpendicular to a fill direction of the first object layer.
  • The configuration of Dynamic overhang speed was simplified, the percentage levels for which the speeds are set are fixed at 0/25/50/75 %.
  • There is a new is_nil function available in custom G-Codes to check whether a given configuration option is currently inactive (such as idle_temperature in Filament Settings). Example usage: {if is_nil(idle_temperature[0])}...{else}...{endif}

Bugs fixed with respect to 2.6.0-alpha4

  • Wipe tower brim was not shown in the 3D scene after slicing was finished
  • Tool temperature visualization in Preview was incorrect in some cases (related to #8324 and #9597)
  • macOS specific: Text emboss input dialog did not allow pasting text from the clipboard #9795
  • "Avoid crossing curled overhangs" sometimes generated travel moves outside of the bed #9800
  • Fixed "Dynamic overhang speed" when Pressure equalizer was used #9485
  • Fixed a crash in G-Code Viewer when parsing G-Code generated by Simplify3D #9823
  • G-Code Preview did not account for z offset when setting the height of the toolpaths for the purge line in custom start G-Code #9722
  • Fixed a crash when trying to add instances when multiple objects are selected #9864
  • Various minor improvements and bugfixes in the Cut tool #9771
  • Fixed a bug that incorrectly triggered an "out-of-bed" error when specific transformation was applied. The same problem caused issues when changing variable layer height #9467 #9519 #9646
  • By pressing the 'T' keyboard shortcut, it was possible to add text to an object that was created by a cut and had connectors. This is now fixed, as this is an unsupported scenario.
  • Fixed a crash sometimes occurring on startup on macOS Ventura 13.2.1 #9774
  • Reload from disk was not available for 3MF files #9822
  • Fixed a crash when cutting an object containing a modifier

Bugs fixed with respect to 2.5.0

  • Fixed a crash happening after splitting a painted object into parts (related to all paint-on features). The painting is now removed before the splitting and the user is notified about it #9809
  • Fixed missing dense raft layers when number of support top interface layers was set to zero. Mentioned in #7951.
  • Fixed discrepancy between the G-code placeholder parser current layer index and the total number of layers. Fixed for non-sequential print only for now #9866

Localizations

  • Updated dictionaries for CS (currently incomplete), DE, ES, FR, IT and PL
PrusaSlicer - PrusaSlicer 2.6.0-alpha4

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

This is the 3rd public alpha release of PrusaSlicer 2.6.0. It mostly fixes bugs found in previous alphas, but there are also improvements, especially related to the Cut tool. For new features in the 2.6.0 series, please read the release logs of 2.6.0-alpha2 and 2.6.0-alpha3.

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.

Cut Tool Improvements

  • The Cut tool dialog layout was changed to be easier to comprehend
  • Upper and lower part of the object are now highlighted in color
  • Added a possibility to cut the object into parts - in that case, connectors cannot be placed and the parts retain its position within the object. Thanks @jschuh for this idea (presented in #9564).
  • The controls of the tool obscured the object when it was small #9657
  • Added a functionality "Flip cut plane" to easily add pins to the other side of the plane #9632
  • The cut tool now works even when the cutting plane does not intersect any volume of the object, so the tool can be used to separate parts into multiple objects without actually cutting anything. This is the same behavior as in 2.5.0. #9629
  • When placing connectors in the new Cut tool, the tolerance is now entered in absolute values #9697
  • The cut plane is now highlighted on hover, it is newly possible to move it by dragging.
  • If the object is cut into parts or when it does not have any connectors, the "lock" of scaling of the resulting parts is not applied #9633
  • Performance improvements

Other improvements with respect to 2.6.0-alpha3

  • The option "Clip multipart objects" was removed. PrusaSlicer now always behaves as if it was ON. This option was a candidate for removal for a long time, and the new algorithms we implemented for the 2.6 series are no longer compatible with it. We believe that there is really no reason to not clip the objects and we have seen many cases where leaving it OFF accidentally led to unexpected results (overlapping extrusions) #9679, #8779, #3872
  • Increased sensitivity of the curled overhang avoidance algorithm
  • 'Set Number of Instances' now works when multiple objects are selected #6994
  • Organic supports are now consistently referred to as 'Organic'
  • Organic supports parameters are now grayed out when different style of supports is selected
  • It is newly possible to set acceleration separately for external perimeters, solid infill and top solid infill (Print Settings->Speed->Acceleration control)

Bugs fixed with respect to 2.6.0-alpha3

  • Extra perimeters on overhangs sometimes overlapped with infill #9604
  • Fixed an occasional crash when using Organic supports with specific settings #9555
  • Fixed a crash during slicing when certain strings were present in custom G-codes. This was also a problem in previous versions, but instead of a crash, incorrect cooling logic might have been applied in these cases #9470, #9550
  • The "Export plate as STL including supports" option was grayed out in the menu when the object only had pad and no supports #9558
  • Organic supports: All contours are CCW oriented, inner contours are printed before outer contours.
  • Fixed crash in Organic supports with a single support layer only #9557
  • Linux specific: The new "idle_temperature" option in Filament Settings did not behave correctly when checked and unchecked (UI glitches).
  • Fixed a rare crash during slicing with specific geometries #9561, #9562
  • "Verbose G-Code" option produced invalid G-Code when "Dynamic overhang speed" was enabled #9588, #9610
  • Cooling slowdown was applied incorrectly when "Dynamic overhang speed" was enabled #9594, #9485
  • "Dynamic overhang speed" would set speed to zero if the speed was percentage based and external perimeter speed was set to 0 (auto). Thanks @MGunlogson for helpful investigation of this issue in #9622.
  • "Dynamic overhang speed" could violate (volumetric) speed limits #9709. Thanks @MGunlogson for helpful investigation of this issue in #9622.
  • "Dynamic overhang speed" did not work correctly with Pressure equalizer feature #9485, #9563.
  • The "optional" config option idle_temperature now retains its value when disabled and enabled again. If the value cannot be recovered (e.g. after switching to different tab), a value of 30 is used as a default instead of 1500. Previously, the value would change to 1500 (maximum allowed temperature) when the option was reenabled. Same fix was applied to options in Filament Overrides.
  • When using the Cut tool on a model that was scaled, the manipulation arrows in the scene had incorrect size and the plane was not exactly in its correct position.
  • Fixed double-printing of support layers in specific scenarios with soluble supports and interface layers #9647
  • Organic support branches sometimes intersected interface layers
  • Organic supports did not correctly work when using "Enforce supports for the first N layers" option #9477
  • Organic supports did not correctly work when using "Don't support bridges" option #9493
  • Various bugfixes and improvements of the Organic supports, thanks @ThomasRahm
  • Organic supports ignored overhangs in specific cases, thanks @ThomasRahm #9459
  • Fixed missing update of sidebar panel after orienting an object using Place on Face tool
  • Experimental option "Wipe tower with no sparse layers" did not work correctly and was causing missing layers in the print #9592 #9703
  • The Cut tool could not be applied consecutively when the previous cut placed exactly one connector #9576
  • Fix of Physical Printer Dialog: When closing and reopening the dialog, "Host Type" field was incorrectly changed #9695
  • The new placeholder is_extruder_used introduced in 2.6.0-alpha2 was not expanded correctly in some cases.
  • Several issues with object manipulation were fixed (mostly affecting mirrored objects) #9702
  • Linux specific: Desktop integration and URL registration are now separated.
  • Layout fixes in the Preview dialog when an archive is being opened.
  • Fixed freezing during brim generation for specific geometries #9651
  • Windows specific: Selected item in Search dialog was unreadable when using dark mode
  • The new autopainting of supports did not work correctly when raft was enabled
  • Fixed a crash with specific geometries and elephant foot compensation enabled

Bugs fixed with respect to 2.5.0

  • Linux specific: desktop integration was failing when $XDG_DATA_HOME and $XDG_DATA_DIRS environment variables were undefined #9565, #9584
  • Windows specific: Fixed UI glitch in PhysicalPrinterDialog when changing the printer selection
  • Extruder temperature was occasionally shown incorrectly in Preview when using single extruder multi material #8324, #9597
  • Fixed a false positive error report about "Calling AppConfig::save() from a worker thread", appearing when using VM and specific nVidia drivers #7839, #9178, #9370, #9420

Profiles

  • Added initial MakerGear bundle (#9169, thanks @Garr-R)
PrusaSlicer - PrusaSlicer 2.6.0-alpha3

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

This is the 2nd public alpha release of PrusaSlicer 2.6.0. It mostly fixes the most critical bugs found in previous 2.6.0-alpha2. For new features in the 2.6.0 series, please read the release log of PrusaSlicer 2.6.0-alpha2.

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.

Improvements with respect to 2.6.0-alpha2

  • Minimal connector size in the Cut tool was reduced to 1 mm #9500
  • Icons were added to radio buttons in the Cut tool to make selection of connector type more clear.
  • Windows and Linux specific: Downloading from Printables.com requires the user to allow this feature in Preferences for a specific executable. An extra dialog notifying about this is now shown on startup when the new version is first run.

Bugs fixed with respect to 2.6.0-alpha2

  • Downloader preferences options were crashing in G-Code Viewer #9496
  • Cut function did not correctly apply tolerances to pins and holes #9554
  • Fixed unintended path connections in Extra Perimeters when gap fill was applied #9480
  • Fixed occasional crashes with specific brim geometries #9513, #9489, #9543
  • Fixed crashes of stability alert checker, when empty print object was passed to it
  • Fixed occasional crashes when using modifier meshes #9466, #9511, #9518
  • Fix of a crash with sequential print and raft #9464, #9509, #9522
  • macOS specific: PrusaSlicer 2.6.0-alpha2 has issues starting in certain languages because of locales-related issues. A temporary workaround was implemented and the application now starts with English locales (an error message is shown on startup). The issue is being investigated further #9476
  • A validation check was added for scenarios not yet supported in the alpha: Organic supports do not work with variable layer height, Avoid crossing perimeters option and avoid crossing curled overhangs cannot be enabled together #9528
  • Contour shown in Cut tool did not show correctly when the model was scaled.
PrusaSlicer - PrusaSlicer 2.6.0-alpha2

Published by lukasmatena over 1 year ago

PrusaSlicer

Summary

This is the first public alpha release of PrusaSlicer 2.6.0 (alpha1 was not public). It brings the most anticipated Organic supports, measurement tool and text embossing tool. Cut tool now allows orienting the cut plane and adding connectors, there is a possibility to download files directly from Printables.com and several new features were added in order to improve FDM print quality. There are of course many more 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.

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

Organic supports #1514

Until now, PrusaSlicer's supports consisted of 2D "scaffolding" created on a regular 2D grid. While the approach produced reasonably good results in many cases, they often consumed quite a lot of filament, took a long time to print, ended up in spaces where they are difficult to remove from and left visible scars on the model when removed (especially when the settings were not tuned correctly). We improved some of these downsides by introducing the "Snug" supports in PrusaSlicer 2.4.0, but they are still an upgraded version of the old and limited approach.

An alternative approach, which was pioneered by different 3D modeling softwares and slicers are "Tree supports" - support structures designed to save material and printing time as much as possible. Branches of supports are generated where needed and limit contact areas to a necessary minimum. This results in a better surface of the original model. The community has rightfully complained that not having this style of supports in PrusaSlicer is a severe disadvantage.

In this release, we are presenting our implementation of tree supports, which we decided to call 'Organic supports' because of their smooth shape. The algorithm is based on @ThomasRahm 's implementation of tree supports, which are significantly improved tree supports originally from Cura. We would like to thank Ultimaker Cura and @ThomasRahm (see his Reddit post) for the effort they have invested into the problem.

The supports are easily removable, do not scar the surface and are fast and cheap to print. The algorithm automatically uses double perimeter walls for the trees where needed to improve structural capabilities. Like other support types implemented in PrusaSlicer, Organic supports can be enforced or blocked using the Paint-on supports tool.

We recommend to use the Organic supports together with the following two new features (see their respective sections below):

  • Automatic FDM support painter produces the right amount of supports for sufficient model stability.
  • Avoid crossing curled overhangs reduces risk of print head kicking the model and angled tree supports off the build plate.

The Organic supports currently pose the following limitations:

  • For large models with a lot of supports, 16GB RAM minimum is recommended.
  • Top / bottom vertical separation distances are rounded to multiples of layer height.
  • Variable layer height is not supported.
  • Interface layers are not always produced reliably. As of now printing with zero interface layers is recommended, which produces easy to remove supports.
  • Rafts with Organic supports are buggy.

Measurement tool #3651

Measurement tool is another feature long demanded by our community. The tool utilizes a geometry detection algorithm that recognizes points (vertices), edges, circles and planes. Users can check model sizes and angles directly in the slicer, so there is no need to open 3rd party software anymore for this purpose. At the moment, it is possible to measure between parts to simplify their better manipulation and organization inside objects (but not between separate objects). Last but not least, the tool allows to uniformly scale the object to the required length by clicking a button in the scene.

One of the current limitations of this tool is its behavior on objects with overlapping parts. In such cases, the parts are considered individually, meaning that edges created by the intersections are not detected, and planes hidden inside other parts are. The tool also does not work well with negative volumes, which are considered as parts.

Text embossing tool

This tool opens a new capability to insert, manipulate and edit text created like a new volume of an object. It allows to add notes, signs, serial numbers, etc. directly in the slicer.

The text can be placed on any type of surface, not only a planar one. There is an option to "Use a surface", which forces the text to follow the parent object surface along the whole text length. Text manipulation can be simply performed by dragging text around the object to be placed in the desired position. There are also possibilities to rotate (Z-rot) and elevate (Z-move) text directly in the Emboss panel.
The text editor automatically imports fonts from the user's system library. Basic or advanced properties of text are available to change and edit. Final text volume can be used like any of the usual types: part, negative volume or a modifier. The whole project with text entities is saved to 3mf and after reopening, the text is fully editable.

How to use: right-click the object and choose Add part->Text.

Functionality overview:

  • Insert and manipulate text volumes
  • Recognize and import the user’s font library
  • Edit text in many different ways
  • Create, save or delete text style
  • Set type of text volume – object part, negative volume, modifier
  • Use Surface mode to project text on an object's surface
  • Editing the text at any time, not only when created

Cut tool update

The Planar Cut tool has been available in PrusaSlicer for a long time. It is handy for preprocessing huge models that don't fit the build volume, are too complicated to print in one piece, or models where only a part is valuable for the user. With this release, we decided to extend its functionality.

The model can newly be cut by a generally oriented plane (#4368, #5706). For cut plane manipulation purposes, the tool enables movement and rotation to an appropriate position. Z positioning is also possible to manage by numerical input value [mm]. Rotation around the X and Y axis is set up by a gizmo enhanced with 5 degrees snipping ability. Alternatively, the plane could be defined by selecting two points on an object or in space around it. To use this feature, press Shift and draw the requested cutting plane in the scene using the left mouse button.

Also, we understand how important it is for users to assemble final parts to a single object with an emphasis on precision and simplicity. That's why we added an option to define various types of connectors (#803, #8656, #5553, #1857). The user can enter editing mode for placing the connectors by pressing a button in the Cut panel. There are several shapes and styles of connectors to choose from. Users can also control the depth, size, and tolerances of each connector member and negative hole.

"Lay down" options help automatically place removed parts straight after the cut performs (#3154).

After the cut is performed, the resulting objects "remember" that they belong together and certain operations are not permitted. For example, one cannot scale one object and not the other, as that would make the parts not match. The information is visible in the Object List and is also saved into a 3MF. It is of course possible to break this correspondence and manipulate the objects without limitations.

Automatic FDM support painter and print checker

For a long time, PrusaSlicer allows the user to paint areas to be supported. This is a much praised feature that allows the user to customize supports quickly and easily. As part of a large effort to create more intelligent support creation, the FDM support painting tool now contains an option for automatic painting of enforcers on the model. The algorithm behind this tool checks the print extrusion by extrusion and takes into account many factors such as the center of mass, weight of the supported part, bed movement, potential extruder collision, bed adhesion, material, and bridging. The result should be more effective support placement. For example, bridges are supported only on regularly spaced pillars and not over their full length.

The tool is also executed during slicing, providing conservative warnings in case no supports are to be generated but most likely some supports are needed. Experts may find such warning obtrusive, thus the warning may be disabled in application preferences.

Dynamic overhang speed #9348

Dynamic overhang speed functionality enables reliable slowdown of overhang extrusions. Lower velocity enables proper cooling when it is needed. The algorithm calculates extrusion overlap with the previous layer and applies speed calculated from the overhang slowdown function. Users can control the shape of the overhang slowdown function via four input points - each point has an extrusion overlap value expressed as percentage of the full width, and desired speed on such overlap. The speeds in between the control points are calculated via linear interpolation. The feature is configurable in Print settings -> Speed -> Dynamic overhang speed.

Extra perimeters on overhangs (EXPERIMENTAL)

This functionality detects overhang areas where bridges cannot be anchored, and fills them with extra perimeter paths. These paths are generated as perimeters of the overhang area and anchored to the non-overhanging areas when possible. The perimeters are then cut, sorted such that the area is filled from anchors outside such that each new path should be printed next to previous, and reconnected when possible. This feature can improve the quality of larger overhangs on many models as well as making some overhangs printable without supports.
Configurable in Print Settings -> Layers and Perimeters -> Quality -> Extra perimeters on overhangs.

Avoid crossing curled overhangs (EXPERIMENTAL) #9081

Avoid crossing curled overhangs is another new experimental feature. It aims to plan travel moves such that the extruder avoids areas where the filament may be curled up. This is mostly happening on stepper-rounded overhangs and may cause a crash with the nozzle. The danger of curling is calculated from extrusion properties like overlap with the previous layer and local curvature. It does not take into account the direction of the fan and thus the avoidance is conservative and may avoid places where issues did not appear.
The feature also cooperates with the new organic supports, avoiding their overhanging edges under steep angles. The option can be found in Print Settings -> Layers and Perimeters -> Quality -> Avoid crossing curled overhangs.

Downloads from Printables.com #8674

The new Downloader feature enables the user to easily access and download models directly through the Printables.com site. By clicking on the PrusaSlicer logo on Printables.com, a new instance of the PrusaSlicer will open and the selected model will be saved to the user's folder. Users can register for the Downloader tool and select the target folder through the Config Wizard or the Preferences menu. This feature supports zip archives with STLs and 3MFs that can be downloaded, opened, or dragged and dropped into PrusaSlicer. Then, the user can select which files should be opened in a new dialog. Note that if multiple 3MF projects are selected, all load as geometry only. Additionally, opening a 3MF project now also opens in a new instance of PrusaSlicer.

Currently the user has to enable the downloader icon in their printables.com profile in order to use this feature. After the final release of 2.6.0, the icon will be visible by default (with the option to hide it).

Template filaments #3566, #3729

Until now only system filament presets that were defined in printer vendor profile files were possible to use. Now we have added an additional profile that defines most of the filaments separately and is possible to use with every printer. In the Configuration Wizard, there is a new (Templates) category among Printers. There, the user can add filaments visible for every printer. If any other printer defines the same filaments (for example Prusa printers), template filaments will be available for other printers without the need to select them. After the installation in the right panel, there is a new category '--Template presets--' among Filaments. Please note that these profiles were usually set for Prusa printers and it is recommended to check all values in the Filament Settings. Then saving a copy of a template preset will offer a checkbox to save as a preset derived only for the current printer.

'Monotonic lines' top/bottom fill pattern

New top/botom infill pattern was introduced: 'Monotonic Lines'. It is very similar to Monotonic, except that adjacent lines are not connected. This allows for smaller perimeter/infill overlap and results in better filling of the top/bottom layer, less over-extrusion and better dimensional accuracy.

New experimental tree-like support strategy for SLA

To join the Tree support fever, PrusaSlicer's SLA algorithms now contain a new, experimental support generation strategy that builds tree-like supports similar to that introduced in FDM mode. As a side-result of our time spent on tree supports in general, this strategy is inspired by the paper "Clever Support: Efficient Support Structure Generation for Digital Fabrication". The new strategy is called "branching supports" to differentiate from the previous strategy which is still the default. The biggest advantage of these new supports is their ability to save print material. Their ability to avoid the model body is also much improved compared to the default support strategy.

Multipart objects in SLA

SLA mode is now able to host models with multiple volumes including negative ones which also makes text embossing available in SLA mode. Support blocking and enforcing regions can also be added to the scene to guide the automatic support point generator.

Multi-material printing

This release introduces several fixes and improvement related to multi-extruder printers (with multiple independent extruders).

  • Ooze prevention feature was reworked. This feature was designed to reduce oozing by decreasing temperature of currently inactive extruders and by wiping the nozzle on a tall skirt, which was always printed when this feature was enabled.
    In this release, the tall skirt is no longer tied to Ooze prevention, the user can turn it on separately. Ooze prevention only reduces temperature of the extruders which are being parked. This is a breaking change affecting behavior of existing profiles.
  • Ooze prevention "delta" temperature can now be defined per-filament #9235. There is an additional option in Filament Settings: idle_temperature. It is optional, which is a new concept of configuration option, so far only known from Filament Overrides. When it is checked and "Ooze prevention" is active in Print Settings, the value is used. When it is unchecked, ooze prevention uses the old "delta" value as it always did.
  • First layer temperature is correctly applied even with Ooze prevention enabled. Previously, temperature for other layers was sometimes incorrectly applied. #9263, #1107
  • 'Ooze prevention' can now be enabled even with the wipe tower #9089.
  • When using ooze prevention, the temperature setting at the beginning of the print and when transitioning to the second layer sets all but the printing exruder to idle temperature. Previously, all extruders were set to their first/other layer temperature #7532.
  • Custom Start G-Code has a new placeholder: is_extruder_used. It is a vector of bools telling whether that extruder is used in the print.
  • layer_z placeholder is now available in start filament gcode, regardless of whether the wipe tower is enabled or not.
  • When printing with the wipe tower with multi-extruder printer, the toolchange is triggered before travelling to the wipe tower #5377, #4550.
  • When using a multiextruder printer, toolchange_retraction parameter is now honored. Previously, "normal" retraction was applied before toolchange.
  • Deretraction when starting to purge the new tool was sometimes missing.

Other improvements with respect to 2.5.0

  • SLA slices can now be exported not only in the usual SL1 format with PNG slices but also in SVG. The output can also be a PWMX archive (#7917, thanks to @ole00). If the exported archive contains SVG slices, it can also be imported through the SLA import dialog.
  • Vendor profile index files (.idx) are now downloaded as one zip file. This allows several changes: New printers and new vendors can be released without releasing a new PrusaSlicer version. Resources like printer thumbnails or printer bed models can be updated without releasing a new PrusaSlicer version. For not yet installed vendors, Config wizard now presents and installs the latest profile version. For already installed vendors, there is still an update offered like in previous versions.
  • Notifying about new releases was improved. When the new release version is out, PrusaSlicer will suggest download of installation or executable file. This download is done by PrusaSlicer. Alfa and beta releases are now promoted via notification.
  • When double clicking a 3MF file in system viewer or drag and dropping the file on PrusaSlicer window/icon, PrusaSlicer will newly ask if the user wants to open the project or import geometry only #6377
  • G-code preview settings were moved from the bottom toolbar into the G-code legend window.
  • Slicing with "only_retract_when_crossing_perimeters" enabled is now much faster.
  • When changing toolbar size in Preferences, the changes are visible immediately
  • Windows specific: When the application tries to automatically switch to MESA OpenGL library and the system opengl32.dll is not unloaded, the user is prompted with a dialog asking to rerun using the --sw-renderer command line option.
  • Added detection for corrupted PrusaSlicer.ini and fixed showing instructions on how to recover from it (#8217). This is an issue sometimes happening on Windows for unknown reasons.
  • An error message is shown when trying to import invalid 3MF #8401
  • Allow drag and drop of files into PrusaSlicer regardless of the currently selected tab.
  • When a print contains a custom G-Code inserted using the vertical slider, the view does not automatically switch to Color Print (#8413, #5837).
  • G-Code Viewer can now process G-Code files produced by BambuStudio.
  • User print/filament/printer profiles can now be renamed (#7851). Until now, this was not possible to do from the UI.
  • Sending G-Code to Repetier server now works even with "rebranded" Repetier. Also, forcing autostart should now work reliably with Repetier (#7807).
  • Added an error message when attempting to overwrite a 3MF file in a protected folder.
  • "Compare Presets" dialog now allows to show currently edited (i.e. still unsaved) presets.
  • When defining a custom printer in the Configuration Wizard, there is a new field to enter its maximum height.
  • Editing fields for custom Start and End G-Codes in Printer Settings are now taller to reduce the need for scrolling.
  • A new arrange function parameter to set min distance from the bed edges is available (configurable after right-clicking the "Arrange" icon in top toolbar) #8442
  • "Compare Presets" dialog now allows batch transfer from one preset to the other #5384
  • The "Unsaved changes" dialog when switching presets now shows values of currently modified options (in addition to their old and new values) #7393
  • There is a new button in Extruder settings tab, which allows to copy extruder settings to all the other extruders #8720.
  • New palettes for mode markers are implemented. This update is specifically designed to help color-blind people, who are unable to distinguish between modes easily #7454
  • Upload to PrusaLink uses HTTP PUT operation rather than POST. Which one is used is decided on information read during initial connection (upload-by-put).
  • Physical printer Original Prusa MK2.5 and MK2.5S can be set up as PrusaLink #9213
  • New host type "PrusaConnect" is available. While its inner communication with the host is the same as uploading to PrusaLink, from the user perspective there is a URL address prefilled in the hostname (but still changeable) and there is a message displayed in the upload notification after the upload. The message shows additional info about queuing and printing. Also, there are 3 ways to upload to PrusaConnect: Upload, queue, and print. HTTP digest on PrusaConnect is disabled.
  • For physical printers with configured URL address, it is newly possible to open a web browser at that particular URL address from the physical printer context menu under the "cog" button next to the physical printer preset in the right panel.
  • Object manipulation is enabled when all parts of a single object are selected .
  • Size and position of Shape Gallery window is now saved and used when opening the window repeatedly #8728
  • The G-Code Viewer is now able to correctly process G2 and G3 G-Codes.
  • Improved time estimation for G-Codes produced by KISSlicer
  • Archimedean Chords, Hilbert, and Octagram Spiral infill types should now be faster to generate #8932
  • Vendors are now listed alphabetically in Config Wizard (#8795, thanks @snadorp)
  • Gap fill algorithm performance was improved #8164, #3259
  • Improved search function in Physical Printer Dialog - now it searches over all interfaces.
  • Windows specific: Internal address resolving was added when uploading to physical printer (OctoPrint / PrusaLink).

Bug fixes with respect to 2.5.0

  • View mode no longer resets to "Simple" when exiting the configuration wizard early #8261
  • Windows specific: PrusaSlicer can be set to automatically associate 3MF and/or STL files to itself. This feature did not work correctly on new versions of Windows. It should now work correctly again (#8332).
  • When loading an invalid G-Code file into G-Code Viewer, the legend and bottom slider are not shown anymore
  • Model errors icon disappears after reloading the correct mesh #8228
  • When using the experimental option "Set settings tabs as menu items", changes in configuration options of Print/Filament/Printer Settings were not detected without leaving the respective configuration fields #8254
  • Fixed detection of the first layer in vase mode - first two layers were considered as one when using the vertical slicer in Preview #8202
  • When selecting volumetric speed visualization in Preview, the G-Code window would disappear #8327
  • Fix collision after arrange when 'Complete Individual objects' is on #8335
  • macOS specific: Opening of G-codes by drag & dropping the G-Code on the slicer icon did not work in case the slicer was not already running.
  • Linux specific: Fixed a rare crash on startup with specific system language and locales settings #8299
  • Fixed missing tool changes when previewing G-Codes produced by different slicers #8467
  • Fixed incorrect detection of temperature changes when previewing G-Codes for multitool printers #8467, #7548
  • Fix a crash when drilling holes in SLA mode with specific geometries #8521
  • Windows specific: 3DConnexion devices did not work correctly over remote desktop (https://github.com/supermerill/SuperSlicer/commit/e0f17bdfd408e2a54c73a0e720f161096d72ddb3, thanks @denis-itskovich and @supermerill)
  • Fix a rare crash on startup, related to icon scaling. Thanks @LucaRood and @supermerill (ported from https://github.com/supermerill/SuperSlicer/commit/c8bb0a46b83e44e4d19fa401bc14fa0ed24c7411) #8563
  • Linux specific: profile edit buttons were sometimes obscured by right panel scroll bar #8738
  • Linux specific: Fixed layout issues in Object Manipulation panel #8693
  • When using the right panel (e.g. editing a value in Part Manipulation) and moving the mouse into the 3D scene, the 3D scene was taking focus from the respective control. This is now fixed #2519
  • Changing extruder using the vertical slider was only possible when the original extruder was set as "default" #8542
  • Scaling objects using the Object Manipulation panel worked incorrectly when set to Inches #8439
  • "Split to objects" was missing in the context menu in Simple mode #8618
  • Detach from the system filament preset button was visible even when the preset was already detached.
  • Windows specific: When ejecting an older or faulty USB drives, they might have reported as correctly ejected, even though in reality the writing operation did not finish, leading to possible file corruption. This should be fixed now.
  • The cursor in Search dialog was incorrectly moving to the end of the text #9100
  • Fixed a crash when attempting to save a preset with an extremely long name.
  • In specific cases, Arachne generated artifacts not present in the original geometry #8846, #9357
  • In specific cases (e.g. loading a 3MF with FDM project while in SLA mode), the preset selection combo boxes would become disabled and therefore unusable. This is now fixed.
  • PrusaSlicer now uses OpenGL 3.3 which solves some crashes, mostly on Linux. An example is the crash after clicking variable layer height icon: #7274
  • Preview of a single layer using the horizontal slider was missing the last extrusion in that layer #8458
  • The "automatic color change" feature offering to insert a color change can now be disabled in Preferences #8380
  • Fix of additional rotation during mirror operation #9258
  • The project is marked as modified when the user adds custom G-Code #9144, adds color change #8710, or adds pause print
  • Comma is now accepted as a decimal separator for height range modifier input panel #8819
  • Fixed a crash sometimes occurring when slicing very detailed models #8834
  • Fixed an occasional crash when slicing a project for multi-extruder printers #8844, #8837, #8912
  • Object labels did not correctly handle non-ASCII object names #8850
  • Fixed a crash when splitting objects when the object contained zero volume parts #8931
  • The G-Code viewer did not process G10 properly, which led to incorrect temperatures shown in the preview #8941
  • Fix of object color rendering that was not possible to change after the object spit #9104
  • Re-slicing is now not needed when the user switches from the printer to the physical printer, and both have the same presets #8800
  • Fixed crash when importing invalid or corrupted G-code. A new warning window announces the imported file issue. #8252
  • The arrangement function did not work reliably for certain spacing settings. #9262
  • Fix of auto-arrange issue for models which are placed far from the coordinate system origin #8207
  • Fix of shortcut command (cmd+1,2,3...) that did not work when using Czech keyboard layout #9345
  • Fix of ‘Send System Info' pop-up that sometimes got stuck when sending the data #9365
  • G-Code export was failing when TIMELAPSE_TAKE_FRAME string was present in custom G-Code #8827
  • Fix a crash when thick layers, thick raft, and lightning infill were selected #9399

Architecture

  • PrusaSlicer now uses wxWidgets 3.2
  • Many unit tests were rewritten from Perl to C++

Profiles

  • Creality printers added: Sermoon V1, Sermoon V1, Ender-5 S1, Ender-5 Pro, thanks @pmjdebruijn
  • Elegoo printers added: Neptune 3 Plus, Neptune 3 Max, Neptune 3 Pro, thanks @mlee12382
  • Added Rigid3D bundle, thanks @mehmetsutas
  • Added Print4Taste bundle, thanks @sasosmolej
  • Added Anker bundle, thanks @just-trey
  • Added Geeetech bundle, thanks @alexwoo1900
  • Added BIQU bundle, based on PR https://github.com/slic3r/slic3r-profiles/pull/32 by @bkonosky