PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)

AGPL-3.0 License

Stars
7.7K
Committers
215

Bot releases are hidden (Show)

PrusaSlicer - PrusaSlicer 2.8.1-rc1 Latest Release

Published by lukasmatena about 1 month ago

PrusaSlicer

Summary

​This is first release candidate of PrusaSlicer 2.8.1, which mostly fixes bugs found in 2.8.0.

Improvements with respect to 2.8.0

  • Based on the feedback received after 2.8.0 release, the menu bar was reinstated and the menu no longer hides under a button. Thanks everyone for the feedback, it was very helpful and it will be taken into consideration during possible UI-related decisions in the future. #12943
  • When logging-in with the PrusaAccount using third party authorization (Google, Apple, Facebook), an external browser window is opened so the user is not forced to enter their credentials into windows created by PrusaSlicer.
  • The built-in web engine no longer remembers the user after logout.
  • There are two new parameters: Filaments->Advanced->Abrasive material and Printers->Extruder->High flow nozzle. Both flags will be used to check whether a sliced G-code is compatible with the given printer (abrasive material requires hardened nozzle) and also to ensure that "Set as current" function in PrusaSlicer-embedded Prusa Connect will select the suitable profile for the given configuration.
    Note that this feature is supported since MINI/MK4/XL firmware version 6.2.0-alpha1, and that the implementation in Prusa Connect is not completely finished yet, meaning that the dialog where printer is selected does not use this information - it will later start working without the need to download a new slicer version.
  • Automatic orientation of bridges has been improved. Issues with unanchored bridges caused by inconvenient choice of their angle should now occur less frequently, although there is still a large class of scenarios where the solution is suboptimal.
  • The output of --query-printer-models command line option was extended to contain bed shape and dimensions. Note that custom bed shapes are currently not supported.
  • The 'new version available' notification can now be used to direct the user to our website, instead of just downloading the executable. As of now, we release two different Linux AppImages, so the user needs to be able to choose which one they want to download.
  • A new infill type called Zig-zag was created. It behaves the same as Rectilinear, except that the pattern is aligned between layers (Rectilinear is optimized for short travels, which leads to inconsistencies). The new infill may thus take slightly longer to print because of that, although the effect will be negligible in most prints. It is possible that Rectilinear and Zig-zag will be merged into a single infill type in one of the upcoming releases. #12613

Bugs fixed with respect to 2.8.0

  • General improvement of Prusa Connect / PrusaAccount session stability. There were scenarios which led to uncommanded logouts from PrusaAccount, some resulting in partially blank Prusa Connect screen and requiring application restart to fix. The problems occurred after being logged on for a long time, after waking the PC up from sleep, or when internet connection was unstable.
  • Fixed missing G-code preview on setups using older GPUs (#12908).
  • Some settings were not applied when overridden per object (#12916).
  • Fixed adding SVGs as parts/modifiers. This was broken in 2.8.0 (#12915).
  • Fixed UI glitch resulting in disappearing text in edit boxes after editing (#12932).
  • Fixed incorrect capture of keyboard input, which led to some keys being ignored (#13043).
  • Physical printer configured to use username/password authentication no longer asks the user for the credentials when opening the Physical Printer page (#12921, #12933).
  • Notification informing about the user having logged in into PrusaAccount occasionally showed even when the user was in fact logged in for a long time already (#12963, #13166).
  • macOS specific: Fixed incorrect tooltips (Ctrl instead of Cmd). #12898
  • Object shells incorrectly stayed visible after switching from FFF to SLA and back.
  • Fixed rotation slider in SVG tool when "Use surface" option was active (it incorrectly reverted to original position when released).
  • Changing Dynamic overhang speeds settings did not trigger G-code regeneration as is should have.
  • Fixed loading of specific OBJ files (#12157).
  • Fixed a crash when scaling to fit in specific cases (circular bed and objects with parts).
  • Fixed an infinite loop during infill generation stage occurring in rare cases (#11426).
  • 'Export Plate as STL/OBJ Including Supports' no longer exports non-printable objects.
  • Fixed zero velocity G-code commands when the pressure equalizer was combined with spiral vase mode. This bugfix was ported from OrcaSlicer. Thanks to @Noisyfox, @SoftFever and everyone involved.
  • Fixed incorrect Color Changes placement after reslicing in certain cases (#13008).
  • Reduced number of emitted M106 G-codes when dynamic fan speed on overhangs is enabled. Too many commands were generated even when the fan speed barely changed or did not change at all. #11981, #11856
  • Fixed missing update when adding Color Change with supports enabled.
  • Fixed crash when loading specific 3MFs containing Color Changes (#13038).
  • Adaptive layer height feature did not work when Z shrinkage compensation was used.
  • Windows specific: Fixed incorrect initialization of drag and drop in Object list, when dragging mouse over it with the mouse button pressed (#13062).
  • Fixed unexpected autoselection of SLA printer in Configuration Wizard in certain cases (#13058).
  • Fixed couple of usability issues with the vertical slider in preview (hovered ticks selection and reaction to mouse wheel) (#12944).
  • Fixed unexpected deceleration on overhangs with dynamic overhangs speed enabled.
  • Line infill did not generate at all when maximum anchor length was set to zero.
  • When seam position was set to Random, the algorithm would occasionally place the seam on a bridging perimeter.
  • Fixed erratic placement of seams occassionally happening with specific object geometry.
  • Fixed a problem in STEP file loading, which resulted in errors in the geometry of the loaded model (#12271, #12122).
  • Using certain fonts for the text embossing led to project files which PrusaSlicer was not able to open anymore (#13123).
  • Custom G-codes are not allowed to contain certain keywords which PrusaSlicer uses for internal purposes. The check that these keywords are not present was not working in the previous version. It is now fixed.
  • Fixed artifacts sometimes appearing in the "Actual speed" preview. The artifacts were a result of long-existing bug in the G-code processor, the "Actual speed" preview just made them visible. The bug could have led to incorrect time estimates for specific G-codes.
  • Fixed three distinct crashes in Configuration Wizard occurring after a specific sequence of steps.
  • Fixed a long-existing bug in the cooling logic, which resulted in zero or possibly negative extrusion commands in very rare cases.
  • Downloading from Printables did not work when the download folder contained non-ASCII characters.
  • Fixed selection of print host type in Physical Printer dialog. PrusaLink was missing in the list for several printers which actually support it. This also caused several other glitches (#13286).
  • The Connect status dots in the Printer Settings dropdown did not show for SLA printers.
  • Custom printer profile created in Config Wizard could be saved under a name clashing with a system profile name.
  • "Rename preset" button was inadvertently not shown in the UI when physical printer profile was selected.
  • Windows specific: Fixed a bug causing issues when PrusaSlicer configuration folder path contained non-ASCII characters.
  • Number of toolchanges did not show in the "Sliced info" box when wipe tower was disabled (#6832).

Translations

  • Updated internal dictionaries (CS, PL, DE, IT, ES, FR, JA)

IMPORTANT note for Linux users

PrusaSlicer now depends on WebKit library, which greatly complicates its distribution. Latest Linux distributions (such as Ubuntu 24.04, Fedora 40) ship with newer version of WebKit than older (but still supported) distros. Bundling WebKit into the AppImage is difficult and may not be possible.

Therefore, we now provide two separate AppImages, both depending on webkit library. You may need to install the respective package before you are able to run PrusaSlicer.

Build min libwebkit2gtk version distributions examples
older-distros 4.0 Ubuntu 22.04, Fedora 39, Debian 11
modern-distros 4.1 Ubuntu 24.04, Fedora 40, Debian 12

The AppImages can extract themselves when run with --appimage-extract command line parameter.

It is quite likely that PrusaSlicer will switch only to Flatpak deployment from the next version on. The AppImage made sense when it could be used in the "bundle what you need, distribute a single file" way, but having to distribute several different AppImages and maintaining the required build infrastructure (and still worrying about what needs to be updated when some Linux distribution update is released) means burning time that we would much rather invest into actual work on PrusaSlicer.

PrusaSlicer - PrusaSlicer 2.8.0

Published by lukasmatena 4 months ago

PrusaSlicer

Summary

​This is final release of PrusaSlicer 2.8.0, introducing Prusa Connect integration, seam improvements, updated UI, new G-code Viewer, improved profile updating system and many more improvements and bugfixes. The final release fixes a single bug found in 2.8.0-rc2. See the release logs of 2.7.5-rc1, 2.8.0-alpha5, 2.8.0-beta1, 2.8.0-rc1 and 2.8.0-rc2 for the complete list of changes with respect to 2.7.4.

Bugs fixed with respect to 2.8.0-rc2

  • The horizontal slider was losing focus when dragged to the end position and back (#12879).

IMPORTANT note for Linux users

PrusaSlicer now depends on WebKit library, which greatly complicates its distribution. Latest Linux distributions (such as Ubuntu 24.04, Fedora 40) ship with newer version of WebKit than older (but still supported) distros. Bundling WebKit into the AppImage is difficult because it leads to various issues with its dependencies. So far we did not manage to create an AppImage that would reliably run on all relevant distros.

We now provide two separate AppImages. One depends on the old WebKit, the other one is built on Ubuntu 24.04 and links to the new WebKit. If you run Ubuntu 24.04, Fedora 40 or another very recent distribution, you should download the "Ubuntu-24-04" AppImage. The other one will not work for you.

To keep the confusion to a minumum, we do not provide the tarballs anymore, just the two AppImages. They are able to extract themselves when run with --appimage-extract command line parameter.

PrusaSlicer - PrusaSlicer 2.8.0-rc2

Published by lukasmatena 4 months ago

PrusaSlicer

Summary

This is the second release candidate of PrusaSlicer 2.8.0. This release candidate fixes several bugs found in previous 2.8.0-rc1.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Improvements with respect to 2.8.0-rc1

  • The page in ConfigWizard with profiles sources selection now contains descriptive text and links to the website where configuration updates can be downloaded.

Bug fixes with respect to 2.8.0-rc1

  • Thumbnails in Connect view did not display.
  • Fixed incorrect colors in Preview when adding Color Changes to a painted object.

Translations

  • Updated phrases and POT
  • Updated internal dictionaries (CS, PL, DE, IT, ES, FR, JA)

Architecture, infrastructure

AppImage for Ubuntu 24.04

An AppImage running on Ubuntu 24.04 is finally provided (unlike previous releases). The problem was that PrusaSlicer now depends on WebKit library, which is a big library with many dependencies. The new Ubuntu 24.04 uses new version of WebKit which is incompatible with our binaries. Bundling WebKit into the AppImage has proved to be difficult, because there it has many dependencies and it leads to many other issues.

Therefore, instead of bundling all the libraries into a single huge AppImage, we provide two separate AppImages. One depends on the old WebKit (which is currently shipped with almost all Linux distributions), the other one is built on Ubuntu 24.04 a links to the new WebKit.

To keep the confusion to a minumum, we do not provide the tarballs anymore, just the two AppImages. They are able to extract themselves when run with --appimage-extract command line parameter.

PrusaSlicer - PrusaSlicer 2.8.0-rc1

Published by lukasmatena 4 months ago

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.8.0. This release candidate fixes bugs found in previous 2.8.0-beta1.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

An important note for Linux users: The provided binaries will not run on newest Ubuntu 24.04 (and possibly other latest distributions). Solving problems with all dependencies is more work than originally expected. We hope to get it sorted for the 2.8.0 final release.

Improvements with respect to 2.7.5-rc1

  • SLA specific: Added correction for cross layer curing. When printing using the MSLA technology, the UV light cures not only the layer it is "supposed" to, but it also reaches couple of already printed layers. This leads to deformations of the print, especially at overhangs. There is a now new parameter in Material Settings. It states how many layers are be affected by the cross layer curing for the particular Material, and PrusaSlicer is able to compensate for this effect by "deforming" the slices in the opposite way.

Bug fixes with respect to 2.8.0-beta1

  • macOS specific: Fixed performance issues when run as standalone G-code Viewer.
  • Toolbar size set in Preferences was not taken into account (https://github.com/prusa3d/PrusaSlicer/issues/12838#issuecomment-2176534793).
  • Fixed crash when selecting Color Print view in Preview (#12881).
  • Fixed behavior of vertical slider: Color Change was added after moving slider when it was moved to its original position (#12877).
  • macOS specific: Some keyboard shortcut did not work (#12874).
  • Linux specific: The application stays logged in to Prusa Account when it is restarted.
  • Loading of SLA archives did not work when path to the archive contained non-ASCII characters (this was actually already fixed in 2.8.0-alpha5).

Translations

  • Updated POT
  • Updated internal dictionaries (CS, PL, DE, IT, ES, FR, JA)
  • Added Slovenian translation (#12817, thanks to @jernejp21)
PrusaSlicer - PrusaSlicer 2.8.0-beta1

Published by lukasmatena 4 months ago

PrusaSlicer

Summary

This is the first public beta release of PrusaSlicer 2.8.0. This release introduces Prusa Connect integration and many more improvements and bugfixes.

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. The beta will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

An important note for Linux users: As with the 2.8.0-alpha5, the provided binaries will not run on newest Ubuntu 24.04 (and possibly other latest distributions). Solving problems with all dependencies is more work than originally expected, and we do not want to postpone releasing the beta because of it.

Vertical slider improvements

After the feedback received from 2.8.0-alpha5 testing, further changes to the vertical slider were made:

  • The time estimate on hover was already available in the alpha, but it was disabled by default and the possibility to enable it in the slider menu (accessible by the cog button below it) was not obvious. This feature is now on by default. #12823, #12827
  • The ruler indicating where the individual layers are was added again. It can be turned on in the slider menu (#12836).
  • The appearance of the ruler can be further customized - there is an option to enable and disable background.
  • Clicking the plus on the slider handle does not move the slider and always adds a color change (#12837).
  • All the custom slider settings are now remembered between sessions (https://github.com/prusa3d/PrusaSlicer/issues/12827#issuecomment-2171360927).

We would like to thank for the feedback we got and we hope that these improvements address most of the issues that were reported.

Other improvements with respect to 2.8.0-alpha5

  • Print speed limitation for infill was added into Filament Settings -> Advanced. Two separate values can be entered - one for infill islands with intersection, one for islands without. The reason for this change is that intersections in the same layer cannot be printed properly at speed, because the molten filament tears at the intersections. This effect is especially noticeable with some materials, the most important example being PET. Until now, the only way to slow the print down in Filament Settings was to use Max volumetric speed, which in effect slowed down the whole print. By distinguishing between crossing and non-crossing infill, it is now possible to increase the general volumetric speed limit and increase overall speed as a result.

  • The login into Prusa Account is no longer done in external browser window. Instead, the dialog shows directly in PrusaSlicer to streamline the workflow, and the user is thus not forced to switch between PrusaSlicer and the browser. Note that the login website will be improved in near future to blend in with the application more naturally. It should also help to solve issues such as #12853.

  • In addition to that, the login dialog now shows in Configuration Wizard as well, because logging is part of configuring the slicer to use. The login is of course still completely optional and can be skipped.

  • Login button in the top right corner can now be hidden, so people not interested in using Prusa Account are not bothered by it. There is an option in Preferences to do that, and before you log in for the first time, this option is also in the Log in menu to make it easily discoverable.

  • Speed and volumetric flow rate were added to the info dialog at the horizontal slider in the G-code Viewer (#12840).

Bug fixes with respect to 2.8.0-alpha5

  • When performing text manipulation with an embossed text volumes (such as changing skew ratio), any painting previously applied to the object was broken, which could even cause PrusaSlicer to crash. PrusaSlicer now removes all such painting and shows a notification similar to the one shows when e.g. simplifying the volume.
  • Standalone G-code Viewer did not show progress bar when loading G-code (broken between 2.7.5-rc1 and 2.8.0-alpha5).
  • Fixed a rare crash during slicing caused by numerical problems with Voronoi diagrams (#12686).
  • Fixed a rare crash during slicing caused by a corner case during bridge expansion step (#12469).
  • When saving a modified user preset under a name of an already existing different profile, the changes were not saved.
  • Fixed a bug in the Emboss tool, which would "emboss" text on an object that was already deleted (after a specific sequence of actions).
  • Fixed mangled encoding in error messages informing that a local update file was not found.
  • Profile updates were incorrectly not applied when a new vendor was added through online update only. This is an old bug introduced before 2.8.0-alpha5.
  • Fixed a race condition which could have led to Prusa Connect website not loading.
  • Fixed a bug in the new seam algorithm: when seam position was set to Nearest, the algorithm would ignore a near corner in some cases.
PrusaSlicer - PrusaSlicer 2.8.0-alpha5

Published by lukasmatena 4 months ago

PrusaSlicer

Summary

This is the first public alpha release of PrusaSlicer 2.8.0 (previous alphas were internal). This release introduces Prusa Connect integration and 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. The alpha will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

An important note for Linux users: The binaries will not run on newest Ubuntu 24.04 (and possibly other latest distributions). This problem will be solved shortly in the next alpha/beta.

Prusa Connect integration

Prusa Connect is our online system to control printers from the browser and distribute print jobs among them. Starting with this release, Prusa Connect is accessible directly from PrusaSlicer to streamline the workflow. A login box was added to the right of the top bar, which will open a browser window and let you log in with your Prusa Account credentials. When the login is successful, one more tab (Prusa Connect) will appear in the top bar. This tab will present your Prusa Connect dashboard and all features that you are used to.

image

When logged in, PrusaSlicer keeps track of the status of your printers and it also knows with which of your printer profiles they are compatible (printer model, MMU capabilities and nozzle diameter are checked). When a printer compatible with a given printer profile is in Prusa Connect, a little colored dots will appear in the printer profile dropdown in the right panel, displaying current status of that printer. The summary of the state of connected printers is shown just below the dropdown.

When ready to export G-code, a 'Send to Connect' button appears in the right panel. Clicking this button will open a dialog window presenting all your Connect printers compatible with the current project and allowing you to send the generated G-code to one of them:

image

To streamline the workflow in the other direction, there is an extra button in Connect labeled "Set as current", which is shown for every printer. Clicking it will switch back to Plater tab and select first compatible printer profile automatically. The language settings and light/dark mode in the Prusa Connect tab is automatically switched so they match what is currently selected in PrusaSlicer.

Previous way of sending G-codes to Prusa Connect using a physical printer profile is deprecated. Users should stop using physical printers for Prusa Connect, although the support will be maintained for some time. Nothing changes with regard to PrusaLink or the other print hosts.

Note that logging in or using Prusa Connect is completely optional. PrusaSlicer will work fine without the login, as it has worked before. We are considering to add a Preferences checkbox to hide the login box completely to not bother people who intend to never use it anyway. Your feedback is welcome.

Improved UI

We have decided to do several tweaks to the user interface. It is by no means a complete redesign, so the controls are mostly where you are used to find them. The most visible change is the top bar. The system menu was removed (on Windows and Linux only) and it is now accessible through a separate button at the very left of the top bar. The settings tabs are now larger and styled. The larger top bar allowed us to integrate the Search field into it, so it is readily accessible and it looks the same regardless of which tab is active (unlike in previous versions). The right part of the top bar features the Simple/Advanced/Expert switch (which is newly a dropdown) and the PrusaAccount login box.

Next, both sliders in the Preview have been completely reworked and are now part of the 3D scene, instead of being placed in a neighboring panels. Apart from looking nicer and more modern, removing the side panels means that the canvas size is larger. It also comes with a nice benefit that switching back and forth between the 3D view and Preview no longer shifts the view, so the transition is more comfortable.
Credits go to BambuStudio, whose sliders were used a starting point for the implementation (although we later ended up rewriting most of it to fit current PrusaSlicer architecture).

image

Topping the list of the UI improvements, the spacing and icon size in the toolbars in the scene was slightly changed. The toolbars are now nicer and look less cramped.

Improved G-code Viewer

The integrated G-code Viewer has been significantly reworked to improve its performance. Less data are now transmitted between the CPU and GPU and more of the work is now performed on the GPU side.

Furthermore, G-code Viewer is now able to visualize actual speed. The printer accelerates and decelerates when direction changes, so even though the required speed is set to a given value, it takes some time to reach it (if it is reached at all). The acceleration limits are (as they always were) configurable in Printer Settings -> Machine limits and PrusaSlicer always calculated with the acceleration and deceleration phases to get precise time estimate, but it did not allow to visualize them.

image

Note that the same disclaimers as for precise time estimates hold. If the machine limits are set incorrectly (in the sense that the printer uses different values), both the time estimate and the real speed visualization will not align with reality. Also, the actual speed visualization is not available for firmware flavors for which slicer does not allow setting the machine limits.

In addition, when moving the horizontal slider, there is a new popup dialog showing the data that G-code Viewer has about current segment, including the actual speed profile:
image

Single Perimeter for top and bottom layers

We have ported an option to use single perimeter for (top) solid infill layer. The feature can be configured in Print Settings -> Only one perimeter and based on the configuration, it results in single perimeter on all solid infill layers, on top solid infill layers or on topmost solid infill layers. This generally leads to improved visual look of the printed object, without sacrificing structural rigidity.

This is a frequently requested feature, which was first implemented in SuperSlicer, ported over to OrcaSlicer and then reimplemented in BambuStudio. We have ported the code from BambuStudio with only small changes. Even though we ended up not using the original SuperSlicer implementation, we would like to thank to everyone who implemented the feature there and who worked on a PR with the port (#10648), namely @supermerill, @vovodroid, @mjonuschar. Thanks also go to @BambuLab for rewriting the feature later.

Related to #7986, #9854, #10346, #10868, #11654, #11965, #12263.

New system profile updating system

Since Slic3rPE 1.40 (released six years ago), PrusaSlicer has a built-in profile updater. Its task is to deliver read-only "system" profiles, which are fine tuned for the given printer and filament, sparing the user from having to tweak the individual parameters. The database of profiles has been growing ever since, and it contains many profiles, both for Prusa products and products from other vendors.

We have now split the profile database into several profile "repositories". Profiles are updated only from repositories that PrusaSlicer is subscribed to. The repositories are selected at the beginning of the Configuration Wizard. The transition of your previous configuration requires no action on the user's side, the repositories are automatically selected based on your currently installed profiles.

This change is motivated by several internal reasons, but it also brings the following benefits:

  • Configuration Wizard loads faster, because it generally processes less data.
  • Notifications informing about an existing update are only shown for your active repositories. E.g. if you only use SL1 printer, you are not disturbed by notifications about updated filament profiles, which are not relevant to you.

Offline updates

We have also covered the problem of updating system profiles on computers without internet connection. Not connecting a computer to the internet is an obvious security measure in environments where data leaks would pose a problem (which is in most contexts, maybe apart from casual hobby printing). However, the profile updater in PrusaSlicer relied on internet connection and there was no way of updating the profiles on such off-the-grid stations. They had to rely on undocumented and very user-unfriendly copying of configuration folders, transferring settings as config bundles, etc.

It is now possible to download a file containing the configuration update for a given repository from our website (note that the URL and the website are also in an alpha stage). This file can then be loaded as an "Offline repository", and the configuration process treats is the same way as it would use an online update. This gives the user a possibility to update profiles by transferring this file to the off-the-grid computer on a removable drive, distribute it using a local network storage, etc.
These files can be loaded (and removed) also in the Configuration Wizard. PrusaSlicer remembers path to the loaded files and it tries to use them anytime when configuration update is triggered.

Seam improvements

Placement of seams is not a very well defined task, and it has many solutions. After the last big batch of changes in the seam placing algorithm (in 2.5.0-alpha2), the placing of seams was detrimental on various models.

In this release, the seam-placing algorithm was significantly changed to improve the results. We also did some other changes which allow the seam placing algorithm to do a better job. To name the most visible improvements:

  • The ordering of perimeters was optimized to avoid unnecessary long travels between individual loops.
  • To further reduce long travels, in some special cases where there are two external perimeters the seams are placed in roughly the same spot.
  • The previous algorithm for aligned seams produced the seams from discontinuous "seam chains" picked heuristically on the object's surface. Consequently, the old algorithm needed to fit a curve through the resulting seam points to achieve an aesthetically pleasing result. This worked for some models but produced worse results on others, where a strange "wiggling" appeared in places where a straight line was expected. This was particularly noticeable on very simple cylindrical models. The new seam aligning algorithm avoids this issue by employing a simpler strategy, more similar to the one used before 2.5.0-alpha2. It plans the seam from the bottom up, snapping to sharp corners. This approach generates several possible seams and selects the best one based on visibility criteria.
  • One of the improvements in 2.5.0-alpha2 was the use of a seam visibility metric for seam placement. This worked well for seam hiding and the new algorithm still uses the visibility metric as the main criterion to pick the best seam possible.
  • Previously, a single algorithm with different optimization criteria was used for both the aligned seam and the rear seam. This meant that the rear seam placement suffered from the same issues as the aligned seam algorithm (notably the artifacts produced by curve fitting). Another reported issue with the rear seam algorithm was that it had no notion of object center. In many use cases it is desirable that the seam is not only in the rear part of the object but also centered. Now there is a completely new separate algorithm for rear seam placement that tries to satisfy both criteria (rear and center).
  • The nearest seam algorithm is now fully separated. It now simply first searches for the nearest corner to the previous position. If there is none it picks the nearest point on the perimeter.

The changes are related to issues #12759, #11433, #11190, #9649, #8867, #8512, #8443, #8107, #6346, #2761, #11914 and fix most of them.

Other improvements with respect to 2.7.4

  • When multi-material painting is applied on an object, it is now shown in the 3D scene even when the multi-material painting tool is not opened.
  • When using a Physical Printer profile, a new "Physical printer" tab will be shown in the top bar. Clicking it will show the website accessible at the physical printer URL (such as OctoPrint dashboard). This is supressed when the print host is Prusa Connect, which now does not need the physical printer profile at all (as described above).
  • PrusaSlicer is now able to control heated chamber temperature (using M141/M191 G-codes). There are two new parameters in Filament Settings: minimal and nominal chamber temperature. The nominal temperature is the temperature of the heated chamber, minimal temperature is the temperature which has to be reached before the print starts. Setting minimal temperature to a lower value than nominal allows to start the print while the chamber is still heating up. In case of multi-extruder printer, the setting for the first filament is applied.
  • Shrinkage compensation option was added in Filament Settings. There are two new configuration options in Filament Settings -> Advanced -> Shrinkage compensation, one for compensation in XY plane, the other for Z. The values define relative compensation values (percents). When using multiple filaments with different compensation values in one print, the compensation is not applied and the user is notified about it. The feature is independent on the already existing XY compensation in Print Settings, which is absolute and does a geometric offset instead of relative scaling of the geometry.
  • Template filaments are now in a separate section in the Compare presets dialog.
  • When switching from a printer preset with modified value of a custom G-code, the custom G-code configuration option is not selected to be transferred to the new preset by default. Transferring custom G-codes between different profiles is almost always undesirable and doing it by mistake usually leads to bad or failed print.
  • There is a new option Prefer clockwise movements in Printer Settings. Enabling this option reverses direction of perimeters, tree supports structures etc.
  • Until now, the command line interface allowed to load config from INI or 3MF file or modify the individual values, but it was not possible to use CLI to select a profile from the list of installed profiles, which was only possible through the GUI. New command line options were now added to query currently available profiles and to use config from an installed profile for slicing. The new parameters are:
--query-printer-models                                    # prints a JSON containing list of currently installed printer profiles
--query-printer-models --printer-technology SLA           # The same, but filters SLA printers (FFF is also possible)
--query-print-filament-profiles --printer-profile "name"  # prints JSON with a list of filament profiles compatible with a given printer profile

--print-profile --material-profile --printer-profile      # Used when slicing. Loads configuration from the given profile.

With multi-material prints, you can provide multiple filament profiles to the --material-profile parameter by separating them with a semicolon. All of the parameters are compatible with the --datadir parameter which can be used to set custom configuration folder.

Bug fixes with respect to 2.7.4

  • Warning triangle informing about broken model was not refresh after 'Reload from disk' (#4682).
  • Fixed a crash during G-code generation when using binary G-code (#12390).
  • Category "Undef" does not show in Unsaved Changes dialog anymore.
  • When a printer profile is installed using the Configuration Wizard, it no longer overwrites user printer profiles with the same name if such profile exists (#3888).
  • When saving a modified preset under a name matching an existing preset, they changes were not saved (#10716).
  • Prevented saving of a new preset with a name that differs from an existing preset only in case (related to #6798).
  • Fixed incorrect loading of filament override values when loading config from specific G-code files.
  • Compare preset dialog did not respect compatibility conditions correctly.
  • Fixed occasional error during slicing (related to Voronoi diagram generation) (#12385).
  • Colorchanges are no longer loaded from 3MF when loading 'Geometry only'.
  • Fixed a crash when adding a colorchange after a specific sequence of actions.
  • Fixed a crash when importing certain SVGs (#12627).
  • When using Cut function to cut an object which already had dowels from a previous cut, a dowel would sometimes move to an incorrect position (#12206).
  • Fixed issues with negative volumes when cutting an object (#10850).
  • Fixed incorrect direction of travel at the end of the external perimeter when Arc fitting was enabled and wipes disabled (#12427).
  • When slicing objects painted by the painting tool, the slicing backend previously generated warnings about differing bed temperatures even for filaments which were not actually used.
  • Fixed incorrect calculation of skirt separation (#12621, thanks to @djdelorie).
  • Fix a crash when repeatedly cutting an object with dowel connectors.
  • Slowdown on overhangs was incorrectly applied to non-overhanging parts of the extrusion.
  • It was not possible to select an embossed text or SVG in the scene after a very specific sequence of actions.
  • Unicode characters in the 3D scene dialogs and notifications were rendered as question marks when PrusaSlicer was run in a language which does not use them (e.g. Czech characters would not show when PrusaSlicer was set to English) (#11331).
  • Fixed incorrect label in the preview slider when spiral vase mode was used (#12420).

Architecture, infrastructure

Starting with this release, only GTK3 Linux builds are provided. We no longer support GTK2. It is outdated and not shipped with Linux distros for a long time, so dropping the support should not prevent anyone from using the software. Supporting two different versions of the toolkit is tedious and it is time to move on.

PrusaSlicer - PrusaSlicer 2.7.5-rc1

Published by lukasmatena 4 months ago

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.7.5. This release adds support for new features introduced with firmware version 1.8.0 for Prusa SLA printers.

Note that this release candidate uses the same configuration folder as the regular releases.

Extended SLA layer separation configuration

In previous versions of SL1/SL1S firmware, the layer separation configuration mostly consisted of selecting a 'Material printing profile' from three predefined options (Slow / Fast / High viscosity). Based on the selection, the printer would use an internally defined set of parameters to perform the layer separation. To make it possible to fine-tune the layer separation procedure for each material, new 1.8.0-beta.0 firmware for the SL1/SL1S printers allows more detailed control over the parameters of the separation. You can read more about this change in Prusa SLA FW 1.8.0-beta.0 change log.

To keep up with these changes, PrusaSlicer 2.7.5 changes the way how the separation is configured: the 'Material printing profile' selector is no longer shown and many new parameters are now accessible in Material Settings -> Material printing profile. Note that this change is only applied for Prusa SL1 and SL1S. With all the other printers, everything stays as it was in 2.7.4.

Old projects using the 'Material printing profile' selection are automatically converted when loaded, and the values for all the parameters are set to match the legacy profile selected in the project. On the other hand, opening a 3MF project from 2.7.5 or higher in an older version of PrusaSlicer will silently ignore the new parameters and the value of 'Material printing profile' (which is retained internally and kept in our system profiles) will be used instead.

Other improvements and fixes with respect to 2.7.4

  • An extra legend window was added into the SLA preview. It shows when using the vertical slider and contains information about current layer area and time estimate.
  • Parameter 'Printer absolute correction' was added into Material Overrides.
  • Parameter 'Printer scaling correction' was removed from Material Overrides.
  • Fixed UI glitches in SLA Material Overrides tab when the window was moved from one monitor to another with different scaling factor, or when dark/light mode was switched.

Translations

  • Updated CS, PL, DE, IT, ES, FR, JA dictionaries.
PrusaSlicer - PrusaSlicer 2.7.4

Published by lukasmatena 7 months ago

PrusaSlicer

Summary

This is stable release of PrusaSlicer 2.7.4. This release improves loading of 3MFs generated by BambuStudio and fixes a single bug found in 2.7.3.

Improvements with respect to 2.7.3

  • Objects from 3MFs generated by BambuStudio now retain multimaterial painting when loaded. BambuStudio saves the data under a changed name, but because both the location and meaning are the same, PrusaSlicer now tries to load the data under the new name when it fails to find the attribute that PrusaSlicer has always used. #12502

Bugs fixed with respect to 2.7.3

  • macOS and Linux specific: Downloading files from Printables did not work correctly (#12521).
PrusaSlicer - PrusaSlicer 2.7.3

Published by lukasmatena 7 months ago

PrusaSlicer

Summary

This is stable release of PrusaSlicer 2.7.3. This release is functionally equivalent to 2.7.3-rc1. Please, read the change logs of 2.7.3-alpha1, 2.7.3-beta1 and 2.7.3-rc1 for the complete list of bugfixes and improvements over 2.7.2.

If any of the PrusaSlicer 2.7.3 alphas or betas was used before on the same machine, PrusaSlicer 2.7.3 will offer to import such alpha or beta configuration when it is first executed.

PrusaSlicer - PrusaSlicer 2.7.3-rc1

Published by lukasmatena 7 months ago

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.7.3, which fixes a single bug found in the previous beta. Please, read the change logs of 2.7.3-alpha1 and 2.7.3-beta1 for the complete list of bugfixes and improvements over 2.7.2.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Bug fixes with respect to 2.7.3-beta1

  • Removed negligible deretractions sometimes emitted into the G-code after the recently introduced spiral vase mode improvements. While they did not present actual issues with the print, they were confusingly shown in the G-code preview.
PrusaSlicer - PrusaSlicer 2.7.3-beta1

Published by lukasmatena 7 months ago

PrusaSlicer

Summary

This is the first beta release of PrusaSlicer 2.7.2, which fixes bugs found in the previous alpha. Please, read the change log of 2.7.3-alpha1 for the complete list of bugfixes and improvements over 2.7.2.

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. The beta will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

Bug fixes with respect to 2.7.3-alpha1

  • The z offset configuration option was not correctly accounted for when doing the last filament unload above the wipe tower.
  • Fixed crash when importing a specific config bundle while in SLA mode.
  • Linux specific: When changing active profile using the dropdown in the right panel, the dropdown would stay open when Unsaved Changes dialog was shown.
  • The improvements of spiral vase mode handling introduced in the previous alpha did not work correctly with absolute extruder addressing (https://github.com/prusa3d/PrusaSlicer/issues/2841#issuecomment-2012540976). They are now only applied with relative extruder addressing, otherwise it falls back to the old behaviour.
  • After performing a toolchange on the wipe tower, a G-code to set layer z is now always emitted. This is to make sure that the layer z is correct and that it was not changed in custom toolchange G-code. While the user is expected to pass such information in the custom G-code, the "z-ensuring" G-code was present in previous versions and removing it in 2.7.2 was therefore a needless breaking change (#12361).
  • Fixed blobs on the first layer when using ramping travels with absolute extruder addressing enabled.
  • Fixed issues with 'avoid crossing perimeters' function (#12432). This problem was actually fixed in 2.7.3-alpha1 already.

Infrastructure

  • Linux specific: The desktop integration code inside PrusaSlicer can now be disabled at compile time. This is useful when deploying the application using Flakpak, because it can take care of the desktop integration itself. Thanks to @eliadevito for providing a PR (#12252) and maintaining the Flatpak build.

Translations

  • Updated CS, DE, ES, FR, IT, PL, JA dictionaries.
PrusaSlicer - PrusaSlicer 2.7.3-alpha1

Published by lukasmatena 7 months ago

PrusaSlicer

Summary

This is the first public alpha release of PrusaSlicer 2.7.3. This release introduces improvements of multi-material printing, improvements of spiral vase mode and several important 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. The alpha will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

Improvements of multi-material printing

For a long time, a community-developed feature exists which claims to improve filament tips during toolchange sequences, which would in turn increase reliability of devices depending on reasonable tip shape (such as Prusa MMU1 and MMU2). This feature is referred to as "skinnydip", and the basic principle is to push the filament back into the melt zone after it was unloaded to melt off the thin string that the filament often has. We at Prusa Research have tested the feature several times, but the results were not very convincing and we never integrated the feature into PrusaSlicer. After doing more experiments recently, we found out that the technique is more convincing when preceded by very rapid ramming.

Based on that knowledge, we decided to implement very similar approach for reshaping the filament tip. Because the goal is to reshape the filament tip using the mostly empty nozzle, instead of melting off the thin filament tip, we call our approach "stamping". There are two new parameters in Filament Settings (filament_stamping_distance and filament_stamping_loading_speed) which control how far and how fast should the filament be pushed after the initial unload. The stamping moves are coupled with cooling - the stamping moves are performed between the individual cooling moves.

We would like to highlight community projects that helped us develop our Stamping step and saved our developers and testers a significant amount of time – Skinny Dip post processing script by Erik Bjorgan and Dribbling by Antimix. While we ended up with a different approach, we would like to thank both authors for all the effort invested into the project and for making it open-source! (Related to #2385, #2452, #2729, mentioning @domesticatedviking and @antimix.)

Purging volumes

PrusaSlicer allows to set purging volumes for single-extruder multi-material printers, so that each filament is purged exactly as it needs to. However, these settings were only saved in the 3MF project, not in configuration. This made setting them quite cumbersome and the user would always need to think about adjusting the default values. On the other hand, setting the values only in configuration without the option to override it in the project is also inadequate, because one may care about purging more in one project and less in another. In addition, the configuration option would make sense both in Filament and Printer Settings. #1273, #1282, #2990, #3756

In this release, two additional configuration options were added. The volume to purge is set using multimaterial_purging in Printer Settings->Single extruder MM setup. This value can be further modified on filament level using filament_purge_multiplier in Filament Settings->Advanced.

As for the project-specific override, the "Purging volumes" dialog now contains a switch. You can either use the values from Filament and Printer profiles (as described above) or define your own matrix of purging volumes (like in previous PrusaSlicer versions). When you decide to do that, the values from the configuration are not used.

image

Spiral vase mode improvements

When using spiral vase mode, the toolpaths are generated as usual and the resulting extrusions are then extruded while gradually increasing z. This approach led to seam-like artifacts on the print in places where the layer transitions would normally be (#4116, #2841). In addition, the last layer would end abruptly, creating a sharp "edge" where the extrusion ends.

Both these issues were addressed by @andrewboktor by interpolating between adjacent layers and by gradually reducing extrusion flow at the very end of the print. The improvement was recently merged into OrcaSlicer (https://github.com/SoftFever/OrcaSlicer/pull/3091), and we got a pull request with a port to PrusaSlicer. After we evaluated the feature, we decided to merge it because it is well written, well working and very useful.

Thanks to @andrewboktor for the time and effort invested into the issue, and to both @vovodroid and @tg73 for providing a pull request with a port from OrcaSlicer (#12079, #12142).

Other improvements with respect to 2.7.2

  • PrusaSlicer is now able to open 3MF files generated by BambuStudio and load geometry from them. (#10718, PR #10808, thanks to @cmguo). Please note that BambuStudio allows to save a 3MF containing G-code only, which is not supported by PrusaSlicer and loading of such 3MFs will fail.
  • Metadata of binary G-code have a new item named objects_info, which lists all the objects in the print and their boundary polygons. The same info was added into the comments at the end of ASCII G-codes.

Bugfixes with respect to 2.7.2

  • Pressure equalizer limits were not respected when Dynamic speed on overhangs was used (#9485). This is now fixed. Pressure equalizer is also not applied after long travels. Many thanks to @MGunlogson for providing a fix in his pull request #9622.
  • Fixed a bug resulting in inadequate anchoring of bridging extrusions. This bug was introduced in PrusaSlicer 2.6.0. #10231, #11500, #11633, #11173, #11117, #9999, #10313, #11150, #10493
  • When using Cancel object feature, the marks denoting where one object ends and another starts were placed incorrectly. As a result, there was a missing deretraction after all travels to objects which would normally be printed following the cancelled object. The issue was even worse with sequential printing, where the uncompensated retractions on the cancelled object summed up and could result in filament being unloaded past the driving gears.
  • When arcs (G2 and G3 G-codes) were enabled, PrusaSlicer generated toolpaths outside the print area in certain cases (#12381).

Translations

  • Updated POT
  • Added Slovenian translation (#12422, thanks to @jernejp21)
PrusaSlicer - PrusaSlicer 2.7.2

Published by lukasmatena 8 months ago

PrusaSlicer

Summary

This is the stable release of PrusaSlicer 2.7.2, fixing one bug found in the previous release candidate. Please, read the change logs of 2.7.2-alpha2, 2.7.2-beta1, 2.7.2-rc1 and 2.7.2-rc2 for the complete list of bugfixes and improvements over 2.7.1.

If any of the PrusaSlicer 2.7.2 alphas or betas was used before on the same machine, PrusaSlicer 2.7.2 will offer to import such alpha or beta configuration when it is first executed.

Bugs fixed with respect to 2.7.1

  • When specific extruder was set for the wipe tower and z position has changed in custom toolchange G-code, the z position was not correctly accounted for.
PrusaSlicer - PrusaSlicer 2.7.2-rc2

Published by lukasmatena 8 months ago

PrusaSlicer

Summary

This is the second release candidate of PrusaSlicer 2.7.2, which fixes bugs found in the previous release candidate. Please, read the change logs of 2.7.2-alpha2, 2.7.2-beta1 and 2.7.2-rc1 for the complete list of bugfixes and improvements over 2.7.1.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Bug fixes with respect to 2.7.2-rc1

  • When using the "No sparse layers" wipe tower, the print head sometimes lowered before travelling to the wipe tower, digging into an object and destroying the print (#12330).
  • Fixed a crash when loading certain AMF files (#12332).

Localization

  • Updated JA dictionary.
PrusaSlicer - PrusaSlicer 2.7.2-rc1

Published by lukasmatena 8 months ago

PrusaSlicer

Summary

This is the first release candidate of PrusaSlicer 2.7.2, which fixes a single bug found in the previous beta. Please, read the change logs of 2.7.2-alpha2 and 2.7.2-beta1 for the complete list of bugfixes and improvements over 2.7.1.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Bug fixes with respect to 2.7.2-beta1

  • Fixed incorrectly applied retraction in vase mode when ramping travels were enabled (#12305).
PrusaSlicer - PrusaSlicer 2.7.2-beta1

Published by lukasmatena 8 months ago

PrusaSlicer

Summary

This is the first beta release of PrusaSlicer 2.7.2, which fixes bugs found in the previous alpha. Please, read the change log of 2.7.2-alpha2 for the complete list of bugfixes and improvements over 2.7.1.

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. The beta will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

Bug fixes with respect to 2.7.2-alpha2

  • Travels with standard lifts (non-ramping) were incorrectly generated (#12257).
  • With option "Retract on layer change" disabled, there was a retraction missing before the first travel on each layer (#12219).
  • Variable layer height limits were not applied correctly when using multi-extruder printer with different values of min and max layer height (#12248).
  • When z travel speed was set to zero, it was incorrectly exported into the G-code, effectively stopping the print. Instead, regular travel speed should have been used for the z travel (#12258, #12293).
  • When Print / Filament / Printer profiles contained different values for the same key (which should normally not happen, providing the profiles are correct), the misplaced keys could have been used instead of the correct ones. (#6533, https://github.com/supermerill/SuperSlicer/issues/4079, fixed by PR #12127, thanks to @supermerill).

Translations

  • Updated CS, DE, ES, FR, IT, PL dictionaries.
  • Updated POT for community translators.
  • Updated BE dictionary (#12208, thanks to @lidacity).
  • Updated FI dictionary (#12128, thanks to @J3r0github).
  • Updated RU dictionary (#12220, thanks to @AndylgTom)
PrusaSlicer - PrusaSlicer 2.7.2-alpha2

Published by lukasmatena 8 months ago

PrusaSlicer

Summary

This is the first public alpha release of PrusaSlicer 2.7.2 (alpha1 was not public). This release introduces improvements of multi-material segmentation algorithm, improved M600 G-code handling, SLA overrides and 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. The alpha will ask whether it should import a configuration from previously run PrusaSlicer versions on the first start.

Multi-material segmentation improvements

In PrusaSlicer, we use Voronoi diagrams as part of several features such as Arachne, multi-material segmentation, gap-fill, and thin-walls. We use the Voronoi diagram implementation from the Boost library because it is both fast and numerically stable. Unfortunately, it rarely produces a non-valid Voronoi diagram for some input polygons (the graph is not planar, missing vertices, etc.), which could cause a crash of PrusaSlicer, artifacts on external perimeters with Arachne or spilled layers with multi-material segmentation.

In 2.5.0, we implemented several mechanisms to detect a non-valid Voronoi diagram, and by manipulating the input, we could ensure that the Voronoi diagram would be valid. These mechanisms were originally implemented only for Arachne, and they were heavily tight with Arachne's data structures.

In this release, we have generalized these mechanisms to be used anywhere in PrusaSlicer. This itself solved many of the spilled layer issues with multi-material segmentation and also one crash during thin-wall generation (https://github.com/prusa3d/PrusaSlicer/issues/10632).

We also reimplemented a significant part of multi-material segmentation from scratch, which, together with the changes above, should resolve all issues (https://github.com/prusa3d/PrusaSlicer/issues/11774) with spilled layers for multi-material segmentation.

voronoi

Color change (M600) improvements

Place the color change (M600) after moving to the next layer and position

Previously, PrusaSlicer placed the color change (M600) right after the previous layer was finished. The default implementation of M600 in all firmware will return to the position before M600. As a result of this behavior, the extruder with changed filament returns to the place that was printed with a previous filament and could create a blob with new material at that position (https://github.com/prusa3d/PrusaSlicer/issues/2672).

Our community, especially @Nohus, came up with a solution (https://github.com/prusa3d/PrusaSlicer/pull/9036) of placing the color change after moving to the next layer and position, which proved to be much easier and more universal solution than changing the M600 implementation on the firmware side. Thank you, Nohus, for your implementation and all of you who participated in testing his PR.

Selecting the correct tool before performing a color change (M600) on multi-tool printers

Previous implementations of color change for multi-tool printers left picking the right tool on the firmware and user. Also, M601 (pause print) was placed instead of M600 (color change), which is how it was intentionally implemented for MMU. That case issue especial on our Prusa XL printers (https://github.com/prusa3d/PrusaSlicer/issues/11516, https://github.com/prusa3d/PrusaSlicer/issues/11517, https://github.com/prusa3d/PrusaSlicer/issues/11600, https://github.com/prusa3d/PrusaSlicer/issues/11792).

This proved to be insufficient for multi-tool printers, mainly because there is a special sequence of extruder movements that need to be done before parking the tool, and PrusaSlicer depends on it.

Based on this, we implemented picking the tool on which the color change will be performed. After the color change, it picks the previous tool (if the tool for which the color change was performed no longer prints on that layer).
Along with this, we are now emitting the M600 (color change) for multi-tool printers instead of the M601 (pause print).

Ramping travel improvements over PrusaSlicer 2.7.1

In PrusaSlicer 2.7.1 we introduced ramping travels together with helical layer changes that both should mitigate stringing and oozing especially on long travels between objects. In this release we continue improving the ramping travels.

Replace helical layer changes with proper ramping travels

Based on user feedback, it turned out that helical layer changes weren't good enough and sometimes even caused visible blobs or artifacts on external perimeters of prints (https://github.com/prusa3d/PrusaSlicer/issues/11940, https://github.com/prusa3d/PrusaSlicer/issues/11800).

We thus decided to replace the helical layer changes with the ramping profile previously only used for travels. This change ensures that the stringing is still mitigated without the disadvantages of the helical movements.

Smoothing of ramping travel moves

During a ramping travel the print head moves in both XY plane and Z. If the travel is sufficiently long, the print head will reach the desired lift before the travel ends. This means that the Z-motor has to decelerate to stop, while the X and Y motors are still moving. Due to the limitations of motion planners in printer firmwares like Marlin and others, this Z-axis deceleration may lead to slight slow down of the movement in the XY plane which is not necessary.

Under the right circumstances this issue can be mitigated on Marlin-based printers by smoothing the ramping travel moves. PrusaSlicer now automatically employs this slight optimization when applicable. This further helps to prevent stringing and may even slightly improve print times by a very small amount.

Lift before obstacles

During long travels above already printed parts of models, ooze material may be so long that it can be wiped on the perimeters of other objects. Increasing the Z-hop distance could reduce this issue, but it also increases the print time when it isn't needed to do such a big Z-hope.

We implemented the lift before obstacles feature that ensures that during crossing already printed objects or parts the nozzle will be at chosen distance to not wipe oozed material on perimeters of that object.

SLA overrides

PrusaSlicer classifies the SLA parameters into three groups: Print, Material and Printer parameters. This parameter classification is certainly artificial and not flexible enough. We are now introducing a concept of Material Overrides in SLA, which is mimicking the Filament Overrides feature known from FDM slicing (introduced in 2.1.0). It allows to override selected configuration options from Print or Printer Settings in Material Settings. There is a new parameter page in Material Settings, which allows to check the parameters which would be overridden and to redefine their value.
image

Other improvements with respect to 2.7.1

  • Windows specific: The cut tool sometimes produces non-manifold meshes. This situation is now detected and the user is advised to use Windows repair algorithm on the resulting objects (#7243).

Bug fixes with respect to 2.7.1

  • Fixed incorrect partial arrange in certain cases.
  • Fixing arrange issues with aligning to unprintable objects when doing Shift+A.
  • Fixed arrange which sometimes put the wipe tower slightly out of bed (#11367, #11410)
  • Fixed UI glitch when setting object dimensions to extremely high values (#11617).
  • Fixed a bug in generation of brim and skirt preview in the preliminary G-code preview (#11821, thanks to @supermerill)
  • Fixed an issue Ctrl+Shift+Tab shortcut, which incorrectly collapsed sidebar (#7799).
  • Fixed wiggling of Rotate gizmo when moving an object in certain cases.
  • Fixed missing updated when moving through dropdown items using keyboard arrows (#11817).
  • Improve filtering of special characters on Klipper EXCLUDE_OBJECT labels (#11802, PR#11813 by @jschuh - thank you).
  • Fixed layer change color dialog opening off screen (#10419).
  • Fixed occasional crash during thumbnail generation for SLA printers.
  • Fixed slicing issues such as missing infills and similar on multi part models when sliced with object-specific settings (#11721).
  • In SLA mode, it was not possible to use custom file extension (configured in Output Settings).
  • Fixed incorrect calculation of wipe length in certain cases, leading to shorter wipes than configured.
  • Fixed various issues and UI glitches in text/SVG embossing (#11868, #12002).
  • Fixed missing update when a new printer was added while a physical printer preset was selected.
  • Scrolling of the window was incorrectly performed when using mouse wheel over a dropdown.
  • Windows specific: Drop down menus appeared outside of PrusaSlicer and could not be opened again (#11988).
  • When loading an object from a 3MF, the suggestion to rescale the model is not shown, because 3MFs store the information about the correct unit (unlike STL files).
  • Fixed an incorrect check of supported OpenGL version, which led to a hard crash when OpenGL 3.2 was not available (#12000).
  • When loading a 3MF for MM printer, PrusaSlicer offers to load individual models as parts of a single object. This dialog did not show up for specific geometries (#11547).
  • PrusaSlicer did not start on some Windows Server installations due to a missing DLL (wlanapi.dll). The library is now loaded in runtime and the respective features are not available when not found (#11790).
  • Fixed layout of configuration values in parameter tabs when the controls are placed next to each other.
  • Fixed a rare crash when switching printer profiles (#12005).
  • Fixed missing update when toggling "Show incompatible print and filament presets".
  • Fixed update of extruder dropdown when switching application color mode with SLA printer selected.
  • New G-code placeholders extruded_volume, extruded_volume_total, extruded_weight and extruded_weight_total (introduced in 2.6.0) did not include the volume / weight of the wipe tower. This is now fixed.
  • Template filament profiles did not show for custom printers in a specific case (#11991).
  • Dynamic speed on overhangs feature did not take into account maximal filament volumetric speed, meaning that it could violate it and speed up on the overhang.
  • When object name is changed, the G-code is newly reexported so the objects label in the G-code match the updated names (#8059, #12193).
  • Fixed a crash when loading an invalid 3MF.
  • When scaling a volume of a sinking object, PrusaSlicer incorrectly placed the model on the bed.
  • Legend in G-code preview was not automatically switched to Color Print view when color change for MM printers was set.
  • Z-lift was incorrectly not applied for the first travel move (#11843).

Other

  • It is now again possible to build PrusaSlicer without GUI (#11992).

Architecture, infrastructure

PrusaSlicer no longer uses Perl

PrusaSlicer is based on Slic3r project, which was originally written in Perl scripting language. Over the years, various parts were rewritten into C++, first the slicing core, then the user interface. We have now completed the transition by rewriting all remaining unit tests still depending on Perl into C++. Goodbye, Perl. You will not be missed.

PrusaSlicer - PrusaSlicer 2.7.1

Published by lukasmatena 10 months ago

PrusaSlicer

Summary

This is the stable release of PrusaSlicer 2.7.1, bringing minor improvements and several bugfixes with respect to 2.7.0.

Improvements fixed with respect to 2.7.0

  • The option Export as binary G-code was removed from Print Settings. Instead, there is a new option in Printer Settings named Supports binary G-code so it can be set at printer level. There is also a new global switch in Preferences->Other, which controls whether binary G-code will be generated for printers which support it. It is therefore easy to turn the feature on or off without doing any changes in profiles (#11734, #11873).
  • Wipe tower weight was added into G-code metadata so it can be easily displayed in the print statistics on the printer's display.

Bugs fixed with respect to 2.7.0

  • When ramping travels were enabled, sometimes a perimeter was missing at the layer where the spiral starts.
  • Fixed a crash when selecting embossed text while an SVG tool is opened (#11759).
  • Helical layer changes could result in out of bed moves (#11754).
  • Helical layer change was enabled even when there was no retraction on layer change (#11709, #11761).

Translations

  • Updated CS, DE, ES, FR, IT, JA, PL dictionaries.
  • Updated RU dictionary (#11742, thanks to @AndylgTom).
  • Updated POT file for community translators.
PrusaSlicer - PrusaSlicer 2.7.0

Published by lukasmatena 11 months ago

PrusaSlicer

Summary

This is the stable release of PrusaSlicer 2.7.0, introducing SVG emboss, binary G-codes, ramping travels, support for G2/G3 G-codes, support for Cancel object function and much more. It also fixes many bugs. Please, read the change log of 2.7.0-alpha1, 2.7.0-beta1, 2.7.0-rc1 and 2.7.0-rc2 for complete list of changes with respect to 2.6.1.

If any of the PrusaSlicer 2.7.0 alphas or betas was used before on the same machine, PrusaSlicer 2.7.0 will offer to import such alpha or beta configuration when it is first executed.

Bugs fixed with respect to 2.7.0-rc2

  • When selecting a printer in Configuration Wizard and exiting it using the 'Finish' button without selecting any filaments, the default filaments for the printer were not installed.
  • Physical printers using the alpha profiles in 2.7.0 prerelease versions did not show after the alpha designation was removed (#11727).
  • Fixed a crash sometimes occurring when using the sliders in Preview (#11728).
PrusaSlicer - PrusaSlicer 2.7.0-rc2

Published by lukasmatena 11 months ago

PrusaSlicer

Summary

This is the second release candidate of PrusaSlicer 2.7.0. It fixes several bugs found in the 2.7.0-rc1. Read the change log of 2.7.0-alpha1, 2.7.0-beta1 and 2.7.0-rc1 for complete list of changes with respect to 2.6.1.

The release candidate saves its profiles into regular PrusaSlicer configuration directory. When you first run it, it will search for all configurations produced by alpha or beta versions and offer to create a copy of the latest one.

Bug fixes with respect to 2.7.0-rc1

  • macOS specific: Fixed a crash when using the spin controls in parameter pages (#11688).
  • Fixed incorrect generation of a thumbnail in specific cases (#11686).
  • Fixed wipe tower generating outside of its perimeter when extra spacing parameter was used (#11692).
  • Fixed occasional stray extrusions when generating the wipe tower brim (#11708).

Translations

  • Updated JA dictionary.