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 (supermerill@e0f17bd, thanks @denis-itskovich and @supermerill)
- Fix a rare crash on startup, related to icon scaling. Thanks @LucaRood and @supermerill (ported from supermerill@c8bb0a4) #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 slic3r/slic3r-profiles#32 by @bkonosky