PrusaSlicer 2.3.0-beta3
Summary
This is the third, hopefully the last beta release of PrusaSlicer 2.3.0, following 2.3.0-alpha1, 2.3.0-alpha2, 2.3.0-alpha3, 2.3.0-alpha4, 2.3.0-beta1 and 2.3.0-beta2. This release mostly fixes bugs found in previous beta, but it also brings several improvements, namely completely reworked Avoid crossing perimeters feature. For the new features in the 2.3.0 series, please read the change logs of the 2.3.0 alpha and beta releases.
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. If upgrading from any of the PrusaSlicer 2.3.0 alpha releases, you may consider to rename your PrusaSlicer-alpha directory to PrusaSlicer-beta.
Reworked Avoid Crossing Perimeters
Avoid crossing perimeters is an algorithm to minimize crossings of external perimeters during travels, thus reducing stringing and improving overall print quality. The algorithm we inherited from Slic3r has gained a bad reputation for being suboptimal and very slow. After analyzing various path planning strategies, we have completely reworked the algorithm in this release. The old algorithm by Slic3r tried to minimize time spent when traveling over external surfaces of an already printed object. Such strategy may have been effective in the olden days of very leaky extruders. Today stringing is more an issue than leaking, thus a different strategy is called for. The new algorithm tries to route a travel path inside object islands with a shortest path while avoiding holes and concavities, while it takes the shortest path when traveling between islands.
The old algorithm often produced travels that crossed perimeters, while the new one decreases the number of perimeter crossings to a minimum. Compared to the old algorithm, slicing time is also significantly reduced. This fixes issues #355, #587, #2213, #2495, #2872, #2899, #3185, #3307, #3466, #4102, #4219, #4881, #5120, #5177 and most likely also #2604, #2891, #3968 and #4030.
We have added a new parameter Avoid crossing perimeters - Max detour length, which allows to limit the maximal length of a detour. For example, traveling from one end of a spiral to the other end inside the spiral while avoiding crossing perimeters is likely not the best idea and a straight path should be taken instead.
Other improvements with respect to PrusaSlicer 2.3.0-beta2
- The existing 'G-Code thumbnails' parameter has been made available at the Printer Settings parameter page. The new field accepts entries such as "16x16, 220x124" describing picture sizes to be exported into the G-code file. The printer firmware or an OctoPrint plugin may then show the print thumbnail on the screen. Thumbnails were generated by PrusaSlicer 2.2.0 already, but the option was not available in GUI. (#4112)
- About Dialog newly provides a button to copy PrusaSlicer version information into clipboard. (#4990)
- PrusaSlicer newly maintains a "converted from inches to mm" flag at each object model, and this new "source_in_inches" tag is also stored into AMF and 3MF files. PrusaSlicer no more allows to convert one geometry "from inches" twice in a row, and the 'Reload from disk' action reproduces conversion from inches to millimeters. (#5007)
- PrusaSlicer no more offers conversion from inches for small objects when loading 3MFs or AMF saved by PrusaSlicer, as these are considered project files. (#5006)
- Improved error reporting when loading invalid preset bundles. The line where the error occurs is now mentioned in the error message. (#5291)
- Hotkeys to add/remove instances (+ and -) newly work in the object list, not just in the Plater 3D scene. Unfortunately this does not work on OSX with non-US keyboard layouts. (#5350)
- Minimal height of the object list has been increased. The object list was getting smaller gradually as new features were being added to the side panel. (#5162)
- Preferences dialog has grown over time and became cluttered. It is newly split into several Tabs for clarity and to fit smaller screens. (#5381)
- A new macro function
random(min, max)
has been added to custom G-code parser. The newrandom()
function returns a random number in the range specified by the parameters. The type of parameters defines the type of the output. (#4001, #5219) thanks @ardenpm. - When using Spiral Vase mode, it is not possible to print more objects or object instances unless sequential printing is active. The latter information has now been added into the error message appearing after the user attempts to add multiple objects to Plater in non-sequential mode. (#2500)
- Refreshing G-code Preview after changing visualization options should now be faster.
- The "Export to hard drive finished" notification newly fades out after 20 seconds.
- When closing PrusaSlicer while an upload of a G-code or SL1 file is in progress, PrusaSlicer newly asks whether to cancel the upload and close PrusaSlicer, or whether to open the Upload dialog and wait.
Bugs fixed, reported for PrusaSlicer 2.3.0-beta2
- The wipe tower was not correctly placed when using Arrange. This bug was introduced sometimes between 2.2.0 and 2.3.0-alpha1. (#5320)
- SL1 file was exported with a .gcode suffix if the user did not provide output file name while slicing an SLA project from command line. (#5029)
- It is no more allowed to save a Preset giving it a name containing leading or trailing spaces. This led to problems when loading config bundles containing such presets, as these spaces are ignored by the .ini file parser. (related to #5291)
- Place on face did not correctly rotate the object at specific orientations. This should now be fixed. (#5172, #5011 and #5398)
- Retraction on layer change should be disabled in Spiral Vase mode, however it was not being disabled in filament overrides. (#5004)
- Fixed a crash with Spiral Vase mode and very small objects. (#4732)
- Fixed slicing of holes in bottom layers with Spiral Vase mode. These holes were incorrectly closed, although they can be printed with no issues, as the bottom layers are not being printed with a spiral. (#3326, #5359)
- When using Spiral Vase mode, the first layer above bottom layers is printed with gradually increasing flow to avoid bulging at the beginning of the layer, where the actual distance from the previous layer is much less than the nominal layer height. As of now, the fix has been only provided for relative extruder addressing mode. (#3712, #2795).
- Fixed a crash during slicing when a volume was not intersecting any of the slicing planes. (#4060)
- Fixed a long-existing bug which occasionally introduced imprecisions into the print when the scene was repeatedly resliced after changing configuration parameters. (#5407)
- Overhang bridges should not be supported, but this behavior was broken in previous alphas, which incorrectly supported them. This should now be fixed. (#5164, thanks @supermerill)
- When no 'Pause Print G-Code' is provided in Printer Settings, the Pause Print option will no more show in the respective context menu on the vertical Preview slider. (#5142)
- When no 'Color Print G-Code' is provided in Printer Settings, a notification is emitted after the user attempts to add a color change.
- Fixed unreliable extrusion width in G-code Preview. PrusaSlicer tried to calculate extrusion width based on the extrusion height annotation and extrusion rate (E axis), but that was not quite reliable, therefore PrusaSlicer newly exports annotations for extrusion width as well. (#4936)
- New application instance is now opened with Ctrl+Shift+I, instead of the old Ctrl+I which clashed with 'Import STL'. (#4734, #4711, thanks @wavexx)
- Not all PrusaSlicer config options were exported as environment variables for post-processing scripts. (#4901)
- Post-processing scripts were not invoked when slicing from command line. (#4903)
- Importing a config bundle containing physical printer profiles did not show them until application restart. (#5393)
- The Cut tool now shows the cutting plane height in inches when the rest of the UI uses them. It invariably used millimeters in previous versions. (#5008, #5382).
- Height labels on the vertical slider in G-code Preview were sometimes too squished, especially when using variable layer height. (#5315)
- Fixed a crash when loading a configuration snapshot taken by PrusaSlicer 2.2 and older, as the folder of the new Physical Printers was missing. The missing preset folders are now ignored. (#5125)
- An error message claiming that certain infill patterns don't work at 100% density showed incorrect current infill pattern name. (#4999)
- Fixed a grammar mistake in Spiral Vase tooltip. (#5396, thanks @RichiH)
- Fixed a possible crash when generating rectilinear infill. (#5399, thanks @supermerill)
- Presets inherited from renamed presets using the old preset name in the "inherits" field were losing the "inherits" flag when importing a config bundle. (#5319)
- In case there was a profile that mistakenly claimed to 'inherit' from itself, PrusaSlicer would get stuck in an infinite loop. This is now checked for and such "inheritance" is ignored. (#4996)
- Linux specific: Fixed visual glitches when build against wxWidgets 3.0 and GTK3. (#5298, #3571, thanks @cabbey and @rmoravcik)
- OSX specific: Arrange button had wrong description (Ctrl instead of Cmd key). (#5217)
- OSX specific: Preferences dialog was missing the option to "Enable support for legacy 3DConnexion devices". If enabled, the Cmd+M shortcut to open the 3DConnexion configuration dialog works again. (#5312)
- OSX specific: Reload from disk now uses Cmd+Shift+R keyboard shortcut instead of F5.
- The Windows "How to build" guide has been improved. (#4904) thanks @darigovresearch
- Improved error reporting on badly formatted boost::format templates. (#5418)
- Significantly lowered GPU consumption when a notification is displayed in the 3D scene, which is fading out or which will fade out. We still did not solved the CPU issue, where one thread is consuming 50% of a single core. (#5402)
- Linux specific: We have reworked again (sic!) the code to align the locale of the selected language with the locales available on the target Linux box. (#3368, #5373)
Localization
- Updated dictionaries CZ, DE, ES, FR, IT, NL, PL
- Some localized UI text were mangled due to encoding mistakes. This is now fixed. (#4975)
- Several typos fixed, one even causing a crash when adding a printer profile when using Brazilian Portuguese localization. (#5418)
3rd party profiles
- Anycubic Predator: Max print height reduced to 445 mm (#5406, thanks @nordurljosahvida)
- Anycubic Kossel: Updated end G-code, before layer change G-code and output filename format template.