-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Seam: use scarf joint to minimize seam visiblity #3839
Conversation
I'll post a few comparasions later. Meanwhile, feel free to test for yourself once the CI build is completed: slop_test.zip |
oh wow, the result is truly amazing! |
Alright this is really interesting. To get it to work properly (I think?) I had to make some extra changes - disabling wipe on loops and external loops, and also set the seam gap to 0. Left the slope settings default. Settings in image - (printed in PETG, so its stupid hard to take a proper pic its so shiny) Top - enable sloped seam, disable wipe on loops, disable wipe on external loops, seam gap 0 Love to see innovation like this and the flow compensation stuff. |
thanks in advance |
The tooltip should say that the perimeter to be optimised needs to be printed first. Usually that would be the external perimeter, but something else where the bore of a tube is to be optimised. I think that the user should be given a choice of how long the scarf should be, with an entire perimeter being the longer extreme. (2. Yes, I think my scarf seam suggestion was first, but vgdh's seems to have come up with the idea independently.) |
There is a "Slope length" option that do this, but slightly differently. Currently it applys the slope on perimeters that longer than this value, and do the normal seam otherwise. I think I'll update that so it uses the perimeter length as the limit instead as you described.
I agree that you posted this idea on PS' github first, though here is the thing, I didn't know that until someone raised #3408, and at that time I've already played around with #3211 for a while, including that post-process script, that's why I called this feature "sloped seam". I hope you understand that I didn't mean to intentionally ignore your contributions. And thanks for what you've done to the community! |
I never thought that anyone was intentionally ignoring my post, and don't really care much, as long as the feature is available. Nonetheless, I do think that 'scarf seam' is a better name than 'sloped seam' for two reasons. First, scarf seams are well known to the large woodworking community and that name does not require a neologism. Second, 'sloped seam' would apply equally well to a sloping (i.e. non-vertical) arrangement of conventional end to end seams on a part. Users of the slicer will need to learn that 'sloped seam' refers to a particular usage of a common word, which is a less simple task than using a standard technical term, even where that term might be new to the user. |
Look how wonderful things are brewing up in this community! Call for more testing results/photos so that @Noisyfox can refine the parameters further! 👍 |
I see. I just googled it and seems it's called scarf joint (because when I googled "scarf seam" I literally got a whole page of scarf)? Maybe let's call this option scarf joint then? |
Scarf joint seam works for me. |
Just to clearify, seam gap should not matter when this is enabled, as I've already disabled the seam gap for external perimeter when scarf is used. If seam gap does make a difference in your test, then that's a bug and needs to be fixed. |
I realized after looking carefully at the sliced preview and changing the setting back and forth that that is the case. It is working as you intended. I'm just running a few more test circles to see what effect some of the other settings actually have on the print. I changed everything all at once to in the first test, not very scientific. |
I got it to work with the command xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app I am going to use the newest one though. |
Huge thanks to @Noisyfox for the fantastic work A big shoutout to @vgdh and @MichaelJLew for coming up with this brilliant idea and the early-stage prototype. And, of course, a heartfelt thank you to everyone who participated in the testing and discussion, with a special mention to @psiberfunk for those incredible scientific experiments. This PR has been merged. The feature will be available in the nightly build as soon as the CI/CD pipeline completes the build. Cheers to all! |
I’ll update the printables post later today so people get less confused |
@psiberfunk I remember you encountered this issue too. |
I think the solution was wider wall widths but I may remember wrongly - theory is you’ve got more flow to play with while tapering |
Yeah, makes sense. |
It’s a complex interplay of many factors @SoftFever . Are you using the optimized settings from my printables posting ? If not, start there ! |
@psiberfunk, I'm guessing you are the guy behind the Pintables post and the excel sheet v2 right ? I made a multi material print that clips together (https://thangs.com/designer/BigBricks/post/Stormtrooper%20%2ANEW%20RELEASE%2A-819) but I ran into issuers where the seams stick out a good millimetre and is not following the geometry of the model, but just goes strait up. Also how do I read the settings from the 3mf file you provided ?, bcs. I can see the start and end of my seams pretty well, but it has to be my fault I'm pretty sure bcs. i dont know how to read you settings or if i have to print the file and see what works best for me...
(to make it short and easy to answer) |
@SoftFever sorry but I don't see the files I have to download |
Ok, so first comment on github, please let me know if I did something wrong :-) |
Yes it should all be the same , something maybe not right with seam alignment settings ..? Try painting the seam and see what it does ideally this type of troubleshooting and comments would be done on the printables site , as its optimization and usage related rather than feature related : https://www.printables.com/model/783313-better-seams-an-orca-slicer-guide-to-using-scarf-s/comments Since this Pull request has been merged, this thread should probably be closed @Noisyfox @SoftFever . I’m happy to try and support people over on printables . Can we close/lock the thread here so it doesn’t become a black hole ? Unfortunately the comment history feature in GitHub is not a great place to discuss this type of thing because it’s very difficult to search, and we will keep getting off topic with respect to R&D vs support requests . |
New thread on this topic could be : #4317 with the new option Conditional Scraf Joint ? |
That’s probably the right place to discuss logic and testing and R&D, but probably not a great forum for support /help discussions . |
I added a discussion for scarf joint seams in General: Scarf joint seams |
This comment was marked as off-topic.
This comment was marked as off-topic.
You’ll need to experiment with tuning. See the printables post for tips |
Try to use 0.1 start height. |
So i tried the scarf seam. I am not sure I prefere it or not. It certainly is not as visible from a greater distance but there seams to be some over and underextrusion. I did think it coult be pressure advance, but to be honest I did some pa calibrations tests and refined it a bit but not much. Any suggestions how to work aroung these inconsistencies? |
Dose it work in Bambu? |
Also add patches to fix compatibility isues with cgal 6.0.x. PrusaSlicer 2.9.0 Bugs fixed with respect to 2.9.0-rc1 - Fixed a crash in a specific case when slicing multimaterial-painted objects (#13676, #13798). - Fixed a crash when slicing multimaterial-painted objects on a printer with less extruders than painted. - Fixed highlighting of the active bed in case that the bed has a big custom model which would overlap neighboring beds (mentioned in #13791). PrusaSlicer 2.9.0-rc1 Bugs fixed with respect to 2.9.0-beta1 - Windows specific: Export G-code button in the right panel was flickering on mouse move. - The Slice Now button did not update after loading an object from the shape gallery (#13777). - Fixed undefined behavior when sending G-code to print host. The issue only manifested on macOS with address sanitizer (#13766, #13759, #13750). - A tenth bed was offered to the user after loading the project already containing maximum number of beds (a visual glitch, it was not possible to actually use the bed). - Fixed empty thumbnail after adding a custom object into the shape gallery (bug introduced in 2.9.0-alpha1). - Fixed freeze after a communication with Prusa Account returned a specific error code. This bug was uncovered by a problem on the server side couple of days ago which affected many PrusaSlicer users (#13768, #13762, #13765, #13762, #13745, #13757, #13758, #13748). Extra countermeasures were applied on both sides and they should prevent this from happening again. - Fixed incomplete update when switching from FDM mode to SLA: out-of-bed status of volumes and thumbnails in bed selector were not updated correctly. - Fixed a crash during slicing introduced between 2.9.0-alpha1 and 2.9.0-beta1. - Fixed a crash when switching application language while using the bulk slicing screen. - macOS specific: Loading screen displayed when web content is being loaded did not show. Localization - Updated POT. - Updated CS, PL, DE, IT, ES, FR, JA dictionaries. - Updated RU dictionary (#13438, thanks to @AndylgTom and Dmitry Sorkin). PrusaSlicer 2.9.0-beta1 This is the first beta release of PrusaSlicer 2.9.0. This release introduces more improvement related to multiple beds, several other improvements and couple of 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. Important note for Linux users: As noted during 2.8.x releases, we are now using Flathub as the only official distribution channel of PrusaSlicer on Linux. The reasons behind this decision and what it means for you are described at the end of 2.9.0-alpha1 release log. Multiple beds - bulk slicing and export It is now possible to schedule slicing of all prepared beds without switching them manually. The bed selector dialog in Preview now has an extra button. Pushing it activates a "bulk slicing" mode, and PrusaSlicer will start slicing all the beds one by one. When it is finished, a combined print statistics is shown. It is also possible to export all the sliced beds using the usual button in the right panel. It now opens an "Open folder" dialog, and after a folder is selected, an extra dialog appears where it is possible to change names of the individual files. One can also uncheck one or more of the beds to not export them. The same dialog opens when sending multiple G-codes to Connect. Support for printing with different nozzle diameters Experimental support for printing with different nozzle diameters on multi-tool printers, such as the Original Prusa XL, is now available for experienced users and developers. This workflow allows combining nozzles of different diameters (e.g., for fine perimeters and fast infill) but requires a few profile adjustments. Key changes: - Automatic extrusion width calculation can be easily enabled (Print Settings -> Advanced -> Automatic extrusion widths calculation), adjusting based on nozzle diameter. - Automatic infill combining (Print Settings -> Infill -> Automatic infill combination) helps optimize printing when using larger nozzles for infill. This feature, inspired by OrcaSlicer, simplifies setup. Thanks to OrcaSlicer for the idea! - It is now possible to use the wipe tower and supports with multiple nozzles of different size. Important Notes: - Some nozzle combinations may not be compatible. Be cautious as these setups could lead to failed prints. - For detailed step-by-step instructions and limitations refer to our help. Closes #13159, #13587. Other improvements with respect to 2.9.0-alpha1 - When using slicer from command-line interface and slicing a 3MF, the thumbnail in the 3MF is used for G-codes. Because thumbnail generator relies on OpenGL, PrusaSlicer cannot easily generate its own thumbnail. #7878 - When multiple beds are used, each is now labeled with a number. The number also appears in the Bed selector dialog in Preview, along with a status icon informing about current situation of the bed (not sliced / slicing in progress / slicing finished). - Autocenter feature was removed. The feature was a candidate for removal for many years, because it caused more confusion than good. - Extruder stall detection is disabled for XL before ramming. - Bugs fixed with respect to 2.9.0-alpha1 - Loading binary G-codes into standalone G-code Viewer was extremely slow. - Fixed issues with 'avoid crossing perimeters' feature (#13445, #13478, #12432, #13669). - Fixed incorrect display of volumetric flow rate in preview when "Use relative distances" was switched off (#13623). - Fixed never-ending loading cursor on Linux when loading webpage in WebView panels. - Fixed arrange not arranging to front on XL (#13650). - Fixed wipe tower not auto-disabling on single filament print on MM printer (#13649). - Fixed export of M73 C lines to G-code to fix displaying remaining time to color change. This was partially fixed in 2.9.0-alpha1 already, but not in all cases. #4734, #12849 - Fixed couple of camera glitches. - Fixed missing updates of shells in preview after moving object using the right panel. - Fixed incorrect placement of objects after cut (they would end up on an unexpected bed). #13637 - Stopped displaying warning dialog with "Error running JavaScript" phrase (#12950). - Fix objects incorrectly rearranging after saving and reloading a 3mf in 2.9.1-alpha1 (#13651). - Custom G-codes and ColorChanges did not load from project when multiple beds were used (#13651). - Object names emitted into G-code for Cancel Object G-codes are now trimmed. Very long names were causing issues when sending the G-code using OctoPrint (#13314). - Changed reading of keyboard shortcuts in WebView on MacOS. Current implementation of wxWidgets's WebView has completely different approach to keyboard shortcuts. On Widows, all kind of WebView shortcuts are read and implemented while no "PrusaSlicer shortcuts" are read. On Linux it is opposite situation - only "PrusaSlicer shortcuts" are read inside WebView. It is not the best, but behavior on Windows and Linux is acceptable. While on Mac no shortcuts are read at all. So far we have added reading and handling of cmd + Q, cmd + M and cmd + R. In future we would like to unify shortcut reading on all platforms. - Menu button "Reload from disk" and "Reload WebView Content" now correctly share "F5" shortcut. Reload from disk shortcut was not working in last release (#13693). - Fix of clipping logic for clipping arcs with negative radius. (#13678). - Fix splitting to object moving some of the just split object parts to a different bed (#13661). - Fix of search bar losing focus while typing (#13691, thanks to @themanyone). - Fixed slow generation of cancel object polygons by performing union operation of polygons incrementally. - Prevent empty slicing notification when switching beds. - Height range painting tool now always use world coordinates and thus works correctly with rotated objects (13631). - During startup, non-flatpak desktop files of older PrusaSlicer versions are silently searched for and deleted. This is necessary for correct opening of our custom URL (used for login and model opening from Printables). Unfortunately searching for desktop files has troubles to search all possible paths due flatpak changing XDG_DATA_HOME and XDG_DATA_DIRS which stores potential paths for desktop file creation. Thus some old desktop files might remain in the system. In such case, it is possible to delete those inside the old version with Configuration -> Desktop Integration -> Undo. - Fix of uninitialized ExtrusionLine when Fuzzy skin was applied on Arachne extrusions to fix combining Fuzzy Skin and Seam Painting (#13614). - Fixed incorrect seam placement with painted fuzzy skin (#13640, #13614). - Fixed negative seam gap values causing invalid extrusion generation (#13678). - Fix missing update of preview when switching beds in 3D scene. - Fix empty layers when multi-material painting and modifiers are used (#13645). - Fix of ignored assigned extruders to modifiers when multi-material painting is used (#13645). Infrastructure - Fix CMake bugs leading to build errors on Gentoo and possibly other linux distributions (PR #13609 by @jmickelin building upon PR #13080 by @Rose- PrusaSlicer 2.9.0-alpha1 This is the first alpha release of PrusaSlicer 2.9.0. This release introduces support for multiple beds, Printables integration, scarf seams, better fuzzy skin and other 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. Important note for Linux users: As noted during 2.8.x releases, we are now using Flathub as the only official distribution channel of PrusaSlicer on Linux. The reasons behind this decision and what it means for you are described at the end of this release log. Thanks for your understanding Multiple beds (#10704) It is now possible to work with multiple beds in the scene. This allows the user to handle more complicated projects (which do not fit a single bed) more easily than before. This feature is already known to BambuStudio users (the implementation in PrusaSlicer is completely independent). Beds handling To make the workflow fluid and not intrusive to users using only a single bed, there are no buttons to add or remove beds. A new bed is offered anytime you are dragging an object outside of bed for more than 1 second (unless the object is dragged to the new bed position faster, in which case it shows up immediately). This allows to create a bed and place an object on it in a single operation. The beds are placed in a compact grid pattern, with a hard limit of 9 beds. One bed is always set as active, which is controlled by left-clicking it. Operations such as "Import STL" and similar are processed on the active bed. The individual beds can be thought of as almost independent projects, each having its own set of color changes, its own wipe tower and so on. Currently the only limitation is that all the beds must use the same configuration (i.e. you cannot have an MK4 bed next to a MINI). Arrange The Arrange button in the top toolbar was duplicated. The arrange function can either do the global arrange (as it always could) or arrange only objects on the active bed (which includes objects partially on it). The settings dialog shown when right-clicking the button is common to both. Compatibility with older PrusaSlicer To keep the number of changes to our 3MF project files as small as possible, the positions of the beds are not explicitly saved, but they are instead inferred from positions of the objects. The new project files can therefore be loaded into older versions of PrusaSlicer (they obviously do not show the extra beds, though). As for loading older PrusaSlicer projects. PrusaSlicer actually had minimal concept of virtual beds for many years, which is obvious from Arrange function. When there were too many objects to place on a single bed, PrusaSlicer would keep adding them spaced as if there were other beds next to each other. If you load such a project into PrusaSlicer 2.9.0, this situation is detected and the objects on these virtual "beds" are moved so they actually end up on a non-virtual bed in the grid. Preview When switching to Preview, a bed selector toolbar is shown in the top-right corner, which was the last remaining space where nothing was placed yet. We were considering a bigger reorganization of the Preview scene, but in the end we decided to purposefully leave the controls where they were so we do not break what people are used to. We are planning to do a general overhaul in future, so it makes sense to us to postpone the big changes to do them in one go. Switching the beds in Preview moves the camera so the bed switched to is in the same position as the one switched from. The 'Sliced Info' statistics and 'Export G-code' button in the right panel are related to currently active bed. What is in the works It is currently not possible to slice all the beds in one step. This will be added before the 2.9.0 final. We only released the alpha a bit early to start collecting feedback. Printables integration (#13207) Printables.com has been fully integrated into the PrusaSlicer ecosystem, complementing the earlier integration of Prusa Connect in version 2.8.0. Printables is now a persistent tab in the top bar, available to all users regardless of login status. While anonymous users can browse and download models, logged-in users gain access to additional features such as managing collections, viewing liked and downloaded models, and sending G-code directly to Prusa Connect. On model pages, three key functions - Slice, Download and Print - interact seamlessly with PrusaSlicer. The Slice button, identifiable by the PrusaSlicer logo, mirrors the functionality of the browser version. Clicking it redirects the user to the Plater tab, where the download starts automatically. The destination directory for downloads can be set in Configuration -> Preferences -> Others. The download notification now includes a link back to the model page on Printables. Once the download is complete, the data is added to the Plater using the same logic as the drag-and-drop mechanism. The Download button provides similar functionality with two key differences. First, the user remains on the Printables tab, with a simple notification confirming the download in the bottom-right corner. As with Slice, a detailed notification is available in the Plater tab, including a button to open the destination directory. Second, the downloaded file is not opened or added to the Plater. The Print button is exclusively for logged-in users and enables direct printing of G-code files. A background check between Printables and Prusa Connect ensures printer model compatibility. If a suitable printer is detected, users can start printing directly from Printables without needing to slice or download the model. A printer selection dialog, similar to the upload dialog in PrusaSlicer, is displayed to complete the process. Printables is implemented as a webpage within a WebView, allowing its content and functionality to improve independently of PrusaSlicer releases. Scarf seams (#11621) A feature dubbed "scarf seams" by the community is introduced. The main purpose of this feature is hiding visible seams on smooth perimeters. It is achieved by overlapping extrusions at the start and end of a perimeter loop. The name of the feature originates from a similar technique in woodworking called "scarf joint". It is possible to turn on scarf seams for both inner and outer perimeters and to turn it off for holes in a print (e.g. a hole for a screw). Also, by default, when scarf seams are turned on, it only generates the scarfs if the perimeter is considered smooth. This can be turned off. Currently, the scarf seams are best visualized using the "Actual volumetric flow rate" option in the preview legend. This way it is clearly visible where the scarf joint begins and ends. In the image above there is a cylinder printed with both a normal seam and scarf seam. Number one is the scarf seam start, number two is the scarf seam end and number three is a normal seam. The scarf seam greatly reduces the visibility of the usual seam. Yet, it is not a silver bullet as it may generates a new "ghost" seam, albeit way less visible than the original seam. Settings related to scarf seams are located under Print Settings -> Layers and Perimeters -> Advanced. It is important to note that scarf seams are not our original idea. As far as we know the original idea came from @MichaelJLew in #11621 and simultaneously from @vgdh in SoftFever/OrcaSlicer#3211. The feature was then implemented by @Noisyfox to OrcaSlicer in SoftFever/OrcaSlicer#3839. Even though our implementation is original (because of our specific code base needs), for the most part the functionality mimics the available functionality in OrcaSlicer. We would like to express our gratitude to the many people that got directly or indirectly involved with the development of this feature, with a special thank you to @Noisyfox who did a lot of the heavy lifting required to implement it in OrcaSlicer. Fuzzy skin improvements Since fuzzy skin was integrated into PrusaSlicer, it was always applied to the whole perimeter. This behavior had drawbacks, such as when fuzzy skin was applied to the modifier, objects were split into several regions, and each region had its own perimeters that divided the layer into several parts (#6881, @Noisyfox, which was the base for our implementation. We incorporated several other fuzzy skin improvements (like poor randomness) into PrusaSlicer, which were developed by the OrcaSlicer community. Thanks to @Noisyfox, @SoftFever, @SeaRyanC, and @andrewboktor for improvements of the fuzzy skin. We believe that the above mentioned improvements will lead to fuzzy skin being more used together with modifiers. To make it more convenient to use, we also introduced the fuzzy skin painting tool. The fuzzy skin painting is similar to the multi-material tool and the support painting tool, so now fuzzy skin can be easily painted where it is needed without playing with modifiers (#6988). The tool is available from the left toolbar. Improvements in painting tools and multimaterial segmentation - Smart fill and bucket fill automatically paint tiny triangles around selected areas. Such triangles often exceeded the angle limit and were left unpainted, negatively affecting multi-material segmentation. - Added the slider to specify the maximum angle between triangles that the bucket fill will select. - Added height range painting tool into multi-material painting tool for painting objects between two horizontal lines. We were inspired by this tool in BambuStudio but implemented it from scratch to ensure that it works smoothly on detailed models. - Sped up painting using the single triangle brush, which was especially slow on detailed models. - Fixed unintended short sliders in the support painting gizmo. - The projection of painted models onto slices in multi-material segmentation has been improved. We fixed various types of artifacts and made the projection more precise. This means the sliced models will now better match how they were painted (#8745, #12616). - Improved multi-material segmentation for painted volume objects. Previously, multi-material segmentation was used just for painted volumes, and handling of the default extruder was done later during the slicing process, which was unpredictable and confusing for users. Because it could happen that in the place where two volumes were touching, there could be a change in the used extruder. Since this PrusaSlicer version, when at least one volume is multi-material painted, the whole multi-volume object is processed by multi-material segmentation, and the handling of the default extruder is left on multi-material segmentation. Other improvements with respect to 2.8.1 - Reduced splitting of extrusions when the pressure equalizer is enabled. Extrusions were split into too many even when the feedrate barely changed. - Avoid emitting Z-axis coordinates for every g-code command when the pressure equalizer is enabled. Z-axis coordinates are now emitted only when Z-axis coordinates actually change. - We reconsidered the decision to remove the "Ensure vertical shell thickness" option. We bring back this parameter by combining PR by @vovodroid (#11950) and implementation in OrcaSlicer by @SoftFever. Now, there are three options for "Ensure vertical shell thickness": Enabled, Partial, and Disabled. Partial is similar to behavior when "Ensure vertical shell thickness" is unchecked in the older PrusaSlicer versions. Disabled produces additional extrusion only to support top layers (#223, #1054, #6853, #9898, #10102, #10191, #10202, #10827, #10926). - Added hypertext link that opens the printer dashboard into the notification about sending files into Connect. - It is now possible to start PrusaSlicer GUI from the command line with specified printer, print, and material profiles using the following arguments: --print-profile, --printer-profile and --material-profile (#13327). Until now, the arguments could only be used in the headless mode. - Several performance improvements of ConfigWizard together with improvements of ConfigWizard UI. - Remove export to the AMF file format from CLI. Export into the AMF file format was previously removed from GUI in PrusaSlicer 2.4.0. - Behavior of WebView tabs is changed. Until user clicks and opens the tab, WebView is not created. This is particularly effective on Windows, where WebView spawns several processes for each tab. This applies for Connect, Physical printer and the new Printables tabs. #13127 - 'Reload WebView' action was added. Accessible from the View menu, 'Reload WebView Content' button or F5 key reloads currently visible WebView. Unfortunately keyboard reading with WebView / WebKit libraries does not work reliably on all platforms and is subject of further improvements. - Reload button is also present on error page displayed in WebView. This could be helpful e.g. when user forgets to turn on their physical printer before clicking the Physical printer tab. - Upload to Connect dialog now has larger default size. Bugs fixed with respect to 2.8.1 - Covered parts of top and bottom layers are now ignored during multi-material segmentation. - Fixed overriding of multi-material painted top or bottom layer on low objects (#13252). - Fixed painting on broken meshes (#13142). - Fixed top layers incorrectly classified as a bridge. Thanks to @SoftFever. - Added parameter for setting the gap between the start and the end of perimeter loops (#2503). - Emboss tool was failing when attempting to load a file from path containing non-ASCII characters (#13123). - Fixed Gtk-CRITICAL ** errors filling up logs (#4935, #13092, thanks to @themanyone). - Fixed avoid crossing perimeters on layer change (#13445, #13478). - Fix rear seam not aligned to rear sharp corner (#13518). - Fix nearest seam would detect very tiny corners in geometry (#13072). - Fix limiting of feedrate by z-travel speed (#13420). - Fine tune seam placing algorithm - allow more flexibility when picking aligned seam points. - Fixed warning dialog to correctly show multiple slicing warnings. - Fixed export of M73 C lines to G-code to fix displaying remaining time to color change (prusa3d/Prusa-Firmware#4734). - Fixed brush freeze when changing size using "Alt+mouse wheel" in the painting tools. - Fixed a crash on Esc key when editing text in gizmos (#13458). - Fixed a crash when infill density is changed to 100% (#13450). - Fixed incompatible profiles with parentheses in name (#13554). - Fixed reading of right Alt key in painting gizmos. - Linux only: Fixed issues with WebView showing just a blank page (#12969 #13046). - Fixed drag & drop of several files at once including 3mfs and zip files. - Improved Configuration Wizard to select SLA printer when multipart object is in on the bed. - Fixed an internal issue potentially causing problems with path planning (although the problematic case was not identified). Thanks to @supermerill for spotting and fixing the issue (#13331). Linux: Distribution through Flathub (#1124, #9776) We have decided to move to Flatpak and use Flathub as the official means of distributing our application on Linux. The Flathub package here is now officially endorsed. You can follow the steps provided on the Flathub page. Here is a quick guide on how to use flatpak from the terminal. This is required to try out the alpha, beta and rc releases. First, make sure you have flatpak installed and Flathub correctly set up. You can follow the steps at https://flatpak.org/setup/. If you want to try out the alpha (such as this one), beta and rc versions you must add the flathub-beta repository (you only need to do this once): flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo To install the latest version of PrusaSlicer: flatpak install flathub com.prusa3d.PrusaSlicer # for stable flatpak install flathub-beta com.prusa3d.PrusaSlicer # for the unstable versions To run PrusaSlicer from the terminal, you can do: flatpak run com.prusa3d.PrusaSlicer # for stable flatpak run com.prusa3d.PrusaSlicer//beta # for the unstable versions Note that you can run all the mentioned commands with the --user option if you do not have the superuser privileges on your machine. Please understand that publication of PrusaSlicer on Flathub has to be preceded by the publication on our GitHub. This means that there will always be certain delay (typically couple of hours) before the new release shows up on Flathub. This is the expected behaviour, the extra time is needed to build the Flathub binary. Config migration Config folder location on your machine for the new Flatpak version of PrusaSlicer is different to the one used by the AppImage. PrusaSlicer will automatically ask you if you want to migrate your old AppImage config to the new location. If you prefer or are afraid of data loss, you can also do this manually. The Help -> Show configuration folder utility in PrusaSlicer can aid you with doing just that. Special thanks Special thanks belong to @xarbit and @eliadevito who were keeping PrusaSlicer community flatpak up to date for the past several years. Their commitment provided a great service to many users that used the flatpak version before this release. Also, the work was an invaluable resource when migrating our infrastructure to flatpak. Last but not least, shout-out to @xarbit who helped us with the migration itself. Reasons for moving to Flatpak We understand that the decision may make some people angry and raise questions about why we are leaving something that "just works" (the AppImage). Why did we decide to leave AppImage in favor of Flatpak? There are multiple reasons. First of all, AppImage is not designed to bundle "everything". There are still assumptions about the target system that must hold for the AppImage to work. It is up to the developer to decide what to bundle with the application, and doing this decision requires to check and test on all the targeted Linux distributions, which kind of kills the whole purpose. Also, some libraries may be almost or completely impossible to bundle (such as glibc or webkit). The AppImage itself requires certain version of libfuse to be present on the target system, otherwise it does not start at all, and because some Linux distributions have upgraded from libfuse2 to libfuse3, this brings another problem into the equation. The need to use old glibc for compatibility reasons forces us to build on older distros (not to mention that we would like to provide both x64 and arm64 builds). To summarize this all, the amount of work required to keep our build infrastructure running is consuming resources that we would much rather spend on PrusaSlicer itself. Flatpak is a tool that is already proven by time, and it solves the problem that we need to solve - it bypasses the dependency hell created by the existence of many Linux distributions and different versions of everything. The main idea is that the application is built against a defined runtime, which is then downloaded on the target computer and the application is run against it. The biggest complain people have about Flatpak is that it downloads too much data to run a single application (although a runtime is only downloaded once for all applications that rely on it). However, Flatpak only does what people assume the AppImage was doing - it bundles everything. This is not Flatpak's fault, it is really the price paid for the Linux freedom, which effectively makes every distribution is a separately maintained platform. Flatpak also provides better user experience regarding desktop integration and application updates, and it is able to control permissions that the applications have through its sandboxing mechanism. Although this may not be appealing to all Linux users, we believe that these points are valuable to most. Thank you for your understanding.
Implements #3211 by @vgdh directly in the slicer.
And similar idea from prusa3d/PrusaSlicer#11621 by @MichaelJLew
Todos: