Skip to content

@lukasmatena lukasmatena released this Dec 5, 2020

PrusaSlicer PrusaSlicer 2.3.0-beta2


This is the second beta release of PrusaSlicer 2.3.0, following 2.3.0-alpha1, 2.3.0-alpha2, 2.3.0-alpha3, 2.3.0-alpha4 and 2.3.0-beta1. This release mostly fixes bugs found in previous beta. 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.

Improvements with respect to PrusaSlicer 2.3.0-beta1

  • When loading the presets from 3MF, AMF or G-code, PrusaSlicer used to create temporary "external" profiles. These "external" profiles were named with the name of the source file and suffixed with the name of the source profile in braces, for example "my_print.3mf (0.15mm OPTIMAL)". Starting with this release, the profiles loaded from 3MF, AMF or G-code referencing and modifying an existing local profile are no more loaded as "external", but the referenced profile is activated and modified with the loaded preset. If the referenced profile does not exist, but the profile refers to a system profile by the "inherits" field, the system profile is loaded and modified instead. This works for all profiles with the exception of multi-extruder printer with multiple filament profiles modified. In that case the first modified filament profile will be loaded as modified, while the other modified profiles will be loaded as "external".
  • Name of the active physical printer is newly stored into 3MF, AMF and G-code and re-activated after reading these files. (#5178 #5272)
  • New configuration option 'Full fan speed at layer' was added to filament settings. When set higher than 'Disable fan for the first [n] layers', the fan speed will be gradually ramped up from zero to maximum in that layer range. Ramping up the fan speed slowly should prevent rapid cooling of print bed followed by thermal runaway in case the print bed heater could not keep up with the fan. Prusa3D filament profiles were updated accordingly. (#848)
  • The stand-alone G-code Viewer newly allows to reload G-Code file from disk. This is available in File menu or by F5 keyboard shortcut. (#5360)
  • Improved reporting of errors encountered during processing of custom G-codes. The errors newly contain the offending template line with a pointer to the error location. (#1516)
  • New variable max_layer_z is now available in custom G-Codes. It represents the maximum print Z value over the already printed layers, including sequential print (unlike layer_z, which is reset to zero at the start of each object). The custom end G-codes parking the print head were updated with max_layer_z to avoid crashing the print head into already printed objects in sequential mode. (#5349)
  • Arrange function was made configurable in 2.3.0-alpha4, allowing to set spacing between objects. The spacing is newly handled independently for SLA, FDM and FDM-sequential modes. The Arrange dialog newly shows a hint "Use CTRL+Left mouse button to enter text edit mode.".
  • Linux specific: When switching language to English, PrusaSlicer newly offers both US English and UK English. Previously only "English" was offered, switching to UK English, for which the locales were often not available. (#3368)
  • OctoPrint basic auth by HAProxy has been documented in the tooltip of the "print_host" field at the Physical Printer configuration dialog.
    Please note that the user name and password need to be URL encoded by the user. (#650)

Bugs fixed, reported for PrusaSlicer 2.3.0-beta1

  • Logic of automatic selection of View mode in Preview (Feature Type/Tool/etc.) was slightly reworked so it does not switch the visualization type when not needed. Namely, when a custom tool change was present, the mode would annoyingly switch to 'ColorPrint' during any parameter change. (#5080)
  • Fixed a crash after clicking the 'Refresh printers' button in physical printer dialog for Repetier host. (#5327, #5153, #5159 thanks @mloidl)
  • The up/down keys in the G-code preview move the active vertical slider thumb again, while the left/right keys move the horizontal slider thumb when the G-code preview 3D scene owns the keyboard focus, and the hot keys are documented in the 'Keyboard Shortcuts' dialog. (#5333, #5190)
  • Custom seam enforcers were not always respected. (#5137, #5294)
    string conversion from local encoding to UTF-8. (#5180)
  • Arrange was sped up and arrange quality has been improved for specific cases. (#5223)
  • Arrange accounts for 'Extruder clearance' again when sequential printing is enabled. (#5258)
  • Arrange occasionally placed objects slightly out of bed. Also, arrange function now behaves better with broken models. (#5311)
  • 'Fill bed' result is no more applied when the operation is cancelled before finishing. Also fixed a visual glitch in the status bar while the calculation was running.
  • 'Fill bed' did not work correctly when some of the existing items were out of bed. This is now fixed.
  • A crash has been fixed when splitting a broken model. (#2209)
  • When drag & dropping multiple files onto PrusaSlicer, all files that PrusaSlicer recognizes will now be loaded, while previously loading stopped on the first non-recognized file type.
  • Print Host dialog is now shown on the same display as the main application window. (#5044)
  • Retraction / deretraction feed rates were stored with excessive resolution into G-code. (#5362)
  • Question mark keyboard shortcut now correctly opens 'Keyboard shortcuts' dialog. This was broken in previous releases, the dialog was only accessible through the top menu.
  • Windows specific: Fixed error reporting when exporting to SD card. The error message was not always shown correctly due to incorrect - Windows specific: Application icon was not correctly loaded under certain circumstances, resulting in missing icon and an error message on startup (#5254).
  • Linux specific: Fixed a crash when starting PrusaSlicer with unmounted SD card. (#5354)
  • Linux specific: Fix of a crash when deleting all instances of an object. (#5191)
  • Linux specific: Dropdowns in settings were truncated with GTK3, also Mode selection buttons (Simple/Advanced/Expert) were not rendered correctly in dark mode. (#4911, #4490), thanks @pmjdebruijn


  • Dictionaries for CZ, DE, ES, FR, IT and PL were updated by Prusa Research.
  • Fixed misleading message in Brazilian Portuguese, where the translation said "Export failed" while the export succeeded (#5314)
  • First draft of Russian translation merged, thanks @alexws54tk, @yurayko and others. The Russian dictionary is not in a very good shape and it needs more love from the community.

Contributors are welcome, please check the [localization guide (

3rd party profiles

Apple Silicon builds

We are happy to announce that PrusaSlicer can now be compiled for the new Apple Silicon ARM based architecture. Many thanks to @xarbit and @obelisk for their help in making it happen. (#5313, #5316, #5179, #5124, #5322)
The Apple Silicon builds are compiled against wxWidgets 3.1.4, while all our other builds were compiled against wxWidgets 3.1.3, therefore the Apple Silicon builds will require some additional testing.

Assets 10

@lukasmatena lukasmatena released this Nov 28, 2020 · 120 commits to master since this release

PrusaSlicer PrusaSlicer 2.3.0-beta1


This is the first beta release of PrusaSlicer 2.3.0, following 2.3.0-alpha1, 2.3.0-alpha2, 2.3.0-alpha3 and 2.3.0-alpha4. This release mostly fixes bugs found in previous alphas. For the new features in the 2.3.0 series, please read the release logs of the 2.3.0 alphas.

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 release, you may consider to rename your PrusaSlicer-alpha directory to PrusaSlicer-beta.

Improvements with respect to PrusaSlicer 2.3.0-alpha4

  • The stand-alone G-Code Viewer newly understands G-code annotations produced by KISSlicer to indentify types of extrusions.
  • The stand-alone G-Code Viewer newly shows per layer time estimates on the vertical slider for G-codes produced by Cura, Simplify3D, CraftWare and ideaMaker.
  • Previous alphas introduced hyperlinks from parameter pages to Prusa3D Knowledge Base. The hyperlink tooltip newly shows the description of the parameter in addition to the hyperlink, while it only showed the URL in alpha4.
  • Clicking the parameter hyperlink in configuration pages opens a dialog to confirm that the user wants to browse the online help. This dialog was already present in alpha4, but it only showed once and remembered the answer, while it newly offers an explicit 'Remember my choice' checkbox.
  • Wipe moves can newly be visualized in G-code preview when enabled in the bottom dropdown. This only works for G-codes produced by PrusaSlicer 2.3.0-beta1, as it relies on new WIPE_START / WIPE_END G-code decorations.
  • When drag & dropping a file onto PrusaSlicer application window, the application is newly brought to the top, so that the new dialog asking how to import the 3MF file (as project, as config file, or just import geometries) will be immediately accessible.
  • The new 'Fill print bed with instances' function and the arrangement with rotations are now faster and more reliable. The new Arrange dialog indicates (slow) at the "enable rotations" checkbox.
  • Windows specific: Configuration Wizard now allows to control associations of 3MF and STL files with PrusaSlicer, and to associate G-codes with the PrusaSlicer's own stand-alone G-code viewer. The file associations are also configurable at the Preferences dialog.
  • Legacy 3DConnection support on Windows and OSX: On Windows and OSX, PrusaSlicer communicates with the 3DConnexion driver to receive events from the 3DConnexion devices. 3DConnexion is continuously dropping support for their legacy products (sic!) and an old 3DConnexion device often produces incorrectly scaled events through the driver. We have resurrected our own configuration dialog to set the scaling of each axis. This configuration dialog is now available only if the 3DConnexion legacy mode is enabled in PrusaSlicer preferences. For the devices supported by the 3DConnexion driver it is recommended to configure the 3DConnexion settings in the 3DConnexion driver. (#4892, #4899)
  • A new parameter was added to control the length of the infill anchors: the old "infill_anchor" controls the length of the short anchor at the end of an infill line, while the new "infill_anchor_max" controls the length of an anchor connecting two infill lines, which is usually longer than the first one. More details are to be found in the tooltips of the respective parameter fields. For Prusa3D printers, the infill_anchor is set to 2.5 mm, while the infill_anchor_max is set to 12 mm for the common 0.4 mm diameter nozzle bore.

Bugs fixed, reported for PrusaSlicer 2.3.0-alpha4

  • Fixed a crash in the new algorithm for anchoring infill lines to inner perimeters. This unfortunate bug was introduced in alpha4. (#5208, #5226, #5229, #5240, #5244, #5245, #5246, #5250, #5257, #5263, #5283, #5288, #5289, #5290, #5292)
  • Fixed monotonic infill, which sometimes left gaps near the boundaries of the filled area. (#5225, #5259)
  • Right-click context menu in the scene no more shows for the wipe tower. It allowed to access options not supported for the wipe tower such as conversion to imperial units, leading to crashes. (#5234)
  • G-code preview sometimes showed incorrect colors for a multi-material print. This bug was introduced in alpha4. (#5236)
  • Arrangement did not work correctly with the wipe tower. This bug was introduced between 2.2.0 and 2.3.0-alpha1. (#5207, #5216).
  • Fixed bug in texture mipmap compression, which could have caused some crashes.
  • The preset and other combo boxes in the plater sidebar no longer react to mouse wheel scroll events. The old behavior was surprising, especially if a vertical scroll bar was active for the side bar on a small screen, where the user would expect to scroll the whole side bar. (#5231)
  • The new ruler on the vertical slider (introduced in alpha4) showed too few labels for small objects.
  • Editing SLA physical printer incorrectly showed FDM printer profile as a base.
  • Custom seam caused the slicing process to hang with complex geometries. (#5067)
  • Custom seam did not work correctly when raft was enabled or several objects with different layer height were present. (#5112, #5014)
  • Random seam was broken in previous alphas, it was not random for single-perimeter walls. (#5003)
  • Linux, macOS: make install did not correctly create the G-code viewer symlink when provided with user defined destination through DESTDIR environment variable. (#5238) thanks @Marqart
  • OSX specific: Drag & dropping a project file onto Finder icon did not work with Single instance enabled and if PrusaSlicer was already running.
  • OSX specific, Big Sur: Fixed some font issues by patching wxWidgets (prusa3d/wxWidgets@5ceb8d8, prusa3d/wxWidgets@cd9f140, #5189)
  • Fixed HTTP digest authentication on Linux and OSX. HTTP digest authentication was disabled for libcurl builds by mistake.
  • Some tracing info on G-code export was incorrectly shown as errors. (#5254)
  • Gyroid infill was dropping short infill segments. Walls with narrow infill regions were not connected at all.

3rd party profiles

Assets 10

@lukasmatena lukasmatena released this Nov 21, 2020 · 0 commits to machine-limits-config since this release

PrusaSlicer PrusaSlicer 2.3.0-alpha4


This is the fourth and hopefully the last alpha release of PrusaSlicer 2.3.0, following 2.3.0-alpha1, 2.3.0-alpha2 and 2.3.0-alpha3. This release introduces several new features, fixes bugs found in previous alphas and contains many additions and fixes in 3rd party profiles.

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 PrusaSlicer 2.3.0-alpha3

  • The Arrange function is newly customizable. Right-clicking the 'Arrange' icon at the top toolbar opens a dialog to tune distance between objects and to allow rotation of objects around their Z axis during the arrangement. The arrangement settings are not saved in the project, but they persist between sessions in PrusaSlicer.ini. (#414, #3268)
  • New 'Fill bed with instances' feature fills the print bed with the maximum number of copies of a selected object. This new feature is accessible from the context menu after right-clicking on an object. (#1350)
  • Anchoring of sparse infill to an inner-most perimeter has been reworked to never overlap anchor lines one over the other. The old algorithm produced over-extrusions (left image), while the new algorithm (right image) does not. (#332 , #4076, #4204)
  • Length of the sparse infill anchors may newly be configured with the new "infill_anchor" parameter. Setting the "infill_anchor" parameter to zero disables infill anchoring completely. (#1451, #5078)
  • The Adaptive Cubic and Support Cubic infills newly anchor the internal dense infill lines to the outer sparse infill lines, which is quite critical for printing PETG and similar materials. Anchoring of the dense internal infill lines respects the "infill_anchor" settings, however the length of the internal anchors is capped to 5x infill line width. The following picture shows 2 mm long anchors at both the sparse and dense infill lines.
  • New infill type: Aligned rectilinear infill is a variant of the old Rectilinear infill, which extrudes each layer with the same orientation. (#1938) thanks @m-schubert
  • The G-code preview legend was extended when using the ColorPrint feature to show active filament colors and color changes by color boxes. (#5072)
  • The stand-alone G-Code Viewer newly shows names of used Print/Filament/Print profiles.
  • When drag and dropping a project file (3MF or AMF) onto the PrusaSlicer window, the user is newly asked whether to 1) open the project (that means the plater will be cleared first), 2) import just the geometry, or 3) import just the config. At the same dialog the user may choose to remember her/his decision and not ask again at the next drag & drop event. In that case the dialog may be re-enabled at application preferences.
  • Vertical slider in the G-code Preview (FDM mode) and in the layer view (SLA mode) newly shows a ruler with Z-heights. A time estimate for the respective layer is shown when hovering the mouse over the slider area.
  • A new Shift-G hotkey opens a dialog to jump to a layer in the G-code Preview.
  • Filament spool weight can newly be set in filament settings. When filled in, the 'Sliced Info' box shows the weight of the spool plus estimated filament usage for the print (and therefore minimal weight of the spool at the beginning of the print to not run out of filament). Most of the filament profiles available for Prusa3D printer profiles were updated with the filament spool weight.
  • Maximal zoom limit in the 3D scene has been increased, allowing more detailed view of the objects.
  • The parameter editor was extended in alpha3 with hyperlinks to Prusa3D knowledge base. When clicking on a label text at the parameter editor with an associated hyperlink, browser window was opened. Some users found that behavior annoying or they consider it a security risk, therefore when clicking on such a hyperlink, the user is newly queried whether to open the web browser or not, and the decision is remembered. The decision may later be reverted at the application preferences. (#5196)
  • Monotonic infill is now default for bottom layers. It has already been made default for the top layers. (#4963)
  • Font size in the G-code preview vertical slider has been enlarged to the default font size for readability. (#5121)
  • Icons and buttons in notifications were enlarged. Namely the Eject button was difficult to target.
  • Layout of the "Machine limits" parameter page was improved.
  • 'Export finished' notification is newly closed when the SD card or USB thumb drive is ejected.
  • The print bed and printer thumbnail images are newly searched for and loaded from user's "vendor" directory before the installation "resources" directory. This allows one to customize the print bed image without having to overwrite the application global resources. Because the Wizard already reads the vendor config bundles from user's "vendor" directory, this feature allows one to install new 3rd party vendor configuration just by copying his config bundle, printer thumbnail image and print bed models to user's "vendor" directory. This feature also makes development of 3rd party printer profiles easier. (#4122) thanks @aegean-odyssey
  • Localization dictionaries were updated for CZ, DE, ES, FR, IT and PL languages by Prusa Research.
  • Brazilian Portuguese dictionaries updated, thanks @BoaImpressao3D.

Bugs fixed, regressions with respect to PrusaSlicer 2.2.0

  • Arrange function sometimes placed the last object in strange positions. (#3900)

Bugs fixed, reported for PrusaSlicer 2.3.0-alpha3

  • Fixed a G-Code Viewer crash when switching to 'Tool' view with G-Codes generated by other slicers.
  • G-Code preview now works correctly when sequential print or spiral vase mode is active. (#4721)
  • G-Code Viewer: Fixed color print visualization for G-Code containing multiple extruders.
  • The stand-alone G-Code Viewer no longer modifies the parsed G-code, the access is read-only. (#5079)
  • Fixed "G-Code Preview did not show after a language was changed". (#5098)
  • Fixed vertical spacing issues in Configuration Wizard so it can accommodate an increasing number of printers.
  • 'Test' button in physical printer dialog is now being correctly updated.
  • OSX specific: Fixed a multi-display issue: Modal dialogs now correctly open at the monitor of its parent window.
  • OSX specific: Fixed a layout glitch of the mode selection buttons.
  • OSX specific: Fixed scaling of the G-code preview legend after the application window was moved from Retina to non-Retina display and vice versa.
  • Windows specific: Fixed incorrect layout of widgets in configuration pages when two monitors with different DPI are used.
  • Linux / AppImage specific: Fixed crash on startup on some systems due to boost::filesystem::canonical() issues. (#4973)
  • Linux (GTK3): Fixed layout issues in preset editor pages. (#5081)
  • Linux (GTK3): Spin controls in preset editor pages only showed one of the up / down buttons. (#5053)
  • Linux (GTK3): Fixed wrong background color of parameter groups in preset editor pages. (#5062)
  • Fixed crash when adding a Repetier Server Physical Printer with 2 printers . (#5153) thanks @mloidl

3rd party profiles

What is in the working

  • We are looking into ARM builds for the Apple Silicon. It is reported that PrusaSlicer 2.3.0-alpha3 is running happily on the new ARM based Macs (#5124), however we would like to evaluate performance drop of the Rosetta2 emulation layer.
Assets 8

@lukasmatena lukasmatena released this Nov 4, 2020 · 377 commits to master since this release

PrusaSlicer PrusaSlicer 2.3.0-alpha3


This is the third alpha release of PrusaSlicer 2.3.0, following 2.3.0-alpha1 and 2.3.0-alpha2. This release mostly fixes bugs found in previous alphas, but it also adds several new features (such as Repetier server support) and 3rd party profiles.

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 PrusaSlicer 2.3.0-alpha2

  • The descriptions of configuration parameters in settings tabs now work as hyperlinks that open the respective page in our online help center. There is no hyperlink when the page does not exist for the parameter.
  • Added support for Repetier server print host. (thanks @docbobo, #4384)
  • New option in Preferences allows to invert mouse wheel for zooming (#1336, #4395, #4701)
  • OSX specific: Settings dialog for 3DConnexion devices (Cmd+M) was enabled again to allow configuration of speed. The dialog was removed in 2.3.0-alpha1 in hopes that all related settings would be configurable in driver settings directly, but this turned out not to be the case for old 3DConnexion devices, which are not supported by the 3DConnexion driver correctly (#4892)
  • G-Code Viewer is now able to extract config from gcode created by Slic3r and Slic3rPE (#4982)
  • G-Code shows name of loaded .gcode in the title bar
  • G-Code Viewer reports invalid .gcode files
  • New icons for standalone G-Code Viewer
  • Tool marker in G-Code preview is visible by default when the horizontal slider is not at its end position.
  • Configuration snapshots were extended to capture and restore SLA print profiles, SLA material profiles and Physical printers configuration.
  • Reworked Export finished notification. It now contains path to G-code, "Open folder" hyperlink and Eject removable media button.
  • Renamed "FDM Support Editing" to "Paint-on supports" and "Seam Editing" to "Seam painting", new icon for the paint-on supports gizmo.
  • Linux: Integration of Flatpak configuration files thanks to @xarbit (#3064, #4039)
  • Linux: Added a desktop file for standalone G-Code Viewer
  • Filament stats exported to G-code are now exported with higher precision to match values shown in the UI (#780, thanks to @stelgenhof)
  • Unmount message slightly reworded by @vranisimo, thanks (#4523)

Bugs fixed, regressions with respect to PrusaSlicer 2.2.0

  • Switching of parameter pages is now faster. The lag was quite noticeable on Windows.
  • Fixed unexpected switch to non-perspective camera in certain scenarios (#4987)
  • Place on face sometimes positioned the object slightly inclined instead of perfectly flat (#3505)
  • OSX specific: Mouse position was not correctly calculated with Retina display when the mouse wheel was being rotated

Bugs fixed, reported for PrusaSlicer 2.3.0-alpha2

  • Windows: Previous alpha did not start on Windows 7 (#4972, #4974, #4979, #4994)
  • Fixed incorrect time estimates (#4986, #5066)
  • G-Codes for printers not supporting remaining times contained internal G-Code annotations as comments by mistake
  • Horizontal slider in 3D preview is correctly updated when 'Sequential slider only applied to top layer' preference option is toggled.
  • Horizontal slider range is correctly updated when individual G-code features are turned visible or invisible.
  • Fixed crash in monotonous infill happening in very specific geometry situations.
  • Notifications were sometimes erroneously shifted to the left in Preview mode.
  • Shift+Tab erroneously showed/hid the sidebar in the standalone G-Code Viewer (#5009)
  • Parsing of the G-Code annotations was made more specific so that comments provided by the user through custom G-Codes will not be interpreted as PrusaSlicer's own annotations (#4992)
  • Linux: Standalone G-Code Viewer did not work correctly when started from PrusaSlicer or with a .gcode file as an argument (#5013)
  • Linux: Fix crashes on Linux when incompatible libpng version was installed in system (#4908)

New 3rd party profiles

Assets 10

@lukasmatena lukasmatena released this Oct 24, 2020 · 502 commits to master since this release

PrusaSlicer PrusaSlicer 2.3.0-alpha2


This is the second alpha release of PrusaSlicer 2.3.0, following 2.3.0-alpha1. This alpha adds several new features and improvements and it fixes bugs found in the first alpha.

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. On Linux system, this version also changes the location of the configuration directory (see below).

Improvements with respect to PrusaSlicer 2.3.0-alpha1

  • A new RepRapFirmware G-Code flavor was added. RepRapFirmware has deprecated usage of M104 for temperature changes in favor of G10. The new flavor supports the new behavior. We have decided to keep the old RepRap/Sprinter flavor for compatibility with older firmware implementations. (#4553, thanks to @ardenpm)
  • When any gizmo is open (such as supports/seam editing) it is now possible to use Ctrl + left/right mouse click to pan and rotate the camera. This makes it easier to manipulate the objects when zoomed in during painting supports, seams and such.
  • The cog button at the Printer Settings page can newly be used for both adding and editing a Physical Printer preset, while the cog button was disabled in the 1st alpha when a logical Printer preset was selected. Also the delete button at the same page can newly be used to delete a Physical Printer profile completely (#4891).
  • Support for DuetSoftwareFramework print host has been added (#4345, thanks to @wilriker).
  • New icons for the standalone G-Code Viewer were added.
  • Configuration updates now use https instead of http (thanks @onovy, #4213)
  • Linux specific: "make install" newly installs PrusaSlicer desktop integration, and a prusa-gcodeviewer symlink to prusa-slicer is created as well. This should help the distro maintainers to integrate PrusaSlicer.
  • Linux specific: Configuration directory was moved into ${XDG_CONFIG_HOME} directory, as dictated by XDG Base Directory Specification. The application will inform the user about the change and hint where to move the existing configuration data when ran for the first time (#2911)
  • Unified wording in Printer Settings (deretraction changed to unretraction) (#3541)
  • We improved error reporting in case export of G-code to a removable drive fails. We hope that this will help us to explain some yet unexplained G-code export issues.

Bugs fixed, regressions with respect to PrusaSlicer 2.2.0

  • Previous alpha terminated immediately after start on macOS, unless another development build had been ran on the same machine before (#4889)
  • Fixed jerky movement of 3Dconnexion mouse in G-code view (#4888)
  • Filament preset selector was erroneously missing the option to 'Add/Remove filaments' (#4918)
  • Selected filaments in Configuration Wizard are now not silently unselected when material type is changed (#4922)
  • Colorprint was broken in multi-material mode (#4909)
  • Fixed error reporting when the application would not start due to a corrupted PrusaSlicer.ini configuration file (#4915)
  • Linux: Fixed crashes on startup when incompatible version of libpng was found in system libs (#4908)

Bugs fixed, reported for PrusaSlicer 2.3.0-alpha1

  • Ironing was not reapplied when slicing was invalidated by changing another parameter (#4510, #4900, #4937)
  • Fields in the new 'Unsaved changes' dialog are now non-editable. They were editable in the previous alpha by mistake.
  • Conversion from/to imperial units was not working correctly when the object had parts/modifiers: Offset of parts resp. modifiers and modifier type were lost.
  • Painted areas in FDM supports/seam editing were not visible when viewed exactly from the direction of the normal.
  • 'Eject drive' notification did not show up in Simple mode.
  • “Slicing finished” notification did not show up when the sidebar was collapsed.
  • Windows specific: Fixed a crash after drag-and-dropping a non G-code file onto a G-Code Viewer application icon.
Assets 10

@lukasmatena lukasmatena released this Oct 17, 2020 · 577 commits to master since this release

PrusaSlicer PrusaSlicer 2.3.0-alpha1


This is the first alpha release of PrusaSlicer 2.3.0, introducing paint-on custom FDM supports and seams, ironing of the top layers, monotonic and adaptive cubic and cubic support infills, per-extrusion g-code preview & standalone G-code Viewer, neat notification center in the 3D scene, imperial units support, SLA supports improvements, collapsible side bar, floating presets dialog and fuzzy search in parameters, physical printer settings, nine new 3rd party printer profiles and many more new features, 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.

Complete description of improvements and changes with respect to the current PrusaSlicer 2.2.0 release follows.

FDM custom supports by painting

For quite a long time already, PrusaSlicer provides support enforcers and blockers so the user has control over support generation. While this method works, it is not a pleasure to work with and manipulating the blocks where the user wants them is quite tedious.

This release brings a tool to simply paint the areas where supports should be enforced or blocked, directly on the object. The tool is available from the left toolbar and is only shown in Advanced and Expert modes. After selecting an object and clicking the toolbar icon, all other objects are hidden so they do not obscure the view, the selected object is rendered in light gray to ensure contrast and the painting tool is activated.


Left mouse button enforces supports, right button blocks them. The selection can be erased by Shift + mouse click. The size of the painting tool can be adjusted, as well as a cursor type: circular cursor paints all visible places inside the circle, possibly leaving unpainted areas in shaded areas, but never painting behind corners. Spherical cursor paints everything inside the sphere regardless of whether it is visible or not. You can also use the clipping plane tool to hide a part of the object, so that difficult to reach areas can be easily painted. The Autoset by angle button allows to select all triangles that are "more horizontal" than a threshold. This can be used as a default for further manual editing to ensure that no overhangs are left unsupported. The overhang triangles are visualized in real-time while the threshold is being adjusted.

Do not forget to enable supports if you want to actually generate them. The painted areas are equivalent to the old support enforcer/blockers, so their behavior depends on Auto-generated supports checkbox status in Print Settings (it can also be adjusted in the main window sidebar, highlighted in the picture above). When left unchecked, supports will be generated for support enforcers only:

If Auto-generated supports checkbox is checked, supports will be generated automatically, just not inside support blockers. This can be used to remove supports that are not necessary:


IMPORTANT NOTE: Your selection will not be completely obeyed when the painted region is small. The support generator itself works on a grid internally, the supported/unsupported areas cannot be infinitely detailed.

FDM seam placement by painting #946 #2527 #342 #728

Seams are inherent to FDM printing and they can negatively affect visual appearance of the model. PrusaSlicer always provided limited possibility to customize the seam placement in Print Settings to optimize for short travel moves, to keep the seams aligned on between successive layers, to randomize seam position along the contour, or to place it to the back of the model. The last option allows rudimentary manual control of seam placement by rotating the model on the build plate. In addition, PrusaSlicer always tried to hide the seams into share concave or convex corners and seam was never placed on an overhang.

This release introduces a new manual seam placement tool to provide more detailed control over the seam placement. The tool is accessible from the left toolbar and it is only shown in Advanced and Expert modes. After clicking on the icon, the user can paint 'Seam enforcers' or 'Seam blockers' on the model in a similar to how the new custom supports are painted.

The seam logic is the same as it was in previous releases, except that if there is a seam enforcer, it always places seams into the enforcer area. If there is a blocker, its area is excluded from possible seam candidates. The Nearest, Rear and Random options are still respected. When the Aligned option is active and enforcers are used, the seam is placed in the middle of the enforcer area. This allows to draw smooth seams over the model.


Two long-standing problems related to seam placement were fixed along the way:

  • Seam set to Random did not produce really random positioning in some cases #2162 (comment), inspired by #2222 thanks @DrLex0 #1409.
  • Aligned seam should now be aligned even if an object slice consists of more than one island. The seam will newly be aligned on all the islands independently.

Ironing over top surfaces, Monotonic infill

The Ironing idea was first proposed by the user "Neotko" on the Ultimaker community forum. Neotko prototyped "Neosanding" - a smoothing of top surfaces in Simplify3D by running a second infill phase at the same print height with zero or a tiny extrusion rate perpendicularly to the first infill run. The "Neosanding" was later integrated by Ultimaker into their Cura slicer. Kisslicer integrated Ironing with a small twist: The second phase is not perpendicular to the first phase, but at 45 degrees, which Johnathan, the author of Kisslicer validated to produce better results. With this release, PrusaSlicer implements Neotko's "Neosanding" at 45 degrees as in Kisslicer.

Ironing is very sensitive to accurate extruder calibration. Too little and shiny groves will be visible at the top layer, that will not be sanded. Too much and the excess plastic will be dragged by the nozzle to the edges of the top surface. One may experiment with the ironing flow, speed and spacing to achieve the best results. Ironing may also increase the print times significantly, as the second phase of top infills is usually performed with very narrow line spacing.

To improve the top surface quality without sacrificing the print time, we have developed a novel "monotonic" infill. The "monotonic" infill is the good old rectilinear infill with modified path planning: The infill lines are extruded left to right monotonically, a line is never extruded to the left of an already extruded infill line. This strikingly simple strategy leads to a homogenous texture without ridges, which are often created when the left-to-right extrusions meet with right-to-left extrusions in the center of an infill area, while printing left to right only leads to a homogenous shine. The seemingly simple left-to-right strategy is surprisingly difficult to implement optimally. We have implemented a variant of the Ant Colony System as described by Raad Salman.


Adaptive Cubic / Adaptive Support Cubic infill

The Adaptive Cubic infil was proposed by @mboerwinkle, see the discussion, and implemented for Cura by @mboerwinkle as well. The Adaptive Cubic infill works by refining those cells of an octree, that contain any object triangle. We have picked up on the idea with a handful of improvements:

  1. We have added an "Adaptive Support Cubic infill" variant, which densifies the infill below roofs, while the original Adaptive Cubic infill densifies close to any surface.
  2. We have added anchors to each infill line. This makes the infill sturdier and it was required by PETG to stabilize the extrusion flow at the start of an infill line. Anchors are not available yet in this alpha.
  3. Our implementation produces a bit less dense infill than the implementation by @mboerwinkle, as we only refine those Octree cells that contain an object surface triangle, while the original implementation tested for a bounding sphere.

We expect the Adaptive Cubic infill and the Adaptive Support Cubic infills to be useful for large prints with a large volume. For example, the Adaptive Support Cubic infill decreased the print time of the famous treefrog by MorenaP scaled to a full print bed of the Prusa i3 MK2 printer by -30% compared to a cubic infill of the same density, while 44% of material was saved.

Stand-alone G-code viewer, print simulation in time #3997

PrusaSlicer offered a rich G-code viewer since Slic3r PE 1.42, however with two limitations: It was not possible to load an external G-code and print simulation in time was not possible. With this release, we are removing both these limitations and we are adding some more features.

First, we are newly providing a stand-alone G-code viewer. One can start as many G-code viewers as he wishes either by opening a G-code from the "File->G-code preview" menu, by starting the G-code viewer application, or by double clicking on a G-code file in Windows File Explorer or OSX Finder. From the technical point of view, the stand-alone G-code viewer is a PrusaSlicer in disguise. The stand-alone G-code viewer is started as a new PrusaSlicer process. The way how the G-code viewer process is started is platform specific:

  • On Windows, the PrusaSlicer.dll contains all the code while the prusa-slicer.exe, prusa-slicer-console.exe and the new prusa-gcodeviewer.exe wrappers just load PrusaSlicer.dll with the proper parameters.
  • On OSX, the application distribution format supports a single binary, which in our case is For command line usage, this binary may be symlinked to prusa-gocdeviewer to start in a G-code viewer mode. Starting new instances of PrusaSlicer does not quite fit the OSX system, as the Finder only expects a single instance of a GUI application to be running. Thus when drag & dropping onto a dock icon of PrusaSlicer resp. G-code viewer, the file is sent to the first instance of PrusaSlicer resp. G-code viewer.
  • On Linux, we support two binary distributions: AppImage and .tar.bz2. The .tar.bz2 format contains a new prusa-gcodeviewer starter script, while the AppImage may be symlinked to prusa-gcodeviewer to start the G-code viewer. The AppImage works by mounting the zipped filesystem image embedded inside the AppImage file and starting the application from there. It is not recommended to start prusa-gcodeviewer from an already mounted AppImage, as the AppImage will be unmounted when the PrusaSlicer that mounted it closes, see the following discussion. When the user starts a G-code viewer from an AppImage PrusaSlicer application, another AppImage is mounted by the G-code viewer, which means the PrusaSlicer binary is being loaded into RAM the second time. Therefore if one is low on RAM, it is recommended to use the .tar.bz2 distribution instead of the AppImage until the AppImage is improved to support multiple processes running from a single mounted AppImage.

PrusaSlicer standalone G-code viewer tries hard to estimate the extrusion widths, layer heights, extrusion types, types of moves, layers etc. from the G-code generated by various slicers (PrusaSlicer, Cura, Simplify3D, IdeaMaker). The G-code itself does not contain all the information mentioned above, thus the G-code is usually augmented with slicer specific comments. To support visualization of extrusion types and extrusion widths reliably for G-code generated by PrusaSlicer, the G-code generated by PrusaSlicer is newly augmented by the following comments: ";TYPE:", ";HEIGHT:" and ";LAYER_CHANGE", where these comments are only exported when the extrusion type, layer height or layer index changes. In addition, the following annotations are exported for the G-code events inserted on the vertical slider in the G-code viewer: ";COLOR_CHANGE", ";PAUSE_PRINT" and ";CUSTOM_GCODE". G-code generated by older PrusaSlicer which does not contain these new annotations will still be displayed, but the extrusion widths or extrusion types may not be shown reliably.

In the stand-alone G-code viewer or once the final G-code is available after slicing, a new horizontal slider shows up, limiting visualization of extrusions and travel by time thus allowing simulation of the print in time. By default the new horizontal slider limits visualization of the last layer selected by the vertical toolbar. Alternatively the horizontal slider limits the extrusions in all layers selected by the vertical slider. In the first case, if the horizontal slider limits visibility of the top layer, then the other layers below are rendered in a gray color. We borrowed this visualization strategy from the Craftware user interface as Cura did.

The legend newly shows the print time and the print time fraction per feature (perimeter, infill etc.), and the legend labels serve as buttons to show / hide the particular extrusion time. The print time estimate is available in both the G-code preview after slicing and in the stand-alone G-code viewer.

Single vs. multiple instances, sending arguments to an existing instance

Some users prefer to work with a single instance of PrusaSlicer only, while other users love to be able to switch between multiple PrusaSlicer instances. While Windows and Linux support multiple instances of an application by default, OSX framework keeps just a single instance of an application running. We newly allow both scenarios on all platforms: The Windows and Linux users may now keep just a single instance of PrusaSlicer running, while the OSX users may launch additional instances of PrusaSlicer. Additionally we allow opening a new PrusaSlicer instance from a running PrusaSlicer "View -> Open New Instance" menu and from Dock context menu on OSX #2929 #4447.

When one clicks on the PrusaSlicer icon to open PrusaSlicer, either a new PrusaSlicer instance is started or an existing PrusaSlicer instance is activated based on the "single instance" preferences settings. The initial value of "single instance" matches the platform default: Multiple instances are allowed on Windows and Linux, while a single instance is allowed on OSX. When one drag and drops an STL or 3MF onto a PrusaSlicer icon and "single instance" is enabled, the file is opened in an existing PrusaSlicer instance. Drag and dropping a G-code file onto a PrusaSlicer icon opens always a new G-code viewer.

An instance of PrusaSlicer is identified by its full path to the PrusaSlicer binary, thus if "single instance" is enabled, PrusaSlicer will allow a single instance of each PrusaSlicer binary to run. Thus different versions of PrusaSlicer will not affect each other, alphas and betas included.

The command line supports a new "--single-instance" or "--no-single-instance" argument to override the "single instance" settings. For example, one may prefer to open a new instance of PrusaSlicer when drag & dropping an STL over the PrusaSlicer icon, while one may want to send an STL from Autodesk Fusion 360 to an existing PrusaSlicer instance by providing a "--single-instance" command line argument when starting PrusaSlicer from Fusion 360.

OSX specific: The OSX Finder and Dock only support a single application instance. Thus when double clicking on a PrusaSlicer icon, the existing PrusaSlicer instance is always activated independent of the "single instance" settings, and drag & dropping a file onto a PrusaSlicer icon in Finder or Dock opens the file in some random, likely the first instance of PrusaSlicer. However when starting from terminal, the "single instance" preferences settings is respected. We are aware that the approach of starting multiple instances of the same application on OSX is neither recommended nor supported by the OSX framework, however for technical reasons this was the quickest way to deliver multiple PrusaSlicer windows and the stand-alone G-code viewer.

While one may argue that one should open multiple windows of PrusaSlicer inside a single process instead of starting a new process for each PrusaSlicer instance, we do not think there is any memory issue with our approach as the program image is shared among instances and the base private program memory is quite low. Most of the memory is allocated by the models, slicing, undo/redo and mainly the G-code preview, therefore starting new instance for each slicer consumes just a tiny bit more than it would if the multiple windows were managed by a single process.

Technical details: PrusaSlicer writes a lock file into its cache directory to detect another instance running. The name of the lockfile is constructed from the hashed path to the PrusaSlicer process and a ".lock" suffix. Passing commands between PrusaSlicer instances is platform specific:

  • On Windows, a Window message is sent to an existing PrusaSlicer main window, where the PrusaSlicer main window is identified by a window name, window class name and a hash of the PrusaSlicer proces path.
  • On Linux, PrusaSlicer instances communicate over DBUS, where each PrusaSlicer instance registers as a listener with the following name: "com.prusa3d.prusaslicer.InstanceCheck.Object" + hash of the PrusaSlicer proces path.
  • On OSX, NSDistributedNotificationCenter API is used. Each instance registers itself to receive a message named "OtherPrusaSlicerInstanceMessage" + hash of the PrusaSlicer process path.

Unsaved Changes dialog #3049

When closing the application or switching profiles, PrusaSlicer newly opens a dialog with the listing of modified unchanged parameters, their old and new values. The user may decide to discard all the changes, or one may save some or all the changes into user profiles. When switching profiles, the modified parameters may also be transferred to the activated profiles.

Unsaved Changes

One may decide to always save or always discard the parameter changes by checking the "Remember my choice" checkbox at the "Unsaved changes" dialog. Such decision may later be reverted in the Preferences dialog. The user interface design and code was inspired by @kumpuu #3285.

When switching the Printer profile, the active Print and Filament profiles may no more be compatible with the new Printer profile. The old PrusaSlicer selected a Printer and Filament profiles marked as "default" in the activated Printer profile. The new PrusaSlicer selects the new Print profile with the following priority:

  1. Compatible Print profile with the same logical name aka alias.
  2. Prefered Print profile with the same layer height.
  3. Compatible Print profile with the same layer height.
  4. Prefered Print profile.
  5. Any compatible profile.

Thus when switching the printer from "Prusa i3 MK3" with the "0.2mm SPEED" Print profile active to "Prusa i3 MK2", "0.20mm 10mms Linear Advance" Print profile is newly activated, while the previous PrusaSlicer would select the default, which is "0.15mm OPTIMAL". The same logic applies to the selection of Filament profile, while the symbolic "filament_type" parameter is matched instead of the layer height.

Improved filament installation

In PrusaSlicer, not all installed filaments are necessarily compatible with all installed printers. We require the printer vendor to explicitly enumerate those filaments, which were verified to print correctly with his printers.

In this version, we have updated the Filaments selection page of the Configuration Wizard to reflect, that an installed filament may not be available for each installed printer. Namely, we are marking the filaments, which are incompatible with some of the installed printers with an asterisk. In addition, compatible installed printer profiles are listed out for the selected filament profile at the bottom of the Filaments page.

Physical Printers settings #1880 #3050 #4217 #4549

Historically PrusaSlicer stored the printer network connection settings into the Printer profile. This became inconvenient with the introduction of read-only vendor specific system profiles, where the user had to derive his own Printer profile from a system one just to be able to configure G-code upload over the network. In addition, storing the network connection information into the Printer profile posed a security risk, which we had to patch by suppressing export of the network connection into the 3MF, G-code and Config Bundles anyway.

Starting with this version, PrusaSlicer separates the physical printer connection settings from the Printer profile into new Physical Printer profiles. A Physical Printer profile references one or more Printer profiles of the same technology (either FFF or SLA), and it assigns a network connection information to these printers. One does not have to create a Physical Printer profile if one does not need to connect to a printer over the network. The new Physical Printers are listed in a new section in the Printer selection combo box after the system and custom Printer profiles.

A new Physical Printer profile is created by clicking on the "cog" icon right to the Printer profiles combo box, or by selecting the "add or remove printers" item in the Printer combo box. The Physical Printer profile editor opens also when clicking on the new "cog" icon in the Printer settings tab. The Physical Printer profiles are being stored into PrusaSlicer/physical_printer directory.

When first installing PrusaSlicer 2.3.0-alpha1, the network connection information is removed from existing user Printer profiles and converted to new Physical Printers profiles giving them generic names "Printer 1, Printer 2, ...". The user is advised to review and rename these Physical Printer profiles generated by the conversion process. The following configuration keys are moved from Printer to Physical Printer profiles: "host_type", "print_host", "printhost_apikey", "printhost_cafile", "printhost_authorization_type", "printhost_user", "printhost_password". The last three keys are new to support SL1 HTTP digest authentication, see the following section.

If some parameter of a Printer profile is modified, a "(modified)" suffix is newly shown not only for the modified Printer profile in the list of Printer profiles, but also for all the associated Physical Printer profiles.

For security reasons, the "Export Config Bundle" function does not export the Physical Printers. To help sharing the complete PrusaSlicer profiles between ones computers, we added "Export Config Bundle with Physical Printers" option.

SLA improvements

  • It is newly possible to import both a model and its print profile from an existing .SL1 archive. The feature is available through the "File->Import->Import SL1 archive" menu. Note that the original model is not available in the SL1 archive, it has to be reconstructed from the slices, thus the imported mesh will be visibly discretized and the supports (if they were used) will be fused with the object.
  • HTTP digest authentication (RFC 2617) is newly supported by PrusaSlicer to send files to an SL1 printer. HTTP digest authentication is configured in the new Physical Printers configuration dialog.
  • Optimize orientation now orients parts flat to the print platform when configured to print directly on the platform.
  • Configuration option Pad around object is only accessible from Pad parameter subpage. It was confusingly mirrored in Supports in the past.
  • The bed texture is no more shown when looking from below while the support points or holes editing is in progress. It is to provide clear view of the bottom of the model with no obstructions.
  • SLA support points and holes are re-projected on the mesh during loading and after Netfabb repair. This ensures that no support point or hole ends up off the mesh.

Various improvements regarding supports and hollowing were implemented. See the following table for more information and comparison with the last release.

SLA mini supports in regions where the normal supports would not fit.
More even distribution of support points on large areas and edges.
Improved supports of overhangs created by hollowing.
Improved hollowing of meshes with intersecting or overlapping watertight parts.

New 3rd party printer profiles

The following 3rd party printer profiles were added or improved:

Collapsible side bar, floating presets dialog etc.

PrusaSlicer is being used on various form factor devices ranging from ultrabooks and laptops to multi-screen workstations. One application layout does not fit them all, therefore we implemented the following layout options:

  1. The good old mode with Plater, Print, Filament and Printer tabs. The good old layout fits larger size laptops well.
  2. A bit of screen real estate is saved by hiding the tabs when the Plater is active. The configuration tabs are accessed by a new "cog" button at the top toolbar.
  3. Floating dialog mode, where the Print, Filament and Printer pages are shown in a floating dialog, which opens with the new "cog" button at the top toolbar. The floating dialog mode is handy on a multi-screen workstation and using it to fine tune print parameters with the background processing enabled is a joy #4093.

To support small laptops and ultrabooks, we have implemented the following new features:

  • The side bar at the Plater is now collapsible if enabled in application preferences #2075 #3325.
  • The side bar is collapsed with a Shift-Tab shortcut, thanks @wavexx #4735.
  • Toolbars in the Plater are newly scaled down until they fit the screen.

Notification center

Starting with this version, many non-critical notifications and user requests which used to pop up as modal dialogs are newly displayed as notifications at the right side of the 3D scene. The following notifications are shown by the new notification center:

  • New PrusaSlicer version or configuration profiles are available for download. This notification is shown at every application start up, therefore one no more misses an update.
  • "Slicing complete" with time estimate and "Export G-code" hyperlink is shown as a notification if the side bar is collapsed.
  • "Export of G-code to removable media finished" with a hyperlink to unmount the removable media.
  • "Unmounting of a removable media succeeded / failed" #4821.
  • "Slicing error" reporting inconsistency in slicing parameters that prohibits slicing, for example the "extruder collision with an object" in sequential print #4606.
  • "Slicing warning" reporting possible problems of the print. Newly the "Empty layers detected" is reported as Slicing warning instead of stopping the slicing process, allowing to print stacked objects, for example the COVID-19 face shields #4062 #4756.
  • Objects partially / fully outside the print volume. This notification used to be displayed at the bottom of the 3D scene, it is now shown by the notification center.
  • 3D Mouse detached.

The notifications are sorted by severity with the most severe notifications at the bottom.
The update notifications, slicing finished, unmounting successful, 3D mouse detached and similar notifications fade out after a short time interval, while the warnings and errors are displayed as long as they are valid. Fading out of a notification is suppressed if the mouse cursor hovers over the notification.

Support for imperial units #1041 #1407 #1463 #1811 #2570

We newly provide support for imperial units for our US customers. PrusaSlicer uses metric system internally, namely all internal dimensions (model sizes, model positions, print & printer profiles and G-code) are measured in millimeters. To make the life easier to our US customers, we newly support imperial units in the following way:

  • The "Object manipulation" panel newly offers an "Inches" check box. If enabled, the object position and scaling is presented and accepted in inches. PrusaSlicer still keeps the internal dimensions in mm, however they are converted from/to inches when presented to the user.
  • The state of the "Inches" checkbox at the "Object manipulation" panel persists in application preferences as "use_inches" option. Initial state of the "Inches" checkbox is set at the last page of the application configuration wizard.
  • The filament usage is shown in inches if the "Inches" mode is enabled.

The models are still imported / exported in millimeters by default, as most of the models available are in millimeters. However, we newly support the following:

  • Importing STLs saved in inches by menu File->Import->Import STL (Imperial Units). STLs are converted from inches to millimeters on import.
  • Object and Volume context menu newly contain "Convert from Imperial Unit" to scale from inches to millimeters after an object with dimensions in inches was loaded as in millimeters.
  • Object and Volume context menu newly contain "Revert conversion from Imperial Unit" to revert the above, or if the user loaded an object in mm through "Import STL (Imperial Units)".
  • If the model loaded is very small, a conversion from inches to millimeters is newly offered #4521.

Fuzzy search in parameters #1504

PrusaSlicer newly allows one to search for a parameter to quickly access particular parameter page and parameter field. The search is accessible from both the Plater top toolbar and from the Print/Filament/Printer parameter pages, or with a Ctrl-F hot key.


A modified fuzzy search algorithm by @forrestthewoods is used, which works similarly to the fuzzy search algorithm in Sublime editor. If the application is switched to a local language, both the localized names and English names are searched through. ASCII folding is applied, so one may for example type "cistici vez" to search for "Čistící věž".

Other UI improvements

  • Copy/Paste is newly supported for the custom parameters and layer ranges in the object list.
  • One may newly merge multiple objects into one multi-part object by selecting multiple objects in the Plater or in the Object list and by executing "Merge" from the pop-up menu.
  • Splash screen is newly shown for both PrusaSlicer and the new G-code viewer. Splash screen may optionally be disabled in the preferences.

Other new features and improvements

  • Windows specific: PrusaSlicer starts significantly faster due to delayed creation of parameter pages.
  • It is newly possible to change the G-code generated for the Color Change, Tool Change and Pause events placed at the layer slider using the new "color_change_gcode", "pause_print_gcode" and "template_custom_gcode" variables #3722.
  • Linux specific: Various Linux distros store system SSL certificates at a different locations, which our binary builds were not aware of, breaking automatic profile updates on Fedora and possibly on other Linux distros. PrusaSlicer newly searches for the openssl certificates at locations used by common Linux/Unix distributions on first application start-up, the user is informed about where the certificates are found and the user is asked to accept these certificates #3851 #4448.
  • Windows specific: PrusaSlicer newly communicates with the 3DConnexion devices using the 3DConnexion driver, thus it is possible to configure 3DConnexion device for PrusaSlicer in the driver, for example it is now possible to swap the axes of the 3D mouse in the 3DConnexion driver. The latest 3DConnexion driver already installs c:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\Cfg\prusa-slicer.xml, however if you created this file manually, you are advised to remove it before starting the 3DConnexion driver update as the driver update will keep the old file. The 3DConnexion driver does not install a configuration file for the new prusa-gcodeviewer.exe, you have to copy the prusa-slicer.xml to prusa-gcodeviewer.xml and edit it to get the 3D mouse working in the G-code viewer. We are in touch with 3DConnexion to fix that #3864 #3933 #3937 #4104.
  • The G-code placeholder parser supports the following new keys: "print_bed_min", "print_bed_max", "print_bed_size", which are calculated as a bounding box of an existing "bed_shape" vector of points.
  • The G-code placeholder parser also newly supports the following new keys: "first_layer_print_convex_hull", "first_layer_print_min", "first_layer_print_max", "first_layer_print_size", defining convex hull of the first layer. Please note that the extrusions generated by the custom G-code are not accounted for.
  • OSX specific: Implemented automatic switching of color schemes (light to dark and vice versa) on a system notification.
  • Custom G-code texts now use a monospaced font, thanks @wavexx #4747.
  • It is now possible to stack objects one over the other, however the user will be informed with a notification and when exporting the G-code about empty layers in the print #4041 #4062 #4756.

Bugs fixed

  • Windows specific: Fixed loading of PrusaSlicer profiles from a path containing a symlink. The issue is caused by a buggy boost::filesystem::canonical() implementation, which we replaced with boost::filesystem::absolute() #732 #3956 #4557.
  • Linux specific: Fixed crash on startup under Wayland. Fixed by setting env "GDK_BACKEND" to "x11" #2515 #4691.
  • Fixed under-extrusion upon leaving the MMU2 wipe tower. Wiping moves performed before moving away from the wipe tower were replaced by scheduling a regular wipe that is performed after the regular G-code generator regains control from the wipe tower generator. This makes it consistent with wipes on the model and gets rid of the unretracted travels #2834.
  • The print bed is now limited to 1.2m x 1.2m, which is required by the range of a 32 bit fixed point signed int we use to represent coordinates #2877.
  • Linux specific: LANGUAGE environment variable was not respected #2970.
  • Windows 10 specific: Fixed "rubber band" effect when dragging windows on Windows 10 build 2004 #3009 #4636 #4838 #4886.
  • PrusaSlicer does not support "Support material" overrides per layer range, therefore this option has been removed #3060 #4100.
  • Fixed position of multi-material purging lines on rectangular beds with non-standard origin #3805.
  • Linux specific: Fixed crashes due to a bug in accessing bitmaps for the object list #3837.
  • Windows specific: The 3Dconnexion 3D mouse produced scrolling events in case the mouse cursor was over a combo box. This is now fixed with an installation of the latest 3DConnexion driver #3864.
  • OSX specific: Selection of profiles by the combo boxes was case insensitive, making it impossible to select a user preset, if its name differed in case only #3889.
  • Fixed order of processing configuration files when slicing from command line. The priority of config values is now: 1) Config keys from command line, for example --fill-pattern=stars (highest priority, overwrites everything below), 2) Config files loaded with --load, 3) Config from 3mf (lowest priority) #3893.
  • Fixed crash when trying to test-connect to a FlashAir SD card given an invalid IP address #3899.
  • Windows specific: Fixed language selection issue for country specific language variants. For example, pt_PT dictionary was incorrectly loaded by PrusaSlicer instead of pt_BR for Brazilian Portugese #3901.
  • Improved error reporting when loading presets with option keys or option values that our PrusaSlicer does not understand. This applies to configs added by some forks of slic3r, for example SuperSlicer #3909.
  • OSX specific: Fixed crashes when switching printers or attempting to modify the bed shape or size due to a bug in Retina scaling support #3916.
  • Fixed extremely wide wipe tower with 0.35mm FAST profile #3919 #4361 #4541.
  • MMU specific: Fixed disabling of linear advance with RepRap firmware #3965.
  • Windows specific. Fixed scanning of floppy drives when searching for a removable media as a target for G-code export #3967.
  • Fixed crash due to a typo in Korean localization #3983.
  • Fixed layout of the object manipulation panel in French by shortening the labels #4035.
  • The "Eject removable media" is newly shown first after the export is finished #4212.
  • Fixed an issue in arrangement, where some objects were left out of bed after arrange #4329.
  • Windows specific: Improved scanning of removable drives. PrusaSlicer newly registers for removable media insert / eject notifications, therefore the devices are no more scanned regularly, spinning up removable hard drives. Thanks @mjgtp from, see the following discussion #4071.
  • Fixed a crash when slicing a specific SL1 project #4836.
  • Fixed print-out of the final G-code file name when slicing from command line. The macros in the file name template are now correctly substituted #4872.
  • Fixed cutting of objects by a plane in SLA mode with supports already calculated, where the object elevation was not being taken into account.

Architecture, infrastructure

  • We have updated to wxWidgets 3.1.3.
  • The dependency build script now supports a new parameter DEP_WX_GTK3=on/off to build wxWidgets against GTK3.
  • We newly provide Linux/GTK3 builds.
  • Improved the "Update How to build - Mac OS" documentation, thanks @danhae #4630.

Known issues

  • The new G-code viewer does not correctly support sequential print and spiral vase. We are working on that.
  • OSX Big Sur specific: Bold fonts are not displayed as bold, combo boxes at the bottom of the G-code viewer open down, thus they may end up out of the screen. 3DConnexion does not provide a correctly signed driver, which could install on Big Sur.

What is in the working

We are revamping the "Avoid crossing perimeters" feature.

Where you can help

We accept translations and 3rd party printer profiles.

Assets 10

@lukasmatena lukasmatena released this Mar 21, 2020 · 2042 commits to master since this release

PrusaSlicer PrusaSlicer 2.2.0


This is final release of PrusaSlicer 2.2.0 introducing SLA hollowing and hole drilling, support for 3rd party printer vendors, 3Dconnexion support, automatic variable layer height, macOS dark mode support, greatly improved ColorPrint feature and much, much more.

This release follows releases of 2.2.0-rc5, 2.2.0-rc4, 2.2.0-rc3, 2.2.0-rc2, 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. Several bugs found in the previous release candidate are fixed in this final release. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Changes with respect to PrusaSlicer 2.2.0-rc5

  • Linux specific: 3DConnexion SpaceNavigator USB did not work with AppImage, solved with help of @Area5142 and @probonopd. (#3388)
  • Linux specific: MimeType was added to AppImage metadata, so that the desktop integration knows what file types PrusaSlicer could open. (#2732)
  • It is now possible to swap the y and z axes for 3Dconnexion devices. This can be configured in the 3Dconnexion settings dialog which opens on Ctrl+M. (#3852)
  • Fixed occasional duplicate extrusions when the scene was re-sliced after a parameter change. This was a long-existent bug appearing in both 2.0.0 and 2.1.0 releases. (#2540, #2803)
  • Fixed crashes on undo/redo in certain scenarios.
  • 'Clip multi-part objects' was set to true in the default Print Settings profile. This is a legacy config option from the original Slic3r and it will likely be removed completely in future releases. (#2803 (comment))
  • Fixed incorrect processing of G92 code by the G-code preview in case the G92 code was accompanied with an unusual axis, for example G92 A0 B0. This lead to the G-code preview to be shifted towards the print bed. #3510
Assets 8

@bubnikv bubnikv released this Mar 19, 2020 · 2053 commits to master since this release

PrusaSlicer PrusaSlicer 2.2.0-rc5


This is a fifth, hopefully the last release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-rc4
2.2.0-rc3, 2.2.0-rc2, 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found in the previous release candidate. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Bugs fixed with respect to PrusaSlicer 2.2.0-rc4

  • Fixed arrangement with items larger or equal to bed dimensions. The minimum distance between objects is no more enforced at the edge of the print bed. (#1186, #2897)
  • When changing a modifier parameter at the side panel, the change was not accepted if one switched to a different object or volume without pressing the Enter or Tab key before switching to a different object or volume. (#3303)
  • Fixed reset of a modified preset to its original state by re-selecting the preset combo box at Plater. Due to a regression bug introduced in PrusaSlicer 2.2.0, a different, often incompatible preset was selected erroneously. (#3755)
  • Fixed double extrusion of perimetes with Wipe to Infill enabled. This was a regression to PrusaSlicer 2.2.1 due to some refactoring. (#3842, #3853)
  • OSX specific: Fixed crash at SLA hollowing on older Intel architectures due to GMP and MPFR libraries being erroneously compiled for latest Intel architecture. (#3847)
  • Fixed missing reset call for fan speed visualization, thanks @rongith. (#3858)
  • Improved rendering of tooltips in the 3D scene. Tooltip rendering in the 3D scene is no more using a native system tooltip widget, but the tooltip is rendered inside the 3D scene using OpenGL, which is more reliable especially on OSX and when dragging the manipulator gizmos like rotating or scaling an object.
  • Translations for PL, IT, FR, ES, DE, CZ and JA were finalized.
Assets 8

@bubnikv bubnikv released this Mar 15, 2020 · 2096 commits to master since this release

PrusaSlicer PrusaSlicer 2.2.0-rc4


This is a fourth release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-rc3, 2.2.0-rc2, 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found in the previous release candidate. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Improvements with respect to PrusaSlicer 2.2.0-rc3

  • A new "Draft shield" option has been added to produce a skirt as high as the highest printed object. (#2675)
  • A free camera rotation is no more forced for a regular mouse when a 3DConnexion device is plugged in. If the camera up vector does not point up because the camera was rotated with the 3DConnexion mouse, the camera is newly aligned with the screen Y axis abruptly when touching the regular mouse and a constrained camera rotation mode is active. (#3816)
  • Thumbnails for BIBO and LulzBot printers were added to installation wizard. We changed location of these thumbnails, they are newly stored inside the resources/profiles/VENDOR_NAME/ directory, and they should be named by the printer_model identifier suffixed with "_thumbnail.png".
  • The plus button to add a new layer range modifier newly grays out if is not possible to insert a new layer range and the tooltip explains why.
  • Updates to BIBO printe profiles by @photodude.
  • Brazilian Portugese dictionaries updated, thanks @BoaImpressao3D.

Bugs fixed with respect to PrusaSlicer 2.2.0-rc3

  • Full fan speed for gcode visualization was not shown as 100%, fix provided by @rongith. (#2922)
  • Eject of a removable media did not handle fails properly. A message box is newly shown if eject fails.
  • Windows specific: Detection of a 3DConnexion mouse has been refactored to not poll every 2 seconds, but to react to operating system notifications. This should resolve some peculiar freezes of the user interface. (#3424, #3515)
  • Windows specific: Detection of external drives (SD cards, USB flash drives) newly reacts to operating system notifications, so it should react faster. Still some attach / detach events are not reported by Windows, therefore the disk devices are still enumerated every 2 seconds.
  • Windows specific: The slicing service pops up error messages asynchronously. If a pop-up menu was tracked at the time the background service popped up the error message, the PrusaSlicer application was stuck. The error dialog is newly delayed until the pop-up menu closes. (#3660)
  • Opening the File menu hang on enumerating the removable drives to update the "Eject" menu item. Also due to a bug in the wxWidgets UI library, the same happened when opening the "Extruders" submenu of an object pop-up menu. This issue has bee resolved by relying on the last known state instead of blocking. (#3279)
  • The Wizard checkbox text "Remove user profiles - install from scratch" was changed to just "Remove user profiles" to indicate that this checkbox does nothing to system profiles. (#3761)
  • Fixed a vase mode issue, where the infill layers were not recalculated correctly after the number of bottom layers were changed. (#3823)
  • Removed a spurious "Unable to enumerate HID devices" console message indicating that no HID USB device was detected, which is likely fine. (#3828)
  • Fixed mouse handling issue at the object list, which was a regression issue from PrusaSlicer 2.2.0-rc3 introduced when trying to fix #3802. (#3830, #3841)
  • Fixed wizard issues regarding upgrade from PrusaSlicer 2.1.1 to 2.2.0: Most system presets were renamed for PrusaSlicer 2.2.0 by adding the "@" character to separate logical name from the full name of the profile, and this was not being taken into account by the installation wizard correctly. (#3835)
  • Fixed installation wizard to always install at least one Filament or SLA material compatible with an installed printer model.
  • The Prusa system profiles "Generic PETG" and "Prusa PETG" are now marked as renamed from "Generic PET" resp. "Prusa PET", so that when opening an old 3MF file, links to these system profiles are not lost.
Assets 8
You can’t perform that action at this time.