PrusaSlicer 2.2.0-alpha2
Hi guys,
This is a new testing release of PrusaSlicer 2.2.0-alpha2 introducing many new features. This version is recommended to experienced users.
What is new?
These release notes are a mix of the alpha1 and alpha2 release. Please install the alpha2 version since it includes several bug fixes.
- Support for third party 3D printer vendors
- Filament installation, filament & print preset aliases (logical profile names)
- Insert pause or custom G-code at a certain layer
- Color Print for MMU2
- Adaptive Elephant foot compensation
- Automatic variable layer height
- Wipe tower without sparse layers
- 3dconnexion SpaceMouse(r) support
- SD eject, Save to SD
- Reload from disk
- Better path planning
- SLA Pad around object enhancements
- Other new features and improvements
- Translations
- Bugs fixed (alpha1 & alpha2)
- Architecture, infrastructure
- Known issues
- What is in the working
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:
Support for third party 3D printer vendors
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.
Filament installation, filament & print preset aliases (logical profile names)
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.
Insert pause or custom G-code at a certain layer
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 for MMU2
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:
Adaptive Elephant foot compensation
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 algorithm 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.
Automatic variable layer height
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 the desired result. One wants to make sure the salient features of an object are printed accurately, while hidden cavities may be discretized coarsely 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 surface quality. The metrics by Florens Wasserfall et al. implemented in Slic3r limits the maximum discretization error (largest Euclidean 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. In 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 the surface slope:
Wipe tower without sparse layers
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 multi-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.
3dconnexion SpaceMouse(r) support
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 dialogue, 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.
SD eject, Save to SD
When exporting G-code, the file dialogue 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 dialogue 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.
Reload from disk #552 #1471 #1890 #1996 #3075
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 geometry is imported from a 3MF / AMF file, then full path of the 3MF / AMF is remembered including the 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).
Better path planning #375 #409 #1942 #2713
We have reworked the path planning algorithm in PrusaSlicer to produce shorter paths with fewer 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. A couple of bugs were fixed as well (infill path planning for islands inside holes of other islands, path planning for multiple object instances).
SLA Pad around object enhancements
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:
- pad_around_object_everywhere: Force parts of pad not occupied with supports
- pad_brim_size: How far out should the pad stretch.
Other new features and improvements
- OSX Dark Mode is newly supported by PrusaSlicer. The dark mode seems to work on one of our co-worker's Linux box. On Windows, we are waiting until Microsoft finishes Dark Mode API for Win32 controls.
- The 3D scene thumbnails are newly stored into the 3MF and SL1 files. The 3MF thumbnails are shown by Windows File Explorer #3252.
- The SLA slicing statistics newly shows the print weight and cost based on the following new SLA material properties: bottle_cost, bottle_volume, bottle_weight and material_density.
- The skirt is newly allowed to overlap with the brim, so that the skirt used as a wind draft shield is stabilized by the brim. Brim lines are split at the intersections so there is no overextrusion #724.
- Color bars are newly painted in the extruder selection combo box at the object list and at the MMU purge amount dialogue #1484.
- The Gyroid and 3D honeycomb infills were reworked, so that their infill lines now follow the perimeters as in the case of grid and cubic infills #1690, thanks @supermerill.
- The Gyroid infill discretization was reworked to produce less segments thus shortening the G-code and printing smoother on low power 3D printer control boards #1690, thanks @wavexx.
- A new [total_toolchanges] placeholder is supported for the output filename and custom G-code templates. The statistics section at the end of the GCODE has been extended with the number of tool changes as well #1775, thanks @BryanSmithDev.
- Added FlashAir support for host upload #2215, thanks @stephanr.
- When slicing from command line, the object is newly centered around the center of the print bed shape if available #2424, thanks @luketaverne.
- Generic box / sphere / cylinder objects may newly be added to the plater by right clicking at an empty space in the 3D scene or at the object list #2865.
- The G-code preview newly supports coloring by fan speed #2922, thanks @jschuh.
Translations
Japanese translation is provided by Prusa Research, Brazilian Portuguese 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.
Bugs fixed - alpha1
- Fixed spurious infill below bridges in case the infill density was set to 0% #442.
- Fixed unnecessary splitting of infill regions by a modifier mesh, if the modifier mesh does not influence infill parameters #1005.
- Fixed missing anchors for bridges in case the infill density was set to 0% #1185 #1301 #2686.
- Fixed crash with multi-material prints requiring a wipe tower, where one object was fully separated from another object with a vertical gap to be filled with supports #1266 #2258.
- Fixed spurious gap fill inside the inner most perimeters for infill density 0% (which also applies to Vase mode) #1476.
- Fixed some unexpected bridging issues due to a missing update of the slicing back end in case the support is enabled / disabled while the soluble supports are configured, as the bridging is disabled for soluble supports, while the bridging is enabled with supports disabled #1482.
- Fixed compilation of OSX dependencies #2264.
- Fixed missing update of the slicing back end when the "Bridge flow ratio" is changed #2359.
- The brim path newly takes into account the wipe tower #2378, thanks @tcm0116.
- Fixed G-code export on Linux and OSX to permissionless filesystems as FAT32 or Samba #2521 #3102.
- Fixed a crash when slicing an object standing on a narrow edge or a pointy tip, where the first layer would produce an empty layer. Such situation is newly detected and an error is emitted stopping the slicing process. In the future versions we may try to lower the object and continue slicing #2581. a co #1479?
- Fixed a buggy check in single-extruder multi-material mode, which prevented usage of layer range parameter modifiers when printing multiple objects #2835.
- Fixed arrangement of objects larger than the print bed #2897.
- Fixed one more issue of the admesh library on big endian architectures #2879.
- Fixed validation of the layer height parameter: Maximum allowed layer height now defaults to 3/4 * nozzle_diameter if the extruder maximum layer height is not specified #2892.
- Fixed a crash when downloading the latest PrusaSlicer application version from the Internet and garbage is returned by a proxy server #2927.
- Fixed an unreliable numeric entry into the layer height table, where the number sometimes reverted to the old value on enter #2946.
- Increased the maximum range to account for large custom print bed or printer models #2948.
- Fixed crash on update of 3D print path preview with no retractions #2988.
- OSX specific: Fixed an old issue, where sometimes the first column of the object list was extremely narrow initially #1774 #1927.
- Fixed an assert in "Set number of instances" #2953.
- Fixed deselection of an object in the 3D scene after adding an instance with autocenter active #2972.
- Fixed a crash on arrange #2973.
- Fixed a crash when deleting an object from the plater #2977.
- Replaced "mm3/s" with "mm³/s" in UI texts and localizations #2978.
- Fixed a crash when holding the Shift key and clicking on an empty space in the object list #2997.
- Fixed color change update after changing layer height. Not all color change events were adjusted to the new layer heights and it was not possible to remove them #3002.
- Fixed missing or disappearing print bed texture on some computers: The maximum size of the texture allocated for the print bed is now limited to half of the maximum texture size reported by the OpenGL driver, and the print bed texture mip map is calculated down to the 1x1 size #3008.
- Fixed processing of G92 code (set offset of coordinate system) by the G-code analyzer, fixing 3D print path preview #3010.
- Implemented M132 code (load the current home position from EEPROM) for Makerbot to fix 3D print path preview #3108.
- The single-extruder multi-material wipe tower generator newly emits the M220 B/R codes for Marlin firware only. Also a pull request has been accepted by upstream Marlin to implement the Prusa3D M220 B/R G-codes.
- Fixed some crashes at the object list, where some menu items shown in a context menu for an object instance were not applicable to an instance #3275.
- Fixed G-code preview for the Machinekit and Mach3/Linuxcnc firmware flavors, which use the A axis for the extruder instead of E #3287.
- The bundled avrdude has been updated from upstream to fix the use of deprectated gethostbyname() function #2918.
- Fixed clipping plane visualization in SLA support gizmo for mirrored objects.
Bugs fixed - alpha2:
- Fixed crash on OSX Dark Mode #3342.
- Fixed export of G-codes. The G-codes are newly stored with a .tmp extension when exported onto a removable media and verified before renaming to a target file name. We have introduced this procedure to lower the risk of failed prints when a cheap removable media is used, or when the media is removed too early. There was a bug in the first alpha, where the temp file was not being renamed correctly #3343.
- Fixed crash when switching infill to 100% due to an incorrect format of localized text of Italian, French, Spanish, Ukrainian and Traditional Chinese #3366.
- Fixed minimum supported OSX version number declared by PrusaSlicer. The minimum OSX version was set to 10.14 by mistake, it is now set to OSX 10.9 Maveric as in previous PrusaSlicer versions.
Architecture, infrastructure
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:
- Visual Studio 2019 on Windows, supporting Windows 7 and newer.
- Xcode 11.1 on OSX with OSX 10.14 SDK and the minimum supported OSX version (aka depolyment target) 10.9, supporting OSX 10.9 and newer.
- Linux builds are built on CentOS 6 with devtoolset-7 (gcc 7.3.1), thus producing binaries compatible with most of current and long term support Linux distributions.
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.
Known issues
- The "Reload from disk" feature requires the paths of the imported objects to be stored into the project file. When sharing such projects on PrusaPrinters, Thingiverse or elswhere, some people may consider sharing paths of their hard drives or company shared drives a security risk. We will provide a way to disable storing the paths into the project file by default, and we will provide a way to export a 3MF file without the paths if the full paths are stored by default.
- We plan to make the ColorPrint feature for MMU2 a bit more intuitive to better fit the two distinct MMU2 use cases (unattended sign prints versus muti-colored objects printed with more than 5 colors).
- The automatic redirection to the removable media when exporting a G-code may not always be wanted. We will add a way to save to a non-removable media eve if a removable medium is plugged in.
- We have renamed many Print, Filament and SLA material profiles due to the introduction of logical names, which breaks the "derived from" property of user profiles and profiles stored into project files. We plan to add a list of "renamed from" profile names to the preset profiles, so that these "derived from" links between profiles are maintained.
What is in the working
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.
Supported printers:
- Original Prusa i3 MK3S MMU2S
- Original Prusa i3 MK3S
- Original Prusa i3 MK3 MMU2
- Original Prusa i3 MK3
- Original Prusa i3 MK2.5S MMU2S
- Original Prusa i3 MK2.5S
- Original Prusa i3 MK2.5 MMU2
- Original Prusa i3 MK2.5
- Original Prusa i3 MK2/S MMU1
- Original Prusa i3 MK2/S
- Original Prusa SL1
- Original Prusa MINI (new)
Download link:
github.com/prusa3d/PrusaSlicer/releases/tag/version_2.2.0-alpha2
Please report any bug here:
github.com/prusa3d/PrusaSlicer/issues
We look forward to your feedback!
RE: PrusaSlicer 2.2.0-alpha2
I'm confused. On the download page the Drivers & Apps 2.2.9 package includes PrusaSlicer 2.1.1
Which is the latest PrusaSlicer 2.1.1 or PrusaSlicer 2.1.0-alpha2?
RE: PrusaSlicer 2.2.0-alpha2
I'm confused. On the download page the Drivers & Apps 2.2.9 package includes PrusaSlicer 2.1.1
Which is the latest PrusaSlicer 2.1.1 or PrusaSlicer 2.1.0-alpha2?
It's 2.2.0-alpha2. And it's an alpha (so unstable) so it will not be released on the Drivers & Apps page.
RE: PrusaSlicer 2.2.0-alpha2
Fair enough but if 2.1.1 has been released shouldn't the latest alpha be 2.1.1-alpha2?
Or is 2.2.0-alpha2 a fork of 2.2.0?
RE: PrusaSlicer 2.2.0-alpha2
No. Alphas and betas are "test versions" of software. They are "pre-release".
The latest release version is 2.1.1. But they are in development for 2.2.0 and this is the current state of this development version.
After the beta, there might be an RC version. This means "release candidate". So, the final version will be similar to the RC but they need some final tests to catch the last bugs.
Alphas, betas and RCs are released to the public for "tests in the wild". The people should find and report bugs under non-lab conditions.
RE: PrusaSlicer 2.2.0-alpha2
@lichtjaeger
"It's 2.2.0-alpha2." How embarrassing, totally misread the original post. Sorry for silly posts.
RE: PrusaSlicer 2.2.0-alpha2
servus my first 2 cents for alpha2 2.2. maybe already known. Assistant has mini already marked, unmarking will not change the bed design for prusa mini. please see jpg.
werner
ps : copy & paste of screenshot directly into the form edit window would simplify the picture sharing. but maybe the forum Sw isn't capable of it. multiple file attachment would also be a nice feature.
besten Dank / kind regards
MK3S & MMU2S, Ender 3 Pro
RE: PrusaSlicer 2.2.0-alpha2
Hi, firstly is it OK if I post my findings here?
the color setting seams to have bug. selected colors not indivated correctly.
besten Dank / kind regards
MK3S & MMU2S, Ender 3 Pro
RE: PrusaSlicer 2.2.0-alpha2
@werner
Issues should be posted over at https://github.com/prusa3d/PrusaSlicer/issues with a clear concise title and the requested details in the body giving everything needed to reproduce the issue (system, files used etc etc)
Although looking at your image the colour shown is the colour you assign to that filament profile. If you create profiles for all your filament colours then assign them it will show them in the different colours wouldnt it ? I don't have an mmu so that's a part of the software I'm not that familiar with.
RE: PrusaSlicer 2.2.0-alpha2
@neophyl
thanks for the info.
besten Dank / kind regards
MK3S & MMU2S, Ender 3 Pro
RE: PrusaSlicer 2.2.0-alpha2
I can confirm that this build with a little effort finding prereqs etc works on Raspberry PI 4 (4GB).
Well done folks!
Peter G4DCP
RE: PrusaSlicer 2.2.0-alpha2
a question about the "Adaptive Elephant foot compensation".
will this also take into account cases when you use the mmu2s and happen to have several different colors on the first layer?
if you use elephant foot compensation it tends to also add the compensation between the two separate colors and that makes for a noticeable separation between two colors since you get the compensation added on each color touching each other, so extra spacing where it should not be.
not sure if this is model dependent or not but i had this problem alot when printing the auto rewind spool holder, the side screws have colored bands on first layer causing this problem.
RE: PrusaSlicer 2.2.0-alpha2 and Custom Bed stl “art”
Just a quick inquiry, if I may.
I’m currently adding support for
the SnapMaker 2 series of FDM
printers and have created the
required stl for the custom bed.
I cannot seem to find a way to
make the bed image lighter in
appearance. It always appears
very dark, and no settings I’ve
been able to locate, or tweaks
to the stl file seem to replicate
the virtual illumination of
the default Prusa bed.
Any advice on how to address this
would be very appreciated.
And if this is not the best place
to post this, please let me know
where this inquiry would be
most appropriately posted.
Many Thanks!
RE: PrusaSlicer 2.2.0-alpha2
where can i set this function "Wipe tower without sparse layers", cant find it.
thx
mfg Herbert
RE: PrusaSlicer 2.2.0-alpha2
Just installed this and it produces a spurious "box" which I cannot delete and which prints out to one side of whatever I am printing. This only happens in the MMU2S setting not the single setting.
Alan
RE: PrusaSlicer 2.2.0-alpha2
Without seeing a picture of this spurious box you mention I would suspect its the wipe tower where colour changes are done. It only appears for multi colour/mmu settings but can be turned off somewhere in settings.
RE: PrusaSlicer 2.2.0-alpha2
@neophyl
Many thanks, Neophyl. I shall try that.
Alan
RE: PrusaSlicer 2.2.0-alpha2
@torbjorn-j3
The elephant foot compensation for multi-material prints shall shrink just the outer contour of the cummulative object, it shall not adjust each sub-component independently. I know the older PrusaSlicer versions did it wrong, but the current PrusaSlicer 2.2.0-alpha2 and now alpha4 do it right.