Bot releases are hidden (Show)
Published by lukasmatena over 4 years ago
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.
Published by bubnikv over 4 years ago
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.
Published by bubnikv over 4 years ago
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.
Published by lukasmatena over 4 years ago
This is a third release candidate of PrusaSlicer 2.2.0, following releases of 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.
Published by lukasmatena over 4 years ago
This is a second release candidate of PrusaSlicer 2.2.0, following releases of 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.
Published by lukasmatena over 4 years ago
This is a release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found the beta. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.
Unlike the alphas and the beta, the release candidate saves its profiles into PrusaSlicer directory, which is the same directory where the previous releases of PrusaSlicer keep their profiles. If you were testing the PrusaSlicer 2.2.0 alphas or betas, your profiles from the alphas or the beta would have to be manually imported into PrusaSlicer 2.2.0-rc by exporting and importing the Config Bundle.
In the PrusaSlicer 2.2.0 series we made a breaking change in handling compatibility between vendor profiles, vendor derived user profiles and user profiles (derived from the "-- default --" profile). Starting with PrusaSlicer 2.2.0, system profiles of one vendor and user profiles derived from a system profile of the same vendor are suppressed if a Print profile of different vendor or a user Print profile (derived from the "-- default --" profile) is selected. See the following discussion https://github.com/prusa3d/PrusaSlicer/issues/3729#issuecomment-592924282 why we made such a change. To use Print or Filament profiles derived from Prusa3D system profiles together with your user Print profile, you now have to detach these Print or Filament profiles from Prusa3D system profiles by removing the "inherits" field from the respective profile .ini files. We plan to add a "detach" button to the final release.
When the Printer profile derived from the Prusa3D system profile was active or a system Prusa3D profile was active, and when the Print profile with the removed "inherits" field was active (or any other profile derived from the "-- default --" profile was active), then the filament selector offered just the profiles with the removed "inherits" field (or any other profile derived from the "-- default--") profile. This behavior has been now changed, so that in this scenario the Filament selector will offer the Prusa3D vendor profiles compatible with the active Print and Printer profile as well as the user profiles (see this discussion and #3720).
When "Show incompatible print and filament presets" is enabled in preferences, PrusaSlicer allows showing incompatible presets at their respective parameter tabs by toggling the "Green flag" icon at the preset tab to a "Red flag". We implemented this feature mainly to help us debugging the profile print and filament compatibility conditions, however some of our users learned to use this feature to work around profile compatibility issues. It was not possible to select an incompatible Print profile with the "Red flag" enabled, which is possible now (#3715). Slicer was also changed to keep an incompatible preset selected at its respective tab if its respective "Red flag" is enabled. For example, if an incompatible Print preset is selected and a Printer profile is switched to another one which is not compatible with the active Print preset that was red already, the active Print preset is not switched if the Print "Red flag" is active. However, if the Print profile was compatible before the Printer profile is switched and now the Print profile becomes incompatible, another compatible Print profile is selected.
Published by bubnikv over 4 years ago
This is a first beta release of PrusaSlicer 2.2.0, following releases of 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release mainly fixes bugs found in the previous alphas. See the respective change logs of the 2.2.0 alphas for all the new features, improvements and bugfixes in the 2.2.0 series.
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.
Published by lukasmatena over 4 years ago
This is a third public PrusaSlicer 2.2.0 alpha release, following the alpha2 release (alpha3 was internal only). We consider this alpha to be feature complete to be followed by a beta release soon.
This release introduces hollowing and hole drilling in the SLA mode, improves the Color Print usability on MMU printers, introduces free camera rotation, moving / rotating of objects using cursor keys, predictable sequential print order with in 3D scene labels, Vase Mode improvements, fist Raspberry PI 4 builds, AstroBox integration and Dutch translation. This release fixes many bugs as well. Please see change logs of previous alphas (alpha1 and alpha2) for a full list of new features and bug fixes in the 2.2.0 series.
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.
Hollowing a model and drilling holes to drain resin is a very important feature that helps save material and also lowers surface area of the model slice, hence it decreases the force needed to detach the print from the display when moving to the next layer. Until now, users had to do the model hollowing in a 3rd party software and import the result in PrusaSlicer. Since this release, the hollowing has been integrated into PrusaSlicer directly. (#2054, #3219)
The model hollowing is configured with the following parameters:
Hollowing can be configured either in Print Settings, or in the new 'Hollowing' gizmo, which allows to set the parameters on per-object basis:
The clipping plane tool, which is used to peek inside an object at the SLA support points editing gizmo is newly
available at the SLA hollowing gizmo as well, and it is especially useful to review the hollowed geometry and to place the drainage holes.
As for the drainage holes, they can be placed by direct clicking on the object when the SLA hollowing gizmo is active. The holes can later be re-positioned by dragging them on the mesh. Each hole is always perpendicular to the surface and its diameter and depth can be configured (each hole can be different).
The hollowing and hole-drilling is performed after the Preview hollowed and drilled model button is pressed. Note that both hollowing and hole-drilling are computationally expensive tasks and the drilling will take some time, especially with complex models. In case the user does not press the button himself, the hollowing and drilling will be performed during the slicing process.
Please understand that if the input mesh is broken, the hole drilling algorithm may refuse to proceed to prevent program crashes or incorrect results.
Once the calculation of the hollowing and hole drilling finishes (whether triggered through the gizmo or though slicing), the hollowed and drilled mesh shows up in the 3D scene. The hollowed and drilled model is therefore also available in the SLA support point editing gizmo, allowing user to place support points inside the cavity and into the holes:
In case some parameter is changed that forces invalidation of the mesh (such as moving a hole, scaling the object, etc.), the model visualization reverts to the original object without the holes drilled and without the hollowing applied.
Important: There is currently no check that manipulation with the holes does not interfere with support points already placed on the mesh. For example, placing a support point and later drilling hole at its location results in a support point floating in mid-air. Similarly, drilling a hole, placing a point inside it and later (re)moving the hole results in a support point embedded in the object. Checks for these scenarios will be added in the next release.
The hollowing and hole drilling features rely on OpenVDB and CGAL libraries. Many thanks to the authors of the two libraries.
PrusaSlicer2.2.0-alpha1 added support for colorprint in multimaterial mode, as well as a possibility to add pauses or custom G-codes. To make the feature easier and more intuitive to use, clear distinction has now been made between color-changes (user changes the filament manually) and extruder-changes (the filament is exchanged automatically, possibly using a wipe-tower). PrusaSlicer now supports the following three scenarios:
Single material printer (or MMU2 in Single extruder mode).
In this case, color-changes (manual filament swaps) can be added, but not extruder-changes.
Multi-material printer with the same extruder assigned to all objects, to their volumes and to modifier meshes.
Color-changes (manual filament swaps) for an arbitrary extruder and automatic tool changes of an active extruder to another extruder can be added.
Multi-material printer, where more than one extruder is assigned to objects, to their volumes or to modifier meshes.
Only color-changes can be added. Extruder-changes are already defined by extruder assignments on the Plater and we do not allow them to be extended or overridden by colorprint. While in theory it could be possible to combine extruder-changes of Plater with the extruder-changes of the colorprint, the result would be difficult to interpret by the user, so we decided to keep it simple.
Print pauses and custom G-codes can be added in all three modes.
When color/extruder-changes are added and later made invalid by switching a printer profile or changing extruder assignments at the Plater (going from the scenario 2 to 3 above or vice versa), the no more valid color / extruder changes are marked with an exclamation mark to alert the user. Any such color / extruder change will be ignored during the G-code export. Further manipulation with the Colorprint slider is disallowed before these conflicts are resolved by the user. An example of such situation is shown on the following screenshots.
We hope these changes in the Color Print user interface that we introduced in this release will make the Color Print feature predictable in all possible scenarios without limiting functionality.
Note that it is possible to edit any Color Print action after it is created (by a mouse right-click), though it is currently only possible when the slider is on the tick exactly.
When a color-change is added with a left mouse button, predefined color is used for visualization. The dialog to choose custom color is only opened when the color-change is added through a context menu, which opens with the right mouse click. #3449
It is also possible to customize this color later by right mouse click on the slider.
The function of the cog wheel icon introduced in alpha1 was changed. It now opens a dialog allowing to jump the slider to specific height. In the second mode described above (MMU2 printer with single extruder assigned at the Plater), a context menu will open when right mouse clicking on the same cog wheel icon, allowing the user to add tool-changes in regular intervals to produce repeated rainbow patterns.
--loglevel=3
or higher (#3389)int()
function (converts argument to integer) and %
operator (remainder after division). Fixes #1964, thanks @smurfix.print_host
, printhost_apikey
and printhost_cafile
are no longer exported into GCode, as this can pose a security risk (#3584)Published by bubnikv almost 5 years ago
This a second public alpha release, fixing bugs found in the PrusaSlicer 2.2.0-alpha1 release. Please check the 2.2.0-alpha1 change log for what is new in the 2.2 series.
Published by bubnikv almost 5 years ago
This is the first alpha release of PrusaSlicer 2.2.0, introducing support for 3rd party printer vendors, filament installation, pause at height, Color Print for MMU2, adaptive elephant foot compensation, automatic variable layer height, wipe tower without sparse layers, 3dconnexion support, OSX dark mode, export to removable media and eject, reworked Reload from disk and path planning, 3MF thumbnails, Flash Air support, Japanese translation and much more.
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.
The PrusaSlicer 2.2.0-alpha1 brings the following new features:
We have extended the Installation Wizard and configuration layer to support 3rd party 3D printer vendors. A 3D printer vendor may provide a versioned Config Bundle to us. We will store these 3rd party Config Bundles into resources/profiles directory of PrusaSlicer, and once any of the 3rd party printer is installed, PrusaSlicer will pull updates of these Config Bundles from the internet.
For starter, we have created profiles for the Creality Ender-3 printer. Please consider this profile experimental, we expect the community members to build upon our initial draft. We will publish a guide for contributors on how these Config Bundles are structured and how to contribute them.
PrusaSlicer stores the Print, Printer, SLA Print and SLA materials in separate lists and the names of the profiles are required to be unique inside their respective groups. For example, a "Prusament PLA" profile is used by the "MK3S" and "MK2S MMU1" printers, while a "Prusament PLA MMU2" is used by the "MK3S MMU2" printer due to different MMU ramming parameters. Before this release, the full "Prusament PLA MMU2" profile name was shown at both the Plater and at the Filament parameter page. Starting with this release, a shorter "logical name" aka "alias" is shown at the Plater, while the full profile name is shown at its respective parameter page.
The "logical name" aka "alias" is defined in two ways: First, the "@" sign in the preset name is interpreted as a separator of a logical name from the full name. For example, the full Print profile name "0.15mm QUALITY MK3" has been renamed to "0.15mm QUALITY @MK3" (the difference is in the @ sign), and the part before the @ sign - "0.15mm QUALITY" is considered a logical name. In a similar sense, the "Prusament PLA MMU2" has been renamed to "Prusament PLA @MMU2", so that a logical name "Prusament PLA" applies to both the MMU and non-MMU variant of the filament profile. The second way to assign a logical name to a profile without the use of the "@" sign in the profile name is through an "alias" configuration value of a profile.
Starting with this release, the Filament and SLA Materials provided by various 3D printer vendors may be installed in a similar way to how the printers are already installable. The filament and SLA materials are referenced by their logical names in the installation wizard, so one filament or SLA material profile is being installed for multiple installed printers at once.
The Color Print tool is highly praised as extremely easy to use and intuitive, but until now it only supported filament switches and it was limited to single extruder printers. Based on the feedback from our customers and the community, we generalized the Color Print tool to support print stops to insert magnets, weights, bearings, nuts or a custom G-code.
Color Print newly works with MMU2 as well. There are two use cases for this new feature:
Printing signs unattended. Here a filament switch event is inserted at a selected layer height, which will trigger the MMU2 unit to switch filaments automatically while wiping the extruder into a wipe tower. In this scenario there will be just a handful of filament switches performed, therefore many layers of the wipe tower will be printed with sparse layers. Check the other new feature "Wipe tower without sparse layers" on how to reduce material waste and print time when printing with MMU2 Color Print.
Extending the number of colors of MMU2 prints above 5. One may assign a single extruder to two parts separated in Z axis (for example shoes and eyes of a standing figure), and then plan filament exchange (M600 G-code) in between.
The Color Print also newly supports generating color bands at regular intervals:
The Elephant foot compensation feature shrinks the contours of the first layer FDM slice inwards to compensate for the first layer squash. The first layer squash is often ugly and it complicates fitting of multiple printed parts together, therefore quite often the elephant foot needs to be filed or scraped off after the print, which is a tedious process and which may negatively influence accuracy and surface quality.
While PrusaSlicer implements the Elephant foot compensation for a long time, it was used much less than it deserves due to the following drawback: The old algoritm shrank the first layer contours evenly, thus shrinking thin protrusions as well as large areas, leaving the thin protrusions unsupported. This PrusaSlicer release brings an adaptive version of the Elephant foot compensation, which ensures, that no area is made narrower than the width of two perimeter lines, minimizing the necessity of post processing of the print while ensuring good print adhesion to the print bed.
Also the following Elephant foot compensation issues were resolved: #1757 #2085 #2132 #2156 #2423 #2502 #2773 #2828 #2998 #3001.
We have added automatic initialization of the smooth variable layer height profile to PrusaSlicer. The adaptive variable layer height profile algorithm may not always produce a desired result. One wants to make sure the salient features of an object are printed accurately, while hidden cavities may be discretized coarsly to print faster with little effect to print quality. We therefore let the user to initialize the smooth variable layer height profile automatically with a button from the smooth variable layer editing tool, while allowing the user to adjust the proposed layer height curve manually.
We have experimented with various metrics for the surface quality. The metrics by Florens Wasserfall et al. implemented in Slic3r limits the maximum discretization error (largest Eucledian distance of the stepped surface from the source model), while Cura limits the maximum distance of contour lines in the XY plane, producing more intuitive results than the metric by Waserfall. At the end, we have implemented yet another metric, limiting the cross section area between the stepped surface and the source model. The following graph shows the layer height limit of various metrics depending on surface slope:
The Wipe tower generator newly supports skipping the sparse layers (layers without a tool change), thus saving material and in almost all cases reducing the print time. On our set of muti-material projects, this feature reduced the total print time by 3.16% and the filament deposited on the wipe tower was reduced by 16.17%. As PrusaSlicer currently does not check for collisions of the extruder with the printed object when lowering down to the top of the wipe tower, this feature is marked as experimental, and it is recommended to place the wipe tower to the rear right corner of the MK3S's print bed, while the object is placed to the opposite corner.
The wipe tower without sparse layers feature is very useful together with the newly introduced Color Print for MMU2, where only a handful of filament switches are needed to print a colored sign unattended thus saving a lot of material compared to a full wipe tower.
We have added support of 3dconnextion SpaceMouse(r) devices for camera manipulation in the 3D scene. We have tested three generations of the device: Space Navigator(R) (Wired), Space Mouse(R) Wireless and SpaceMouse(R) Pro Wireless. On Windows, both wired and wireless connection works, while on OSX only wired connection works, and we have mixed results on Linux (sometimes wireless works, sometimes wired works). On Linux, one needs to install the 90-3dconnexion.rules file into the /etc/udev directory for the device to be accessible by a regular user. The 3D mouse sensitivity may be set from a dialog, that pops in the 3D scene on Control-M key press.
We were unable to get the drivers, API description or any other support from the 3Dconnection company. If you believe that we at Prusa Research could do better integrating the SpaceMouses devices, please bug the manufacturer to provide us with the necessary support. Otherwise we are left with googling of what others managed to reverse engineer, or do the reverse engineering ourselves, which is likely not the most efficient use of our time.
When exporting G-code, the file dialog is newly initialized with a path to an SD card or USB flash drive if detected. If multiple SD cards or USB flash drives are detected, the file dialog is opened at the last visited removable media. Once a G-code is exported to a removable media, an "Eject" button is shown next to the "Export G-code" button.
The "Reload from disk" feature has been fully reworked for this release. Now full paths of the imported geometries are remembered for each volume. If a geometry is imported from a 3MF / AMF file, then full path of the 3MF / AMF is remembered including index of the object and object's volume in the source 3MF / AMF file. The "Reload from disk" action may newly be called on multiple selected objects from the pop-up menu. If the referenced files are moved thus not found, the "Reload from disk" feature will ask for an alternate path on loading and the new path is remembered.
Please note that the following operations break the link to the source geometry file: Split to Objects, Split to Parts, Cut by Plane, Anisotropic scaling along arbitrary axis (not X, Y or Z).
We have reworked the path planning aglorithm in PrusaSlicer to produce shorter paths with less travels. Optimal path planning is NP hard, thus one will hardly achieve a perfect solution in a reasonable time, though some heuristics are better than the others. The issue is complicated by the fact, that the slicer has to chain segments, not points as in the case of the Traveling Salesman Problem.
Until now, PrusaSlicer used the simplest heuristics possible: Add the next closest point to an existing path. The new path planning algorithm starts with a Multi-fragment approximation, which is then improved with 2-opt exchanges, generating a shorter path in general. Couple of bugs were fixed as well (infill path planning for islands inside holes of other islands, path planning for multiple object instances).
Comparison of the previous simple (left) and new heuristic (right), from user DrLex0
SLA Pad generation received an upgrade which enhances its shape and makes more accurate deduction of its geometry when used with zero elevation (pad around object feature). Parts of the pad which don't host any supports are now reliably removed. If the pad shall be used as a brim around the printed model, a checkbox is added to force the pad everywhere.
The following new parameters were added to control the pad:
Japanese translation is provided by Prusa Research, Brazilian Portugese translation has been submitted by @BoaImpressao3D.
The following languages are being translated by PrusaResearch: cs, de, es, fr, it, ja, pl. Dear contributors, please provide localization updates for the other languages.
Starting with PrusaSlicer 2.2, we are fully supporting C++17 on our build servers and we are encouraging our contributors to use C++17 features. We are using the following tools to build PrusaSlicer:
We have introduced a testing framework Catch2 and we have started to use it actively for new development. Many unit tests testing libslic3r were ported from the upstream Slic3r, thanks @lordofhyphens.
We newly test our OSX and Linux builds internally with the Address Sanitizer enabled. The Address Sanitizer builds (aka ASAN) allow us to catch subtle memory access errors much quicker than before. We will test ASAN builds on Windows once Microsoft finishes their Address Sanitizer support in Visual Studio.
We are working diligently on hollowing for SLA. The feature did not make it yet into the first alpha as it turned out to be quite a tough one, but we are positive we will finish it for the 2.2 final release. We are also working on a Raspberry PI 4 build of PrusaSlicer.
Published by bubnikv almost 5 years ago
The PrusaSlicer 2.1.1 release is a minor update of PrusaSlicer 2.1.0, integrating the Prusa Mini printer into the installation wizard, and 3D scene thumbnails are newly generated and exported into the G-code to be displayed on the Prusa Mini printer's display.
The Windows builds provided here on github are newly signed and the OSX builds are newly
notarized for OSX Catalina.
Published by bubnikv about 5 years ago
This is the final release of PrusaSlicer 2.1.0, introducing a state of the art Undo / Redo, height range modifiers, SLA pad around object, perspective camera, partial arrangement, color change time estimate, toolpath export as OBJ, custom print bed models and a lot more. Please check the following video and the detailed change logs of 2.1.0-alpha1, 2.1.0-beta, 2.1.0-beta3 and 2.1.0-rc2 releases for all the major changes. The release candidate shares configuration directory with the previous PrusaSlicer release.
Published by bubnikv about 5 years ago
This is a second release candidate of PrusaSlicer 2.1.0. Please check the detailed change logs of 2.1.0-alpha1, 2.1.0-beta and 2.1.0-beta3 releases for all the major changes. The release candidate shares configuration directory with the previous PrusaSlicer release.
Published by bubnikv about 5 years ago
This is a release candidate of PrusaSlicer 2.1.0. Please check the detailed change logs of 2.1.0-alpha1, 2.1.0-beta and 2.1.0-beta3 releases for all the major changes. The release candidate shares configuration directory with the previous PrusaSlicer release.
Published by bubnikv about 5 years ago
This is a third beta release of PrusaSlicer 2.1.0, succeeding the PrusaSlicer 2.1.0-alpha1 and the two betas. Please check the detailed change logs of the 2.1.0-alpha1 and 2.1.0-beta release for all the major changes. 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.
Published by bubnikv about 5 years ago
This is a second beta release of PrusaSlicer 2.1.0, succeeding the PrusaSlicer 2.1.0-alpha1 and the first beta. Please check the detailed change logs of the 2.1.0-alpha1 and 2.1.0-beta release for all the major changes. 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.
Published by bubnikv about 5 years ago
This is a first beta release of PrusaSlicer 2.1.0, succeeding the PrusaSlicer 2.1.0-alpha1. Please check the detailed change log of the 2.1.0-alpha1 release for all the major changes. 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.
Published by bubnikv about 5 years ago
PrusaSlicer 2.1.0-alpha1
This is the first alpha release of PrusaSlicer 2.1.0, introducing a state of the art Undo / Redo concept, custom print bed model with lower GPU memory requirements, perspective camera, layer height table with modifier parameters, SLA printing with the pad around the object, wipe tower improvements, partial arrangement, color change time estimates, scale to fit the platform and much more.
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.
We took our time to implement the Undo / Redo functionality. First, if we had implemented it earlier, we would have to struggle with the Perl programming language bindings, and we would waste a lot of time later on porting that new code into C++. Second, Undo / Redo is hard to do right, and we took our time to implement a robust and future proof framework. We believe we have the best Undo / Redo implementation in the world of FFF and SLA desktop printing software.
All the actions accessible from the Plater are now undoable including object selection, actions at the side bar (adding modifiers, changing their attributes), with the exception of switching the print, filament, SLA material or printer profiles. Changing the parameters at the Print / Filament / SLA Material or Printer parameter tab is already undoable with the "Reset to system value" and "Reset to user saved value" buttons, therefore we decided to not put the events of modifying these parameters onto the Undo / Redo stack of the plater.
One can jump over multiple snapshots by clicking on the Undo or Redo button with the right mouse button. As each of the snapshots have an expressive name assigned, it is easy to orient oneself even in a long list of actions.
The Undo / Redo stack currently limits its memory usage to 10% of the physical RAM size, and the oldest Undo snapshots are released until the memory limit is met. As we are only storing differences between the successive Undo / Redo snapshots, the Undo / Redo history is nearly limitless on a modern computer. The Undo / Redo memory statistics is now shown by the System Info dialog.
Some of the PrusaSlicer functionality depends on the active printer technology (FDM or SLA), therefore the active technology is remembered at the time the Undo / Redo snapshot is taken, and the Printer profile is switched to the last active Printer profile of that particular technology when that snapshot is reactivated.
PrusaSlicer now supports custom print bed textures and models #1875 #2169 #2496. Both PNG and SVG formats are supported for the print bed texture. The image and model files are assigned to the Printer profile from the "Bed Shape" dialog, and the full path to these files is stored into "bed_custom_texture" and "bed_custom_model" Print profile variables. We are considering to install the custom bed textures and models into user's PrusaSlicer configuration folder, so that we would store the names of these files without a full path to make sharing the Printer profiles easier.
We received multiple reports of graphics issues due to the excessively detailed print bed textures not fitting into the GPU memory #2299 #2382. We implemented two strategies to cope with the low GPU memory issues:
In addition, we improved application start up time and the time to switch the Printer profiles by sending a low resolution print bed texture to the GPU first, while the higher resolutions are compressed and sent to the CPU progressively as they are ready.
The Slic3r PE used to offer a layer height table, where one was able to set the layer height per object Z span. While we removed this feature from PrusaSlicer 2.0 due to developer time constraints, we are now bringing the feature back with major improvements: One can now not only define a layer height for a Z span, but one can also apply any parameter to the Z span of an object, that can be assigned to object's modifier mesh. When editing the Z minimum or maximum value of a Z span, the top and bottom planes are visualized at the selected object in the 3D scene. The new feature was mentioned by the "Modeling" with PrusaSlicer? video.
In PrusaSlicer 2.0 the SLA supports require a certain elevation of the model if supports are to be generated. This ensures that the support pillars do not collide with the model and the pad can also be generated without complications. In the 2.1 release we added a feature to set the elevation to zero and the supports and pad will be correctly derived for every model. The generated pad will surround the object with small break-stick connections. The pictures below show the old behavior (left side) vs the new feature (right side).
If the "pad_zero_elevation" parameter is set, the parameters "pad_object_gap", "pad_object_connector_stride", "pad_object_connector_width", "pad_object_connector_penetration" are used to control the gap between the object and the pad around the object, and to add connectors between the object and pad to improve platform adhesion.
Arrangement tool can now be used to arrange only a subset of the objects on the bed, while keeping the position of unselected objects unchanged. This can be achieved by selecting the set of objects and hitting the Arrange button while holding down the Shift key, or pressing the Shift + A hot key.
The old Wipe tower generator used to manipulate the print speed override of the Marlin firmware to slow down for the soluble and flexible materials. Starting with this release, the print speed override G-code is only emitted to reset printer speed override to 100% over the Wipe tower as the Wipe tower is always printed at the maximum extrusion rate possible, while the maximum volumetric speed of an active filament is respected to limit the print speed for both the normal print and for the nozzle cleaning sequences at the Wipe tower.
In addition, the Wipe tower generator now supports multiple physical extruders, not just the "single extruder multi-material" setup, thanks to @tcm0116 for the initial implementation. The filament exchange sequences (ramming, cooling, etc.) specific for the "single extruder multi-material" mode are disabled for a multi-extruder setup #718 #1944 #2337.
We changed the way how custom filament and tool change gcodes are emitted into the final G-code with the goal to make the custom G-codes more versatile and consistent between the "single-extruder multi-material" and "multiple extruders" setups with the wipe tower enabled or disabled (#560 #1530 #1245). Each toolchange now emits:
See the tool tips of "start_filament_gcode", "end_filament_gcode", "toolchange_gcode" parameters for details. Lastly, the Wipe tower now supports filaments with diameters different from 1.75 mm.
PrusaSlicer classifies the FDM parameters into three groups: Print, Filament and Printer parameters. This parameter classification is certianly artificial. While the current grouping may make sense for some printers or filaments, it may not suit other setups well. We were asked to make the configuration more flexible.
With this release we are allowing the Filament profiles to override all or some of the extruder retract values. The filament retract overrides define the same configuration keys as the extruder retract configuration values, only prefixed with "filament_". For example, the "retract_length" is overridden with a "filament_retract_length" value. A special "nil" value is used if the filament override value is not set, therefore the extruder retract value shall be used.
The PET and FLEX profiles bundled with this PrusaSlicer release already contain filament specific retract settings to reduce stringing. In the future, we are considering to allow the Filament profile to override the bridging speed and bridge flow ratio. Other candidates are the print speed and acceleration values.
Following translations were submitted for PrusaSlicer 2.0 and integrated. Dear contributors, please provide updates for the PrusaSlicer 2.1.
Our current binary distributions grew significantly by bundling the Chinese / Japanese / Korean font to be used in the 3D scene. We are investigating how to use the system fonts instead.
We are aware of the following new Linux distro packages of PrusaSlicer 2.0 provided by the community:
Published by bubnikv over 5 years ago
This is the final release of PrusaSlicer 2.0.0, mostly fixing bugs discovered in the first two release candidates. The PrusaSlicer 2.0.0 is a successor of the Slic3r Prusa Edition 1.42.0-beta2. See the project web https://www.prusa3d.com/prusaslicer/ for details.
Please check the change logs of 2.0.0-rc, 2.0.0-rc2 and 1.42.0-beta2 for the complete change logs of the 2.0.0 / 1.42.0 series.
Published by bubnikv over 5 years ago
This is a second release candidate of PrusaSlicer 2.0.0, mostly fixing bugs discovered in the first release candidate. The PrusaSlicer 2.0.0-rc2 is a successor of the Slic3r Prusa Edition 1.42.0-beta2. Please see the change logs of 2.0.0-rc and 1.42.0-beta2 for the complete change logs of the 2.0.0 / 1.42.0 series.