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.2.0

Published by lukasmatena over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0

Summary

This is final release of PrusaSlicer 2.2.0 introducing SLA hollowing and hole drilling, support for 3rd party printer vendors, 3Dconnexion support, automatic variable layer height, macOS dark mode support, greatly improved ColorPrint feature and much, much more.

This release follows releases of 2.2.0-rc5, 2.2.0-rc4, 2.2.0-rc3, 2.2.0-rc2, 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. Several bugs found in the previous release candidate are fixed in this final release. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Changes with respect to PrusaSlicer 2.2.0-rc5

  • Linux specific: 3DConnexion SpaceNavigator USB did not work with AppImage, solved with help of @Area5142 and @probonopd. (#3388)
  • Linux specific: MimeType was added to AppImage metadata, so that the desktop integration knows what file types PrusaSlicer could open. (#2732)
  • It is now possible to swap the y and z axes for 3Dconnexion devices. This can be configured in the 3Dconnexion settings dialog which opens on Ctrl+M. (#3852)
  • Fixed occasional duplicate extrusions when the scene was re-sliced after a parameter change. This was a long-existent bug appearing in both 2.0.0 and 2.1.0 releases. (#2540, #2803)
  • Fixed crashes on undo/redo in certain scenarios.
  • 'Clip multi-part objects' was set to true in the default Print Settings profile. This is a legacy config option from the original Slic3r and it will likely be removed completely in future releases. (https://github.com/prusa3d/PrusaSlicer/issues/2803#issuecomment-524602137)
  • Fixed incorrect processing of G92 code by the G-code preview in case the G92 code was accompanied with an unusual axis, for example G92 A0 B0. This lead to the G-code preview to be shifted towards the print bed. #3510
PrusaSlicer - PrusaSlicer 2.2.0-rc5

Published by bubnikv over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0-rc5

Summary

This is a fifth, hopefully the last release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-rc4
2.2.0-rc3, 2.2.0-rc2, 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found in the previous release candidate. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Bugs fixed with respect to PrusaSlicer 2.2.0-rc4

  • Fixed arrangement with items larger or equal to bed dimensions. The minimum distance between objects is no more enforced at the edge of the print bed. (#1186, #2897)
  • When changing a modifier parameter at the side panel, the change was not accepted if one switched to a different object or volume without pressing the Enter or Tab key before switching to a different object or volume. (#3303)
  • Fixed reset of a modified preset to its original state by re-selecting the preset combo box at Plater. Due to a regression bug introduced in PrusaSlicer 2.2.0, a different, often incompatible preset was selected erroneously. (#3755)
  • Fixed double extrusion of perimetes with Wipe to Infill enabled. This was a regression to PrusaSlicer 2.2.1 due to some refactoring. (#3842, #3853)
  • OSX specific: Fixed crash at SLA hollowing on older Intel architectures due to GMP and MPFR libraries being erroneously compiled for latest Intel architecture. (#3847)
  • Fixed missing reset call for fan speed visualization, thanks @rongith. (#3858)
  • Improved rendering of tooltips in the 3D scene. Tooltip rendering in the 3D scene is no more using a native system tooltip widget, but the tooltip is rendered inside the 3D scene using OpenGL, which is more reliable especially on OSX and when dragging the manipulator gizmos like rotating or scaling an object.
  • Translations for PL, IT, FR, ES, DE, CZ and JA were finalized.
PrusaSlicer - PrusaSlicer 2.2.0-rc4

Published by bubnikv over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0-rc4

Summary

This is a fourth release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-rc3, 2.2.0-rc2, 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found in the previous release candidate. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Improvements with respect to PrusaSlicer 2.2.0-rc3

  • A new "Draft shield" option has been added to produce a skirt as high as the highest printed object. (#2675)
  • A free camera rotation is no more forced for a regular mouse when a 3DConnexion device is plugged in. If the camera up vector does not point up because the camera was rotated with the 3DConnexion mouse, the camera is newly aligned with the screen Y axis abruptly when touching the regular mouse and a constrained camera rotation mode is active. (#3816)
  • Thumbnails for BIBO and LulzBot printers were added to installation wizard. We changed location of these thumbnails, they are newly stored inside the resources/profiles/VENDOR_NAME/ directory, and they should be named by the printer_model identifier suffixed with "_thumbnail.png".
  • The plus button to add a new layer range modifier newly grays out if is not possible to insert a new layer range and the tooltip explains why.
  • Updates to BIBO printe profiles by @photodude.
  • Brazilian Portugese dictionaries updated, thanks @BoaImpressao3D.

Bugs fixed with respect to PrusaSlicer 2.2.0-rc3

  • Full fan speed for gcode visualization was not shown as 100%, fix provided by @rongith. (#2922)
  • Eject of a removable media did not handle fails properly. A message box is newly shown if eject fails.
  • Windows specific: Detection of a 3DConnexion mouse has been refactored to not poll every 2 seconds, but to react to operating system notifications. This should resolve some peculiar freezes of the user interface. (#3424, #3515)
  • Windows specific: Detection of external drives (SD cards, USB flash drives) newly reacts to operating system notifications, so it should react faster. Still some attach / detach events are not reported by Windows, therefore the disk devices are still enumerated every 2 seconds.
  • Windows specific: The slicing service pops up error messages asynchronously. If a pop-up menu was tracked at the time the background service popped up the error message, the PrusaSlicer application was stuck. The error dialog is newly delayed until the pop-up menu closes. (#3660)
  • Opening the File menu hang on enumerating the removable drives to update the "Eject" menu item. Also due to a bug in the wxWidgets UI library, the same happened when opening the "Extruders" submenu of an object pop-up menu. This issue has bee resolved by relying on the last known state instead of blocking. (#3279)
  • The Wizard checkbox text "Remove user profiles - install from scratch" was changed to just "Remove user profiles" to indicate that this checkbox does nothing to system profiles. (#3761)
  • Fixed a vase mode issue, where the infill layers were not recalculated correctly after the number of bottom layers were changed. (#3823)
  • Removed a spurious "Unable to enumerate HID devices" console message indicating that no HID USB device was detected, which is likely fine. (#3828)
  • Fixed mouse handling issue at the object list, which was a regression issue from PrusaSlicer 2.2.0-rc3 introduced when trying to fix #3802. (#3830, #3841)
  • Fixed wizard issues regarding upgrade from PrusaSlicer 2.1.1 to 2.2.0: Most system presets were renamed for PrusaSlicer 2.2.0 by adding the "@" character to separate logical name from the full name of the profile, and this was not being taken into account by the installation wizard correctly. (#3835)
  • Fixed installation wizard to always install at least one Filament or SLA material compatible with an installed printer model.
  • The Prusa system profiles "Generic PETG" and "Prusa PETG" are now marked as renamed from "Generic PET" resp. "Prusa PET", so that when opening an old 3MF file, links to these system profiles are not lost.
PrusaSlicer - PrusaSlicer 2.2.0-rc3

Published by lukasmatena over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0-rc3

Summary

This is a third release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-rc2, 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found in the previous release candidate. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Improvements with respect to PrusaSlicer 2.2.0-rc2

  • Basic LulzBot Mini and TAZ6 printer profiles (Aerostruder variants) were added to configuration wizard, thanks @sembazuru.
  • BIBO2 Touch printer was added to configuration wizard, thanks @photodude.
  • Error messages related to loading vendor-specific config bundles are now more specific to make troubleshooting easier. If you are authoring vendor printer profiles, you should be running PrusaSlicer with --loglevel=trace and you should be watching the console output for error messages.
  • Objects marked as non printable are newly arranged first after all the printable objects are arranged, and the non-printable objects are arranged to separate virtual print beds, so that the printable and non-printable objects are not mixed. (#3790)
  • 'num_extruders' variable is newly available from the output_file_name template.

Bugs fixed with respect to PrusaSlicer 2.2.0-rc2

  • 3Dconnexion settings were not saved between PrusaSlicer sessions on OSX. (#3791)
  • 3DConnexion device zoom speed is now proportional to pressure, while it was fixed before. (#3791)
  • 'Eject SD card / USB Flash Drive' function sometimes took longer than expected to disconnect the device. We improved the eject speed somehow, though especially on OSX the results are inconclusive as it is the operating system, which blocks indeterminately. We now show a wait cursor during eject. (#3795)
  • OSX specific: Internal SD card readers were not recognized by PrusaSlicer and the respective buttons (Export to SD card / Eject SD card) were therefore not shown. (#3793)
  • OSX specific: Text fields in preset pages were sometimes not accepted. This was a regression from PrusaSlicer 2.2.0-beta. (#3797)
  • OSX specific: Fixed crash when creating multiple height range modifiers. (#3727)
  • After deleting a user printer profile, random incompatible Print and Filament profiles were selected. This is a regression from PrusaSlicer 2.2.0-rc. (#3800)
  • After switching a free camera to a constrained camera from the Preferences dialog, the camera Z axis is newly aligned to the screen Y axis. (#3782)
  • Windows-specific: Context menu was sometimes incorrectly popping up after manipulating object selection in the right panel. (#3802)
  • Position of multi-material purging lines on rectangular beds was only correct if the origin was located in the corner of the bed. (#3805)
  • Minor issues in translations were fixed (untranslated strings, typos, etc).
  • Merged Korean language updates from @ulsanether.
PrusaSlicer - PrusaSlicer 2.2.0-rc2

Published by lukasmatena over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0-rc2

Summary

This is a second release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-rc, 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found in the previous release candidate. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Improvements with respect to PrusaSlicer 2.2.0-rc

  • If a project selected from 'Recently opened projects' menu is no longer available, user is newly asked if that project should be removed from the list, while it was always being removed before. (#3646)
  • A new parameter 'Max bridges on a pillar' has been added to allow more control over SLA supports geometry. (#3728)
  • 'Export to SD card/Flash drive' and 'Eject SD/Flash drive' functions got their own File menu items and keyboard shortcuts (Ctrl+U and Ctrl+T, respectively), and these shortcuts are also shown in the tool tips over the Plater buttons.
  • A button 'Detach from system profile' has been added to detach a profile from its parent system profile. PrusaSlicer 2.2.0-alpha and newer considers a Print or Filament profile to be compatible with a Vendor Printer profile only if this Print or Filament profile is derived from a system profile of the same Vendor, or if it is independent. Removing the link to the parent system profile therefore makes that profile visible independent of the Vendor of the active Printer profile. (#3729)

Bugs fixed with respect to PrusaSlicer 2.2.0-rc

  • Minor issues in translations were fixed (untranslated strings, typos, etc).
  • Fixed some crashes due to errors in translations. (#3748)
  • Fixed a layout issue in the right panel after changing the application language. (#3617 #3739)
  • Fixed an issue, where no MMU or SLA materials were installed after upgrade from PrusaSlicer 2.2.1 to 2.2 due to renaming of the profiles (profile names were augmented with a '@' character to separate logical name from a full name).
  • Fixed a crash appearing with certain resolution scaling values. (#3759)
  • Many encoding issues appearing in localized application on Windows were fixed.
  • OSX specific: Error dialog had wrong background color leading to unreadable text on some OSX versions. (#3775)
  • Wipe info infill did not work correctly in all cases (regression error wrt. PrusaSlicer 2.2.1). (#3769)
  • Empty layer detection that prevents user from exporting unprintable G-Codes was sometimes rejecting scenarios that would have printed fine. (#3765)
  • Linux specific, regression wrt. PrusaSlicer 2.1.1: HTTPS support was broken in our Linux builds, which in turn broke downloading of system presets from Prusa Research. (#3768)
  • Windows specific, regression wrt. PrusaSlicer 2.2.0: Some users reported weird interuptions in user interaction. While we were not able to reproduce the issue, we suspect the culprit being two new services introduced in PrusaSlicer 2.2.0-alpha: Detection of 3DConnexion USB plug / unplug events and detection of removable USB flash drive or SD card plug / unplug events. These detection tasks were performed at the user interface thread, while now they are executed in their respective background threads in PrusaSlicer 2.2.0-rc2 to hopefully fix the issue. (#3515 #3733 #3746 #3766)
PrusaSlicer - PrusaSlicer 2.2.0-rc

Published by lukasmatena over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0-rc

Summary

This is a release candidate of PrusaSlicer 2.2.0, following releases of 2.2.0-beta, 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release candidate fixes bugs found the beta. See the respective change logs of the previous releases for all the new features, improvements and bugfixes in the 2.2.0 series.

Unlike the alphas and the beta, the release candidate saves its profiles into PrusaSlicer directory, which is the same directory where the previous releases of PrusaSlicer keep their profiles. If you were testing the PrusaSlicer 2.2.0 alphas or betas, your profiles from the alphas or the beta would have to be manually imported into PrusaSlicer 2.2.0-rc by exporting and importing the Config Bundle.

Translations

  • Japanese translation was updated to cover new features in 2.2.0 version.
  • Minor issues in translations were fixed (untranslated strings, typos, etc).

Improvements with respect to PrusaSlicer 2.2.0-beta

  • Eject SD card/USB button and the SLA hollowing parameter page got new bitmaps.
  • If the physical RAM size is smaller than 6GB, maximum print bed texture size is newly reduced to avoid GPU memory exhaustion. This may fix 3D graphics issues on some low end or old computers.

Changes in handling of system vs. user profiles (#3715, #3729)

In the PrusaSlicer 2.2.0 series we made a breaking change in handling compatibility between vendor profiles, vendor derived user profiles and user profiles (derived from the "-- default --" profile). Starting with PrusaSlicer 2.2.0, system profiles of one vendor and user profiles derived from a system profile of the same vendor are suppressed if a Print profile of different vendor or a user Print profile (derived from the "-- default --" profile) is selected. See the following discussion https://github.com/prusa3d/PrusaSlicer/issues/3729#issuecomment-592924282 why we made such a change. To use Print or Filament profiles derived from Prusa3D system profiles together with your user Print profile, you now have to detach these Print or Filament profiles from Prusa3D system profiles by removing the "inherits" field from the respective profile .ini files. We plan to add a "detach" button to the final release.

When the Printer profile derived from the Prusa3D system profile was active or a system Prusa3D profile was active, and when the Print profile with the removed "inherits" field was active (or any other profile derived from the "-- default --" profile was active), then the filament selector offered just the profiles with the removed "inherits" field (or any other profile derived from the "-- default--") profile. This behavior has been now changed, so that in this scenario the Filament selector will offer the Prusa3D vendor profiles compatible with the active Print and Printer profile as well as the user profiles (see this discussion and #3720).

When "Show incompatible print and filament presets" is enabled in preferences, PrusaSlicer allows showing incompatible presets at their respective parameter tabs by toggling the "Green flag" icon at the preset tab to a "Red flag". We implemented this feature mainly to help us debugging the profile print and filament compatibility conditions, however some of our users learned to use this feature to work around profile compatibility issues. It was not possible to select an incompatible Print profile with the "Red flag" enabled, which is possible now (#3715). Slicer was also changed to keep an incompatible preset selected at its respective tab if its respective "Red flag" is enabled. For example, if an incompatible Print preset is selected and a Printer profile is switched to another one which is not compatible with the active Print preset that was red already, the active Print preset is not switched if the Print "Red flag" is active. However, if the Print profile was compatible before the Printer profile is switched and now the Print profile becomes incompatible, another compatible Print profile is selected.

Bugs fixed with respect to PrusaSlicer 2.2.0-beta

  • Fixed crash on reading profiles with the "thumbnails" settings different from the parent profile.
  • Tooltip in the new 'Hollow and drain' gizmo now supports text-wrapping.
  • When an object had a generic modifier and 'Reload from disk' was requested, it would attempt to reload the modifier volume as well.
  • Fixed crashes on application close on OSX Maveric 10.9.5.
  • Fixed a crash when deleting an object after switching from SLA to FDM.
  • 'Hollow and drain' and 'SLA support points' gizmos can now be opened regardless of what instance of the object is selected. This was broken in the beta, only the first instance allowed the gizmos to be opened.
  • Fixed incorrect hiding of inactive instances when SLA gizmos are active.
  • Fixed dark mode detection of macOS 10.12 Sierra and 10.13 High Sierra (#3697)
  • Fixed layout of Slice Now / Export buttons at startup and after closing the Preferences dialog. (#3707)
PrusaSlicer - PrusaSlicer 2.2.0-beta

Published by bubnikv over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0-beta

Summary

This is a first beta release of PrusaSlicer 2.2.0, following releases of 2.2.0-alpha4, non-public 2.2.0-alpha3, alpha2 and alpha1. This release mainly fixes bugs found in the previous alphas. See the respective change logs of the 2.2.0 alphas for all the new features, improvements and bugfixes in the 2.2.0 series.

To let you enjoy the beta without worries, the beta builds save their profiles into PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration.

Translations

  • Korean translation has been updated by @ulsanether
  • Most translations were updated to cover new texts related to new features in version 2.2.0. Japanese translation is still pending.

Improvements with respect to PrusaSlicer 2.2.0-alpha4

  • Sliced Info dialog now shows estimated times with precision to minutes, not seconds. This should make the info easier to read.
  • Export to STL function now exports hollowed / drilled mesh if the mesh is already hollowed / drilled at the time of export. (#3643)
  • Keyboard shortcuts dialog (Help->Keyboard shortcuts) has been divided into several sections to accommodate all new shortcuts.
  • Sliced Info dialog no more shows weight and cost if the unit cost or density are set to zero.
  • It is newly possible to change extruders for multiple objects/parts at once by group-selection and a right mouse click.
  • Elephant foot compensation is now also available in SLA mode. It is configurable under Printer Settings->General->Corrections. The Elephant foot compensation is applied over "faded_layers", where the compensation is maximum at the 1st layer and it fades to zero linearly.
  • Time estimates for inserted print pauses are newly shown in 'Sliced Info' dialog (only times of color changes were included until now). (#3544)

Bugs fixed with respect to PrusaSlicer 2.2.0-alpha4

  • Fixed missing layers when wipe into object/infill feature was active (regression issue that was introduced in 2.2.0-alpha4) (#3637)
  • Fixed a crash when the print was empty after slicing. An error message is now shown instead. (#3632)
  • Fixed regression in spiral vase after recent refactoring. Spiral vase now requires reslicing of the model when enabled / disabled as different slicing strategy is newly used for the spiral vase mode to always produce a single contour per layer.
  • Camera movement in FDM mode is again limited so the zenith angle cannot grow over 90 degrees. This limit was accidentally removed in 2.2.0-alpha4.
  • Improved reliability of SLA Hollowing for models that already contain cavities. (#3622)
  • Fixed occasional crashes when slicing a model with FDM supports enabled (bug introduced in alpha4).
  • ColorPrint slider actions are no more accessible when sequential printing is active as we do not support ColorPrint in sequential mode.
  • Fixed regression in G-code export: Filament statistics in the G-code were missing several newlines.
  • Fixed a crash when selecting multiple extruders by a right mouse click. (#3657)
  • Fixed a regression where the brim paths were printed in random order in case the brim intersects skirt. (#3634)
  • Fixed a Config wizard issue, where the Config wizard workflow could not be finished in case that only Custom printer was added, but no vendor pre-configured printer was selected.
  • Fixed a regression issue in G-code generator, where duplicate extrusions were placed into output G-code in certain scenarios (#3665).
  • 'Hollow and drill' gizmo allowed access to Expert parameters in non-Expert mode.
  • It was possible to add multi-part object in SLA mode, which is not supported.
  • Setting extrusion width to incorrect value sometimes led to application crash. (#3482)
  • Fixed a regression issue after removing the Print Host information from the 3MF and AMF poject file due to privacy issues. Opening saved project cleared Print Host settings. The issue has been solved by loading the Print Host settings from user profile if it is not defined in the 3MF/AMF project file. (#3655, #3244)
  • Fixed a bug in the new "Minimal thickness of solid top/bottom infill" feature. Top / bottom layers were generated even if their number was set to zero and their minimal required thickness was non-zero. Now the minimal thickness is ignored in this case.
  • Placeholders in custom G-codes did not respect filament overrides. (#3649)
  • Fixed a file export verification check introduced in PrusaSlicer-2.2.0-alpha2. Verification check was failing when exporting to external drive into path containing non-ASCII characters.
  • Linux specific: reordering objects/parts in the object list irretrievably hid any settings, parts and instances that the dragged entity had assigned.
  • Clipping plane in SLA support points editing mode ignored any drained holes that the object had (i.e. they were shown even if they shouldn't be).
  • When editing SLA support points and switching to a different object, the previously selected object was not hidden (the bug was introduced in alpha4).
  • Wipe into object was not working in certain cases (regression issue introduced in alpha4) (29086aa00bc28a0cccd68fefc11e722b1f023f0d)
  • Unsaved changes in Filament profile were lost without user consent when Print profile was switched. (#3675)
  • Adding an SLA drain hole and then selecting it showed incorrect depth value on the respective slider.
PrusaSlicer - PrusaSlicer 2.2.0-alpha4

Published by lukasmatena over 4 years ago

PrusaSlicer PrusaSlicer 2.2.0-alpha4

Summary

This is a third public PrusaSlicer 2.2.0 alpha release, following the alpha2 release (alpha3 was internal only). We consider this alpha to be feature complete to be followed by a beta release soon.

This release introduces hollowing and hole drilling in the SLA mode, improves the Color Print usability on MMU printers, introduces free camera rotation, moving / rotating of objects using cursor keys, predictable sequential print order with in 3D scene labels, Vase Mode improvements, fist Raspberry PI 4 builds, AstroBox integration and Dutch translation. This release fixes many bugs as well. Please see change logs of previous alphas (alpha1 and alpha2) for a full list of new features and bug fixes in the 2.2.0 series.

To let you enjoy the alpha without worries, the alpha builds save their profiles into PrusaSlicer-alpha directory, so you may use the alpha side by side with the current release without ruining your production configuration.

SLA Hollowing

Hollowing a model and drilling holes to drain resin is a very important feature that helps save material and also lowers surface area of the model slice, hence it decreases the force needed to detach the print from the display when moving to the next layer. Until now, users had to do the model hollowing in a 3rd party software and import the result in PrusaSlicer. Since this release, the hollowing has been integrated into PrusaSlicer directly. (#2054, #3219)

The model hollowing is configured with the following parameters:

  • Hollowing thickness - thickness of the resulting shell
  • Hollowing accuracy - a trade off between accuracy and performance. If a low hollowing accuracy is set, accuracy of the resulting model thickness may suffer, therefore a higher hollowing accuracy is recommended for a small hollowing thickness (for thin shells) to ensure minimum wall thickness.
  • Hollowing closing distance - Hollowing supresses cavities narrower than the closing distance threshold, and it also fills in sharp concave corners of inner wall, from which it would otherwise be difficult to remove the uncured highly viscous resin.

Hollowing can be configured either in Print Settings, or in the new 'Hollowing' gizmo, which allows to set the parameters on per-object basis:
frog_hollow_gizmo

The clipping plane tool, which is used to peek inside an object at the SLA support points editing gizmo is newly
available at the SLA hollowing gizmo as well, and it is especially useful to review the hollowed geometry and to place the drainage holes.

As for the drainage holes, they can be placed by direct clicking on the object when the SLA hollowing gizmo is active. The holes can later be re-positioned by dragging them on the mesh. Each hole is always perpendicular to the surface and its diameter and depth can be configured (each hole can be different).

The hollowing and hole-drilling is performed after the Preview hollowed and drilled model button is pressed. Note that both hollowing and hole-drilling are computationally expensive tasks and the drilling will take some time, especially with complex models. In case the user does not press the button himself, the hollowing and drilling will be performed during the slicing process.

Please understand that if the input mesh is broken, the hole drilling algorithm may refuse to proceed to prevent program crashes or incorrect results.

Once the calculation of the hollowing and hole drilling finishes (whether triggered through the gizmo or though slicing), the hollowed and drilled mesh shows up in the 3D scene. The hollowed and drilled model is therefore also available in the SLA support point editing gizmo, allowing user to place support points inside the cavity and into the holes:
frog_supports_gizmo

In case some parameter is changed that forces invalidation of the mesh (such as moving a hole, scaling the object, etc.), the model visualization reverts to the original object without the holes drilled and without the hollowing applied.

Important: There is currently no check that manipulation with the holes does not interfere with support points already placed on the mesh. For example, placing a support point and later drilling hole at its location results in a support point floating in mid-air. Similarly, drilling a hole, placing a point inside it and later (re)moving the hole results in a support point embedded in the object. Checks for these scenarios will be added in the next release.

The hollowing and hole drilling features rely on OpenVDB and CGAL libraries. Many thanks to the authors of the two libraries.

Colorprint improvements

PrusaSlicer2.2.0-alpha1 added support for colorprint in multimaterial mode, as well as a possibility to add pauses or custom G-codes. To make the feature easier and more intuitive to use, clear distinction has now been made between color-changes (user changes the filament manually) and extruder-changes (the filament is exchanged automatically, possibly using a wipe-tower). PrusaSlicer now supports the following three scenarios:

  1. Single material printer (or MMU2 in Single extruder mode).
    In this case, color-changes (manual filament swaps) can be added, but not extruder-changes.

  2. Multi-material printer with the same extruder assigned to all objects, to their volumes and to modifier meshes.
    Color-changes (manual filament swaps) for an arbitrary extruder and automatic tool changes of an active extruder to another extruder can be added.

  3. Multi-material printer, where more than one extruder is assigned to objects, to their volumes or to modifier meshes.
    Only color-changes can be added. Extruder-changes are already defined by extruder assignments on the Plater and we do not allow them to be extended or overridden by colorprint. While in theory it could be possible to combine extruder-changes of Plater with the extruder-changes of the colorprint, the result would be difficult to interpret by the user, so we decided to keep it simple.

Print pauses and custom G-codes can be added in all three modes.

When color/extruder-changes are added and later made invalid by switching a printer profile or changing extruder assignments at the Plater (going from the scenario 2 to 3 above or vice versa), the no more valid color / extruder changes are marked with an exclamation mark to alert the user. Any such color / extruder change will be ignored during the G-code export. Further manipulation with the Colorprint slider is disallowed before these conflicts are resolved by the user. An example of such situation is shown on the following screenshots.

colorprint_before

colorprint_after

We hope these changes in the Color Print user interface that we introduced in this release will make the Color Print feature predictable in all possible scenarios without limiting functionality.

Note that it is possible to edit any Color Print action after it is created (by a mouse right-click), though it is currently only possible when the slider is on the tick exactly.

Other colorprint improvements

  • When a color-change is added with a left mouse button, predefined color is used for visualization. The dialog to choose custom color is only opened when the color-change is added through a context menu, which opens with the right mouse click. #3449

  • It is also possible to customize this color later by right mouse click on the slider.

  • The function of the cog wheel icon introduced in alpha1 was changed. It now opens a dialog allowing to jump the slider to specific height. In the second mode described above (MMU2 printer with single extruder assigned at the Plater), a context menu will open when right mouse clicking on the same cog wheel icon, allowing the user to add tool-changes in regular intervals to produce repeated rainbow patterns.

Other new features with respect to PrusaSlicer 2.2.0-alpha2

  • A free camera with six degrees of freedom was added to match the degrees of freedom of the 3DConnextion device. The free camera is enabled automatically when the 3DConnexion device is detected, and the free camera can be turned on by default in Preferences dialog as well.
  • Astrobox has been added to Print Host options (#3417, thanks @spuder)
  • AMF/3MF can now be configured to not save the full path to the source models, as this can pose a security risk when sharing such a file. If the full path is not saved and 'Reload from disk' is requested, PrusaSlicer will ask for the location of the source file. This option is now off by default (i.e. full paths are not saved). Previous alphas always saved the full path.
  • The installation wizard newly proposes the user to install default filaments and default SLA materials configured by the printer vendors in their respective Preset Bundles using the new "default_materials" / "default_filaments" configuration values.
  • If the vendor decides to rename the system profiles, the vendor may newly indicate the name change by the new "renamed_from" configuration value at each of the renamed profile, so that system profiles referenced by the AMFs/3MFs and inheritance dependencies of user profiles to system profiles are not lost. We introduced the short names (logical names, aliases) to full system profile names recently, where the "@" character in the system profile name separates the logical name from the full profile name. Starting with this release, the system profile names containing the "@" character are considered to be renamed from the profile name with the "@" removed from its profile name if there is no "renamed_from" field defined at the profile.
  • Dutch translation was added (thanks to Simon Tillema)
  • When sequential printing is active, the print order newly corresponds to the order in the object list, and the object list newly supports drag and drop to reorder objects. The sequential print order may also newly be indicated by labels in the 3D scene (visualisation of labels may be activated in View menu or with the "E" hot key). (#486, #810, #1338, #1662, #3016, #3455)
    image
  • Minimal thickness of solid top/bottom infill (top / bottom shell thickness) can newly be enforced by two new configuration parameters (Print Settings->Layers and Perimeters). Until now, only number of layers could have been configured, which made the final thickness dependent on possibly varying layer height, thus producing pillowing effect on top of objects with variable layer height applied. (#156, #3411, #3518)
  • The Vase Mode newly handles complex models with some level of steep overhangs and narrow parts. The previous PrusaSlicer would add spurious infills to support the steep overhangs, and it could create multiple perimeters on a single layer on narrow parts of an object, thus breaking the continuous path of the vase mode. The new algorithm closes all holes in the object first, then it removes all but the largest perimeter from each layer in the Vase Mode. Also no infill is generated above the bottom_solid_layers and all the bottom solid layers are always extended to the vase shell. (#253, #452, #1887, #3595)
  • The Vase Mode newly respects the top solid infill pattern for the last vase bottom layer. (#2533)

Smaller improvements with respect to PrusaSlicer 2.2.0-alpha2

  • 3DConnextion devices are now fully supported on OSX using the 3DConnexion driver.
  • Maximal sensitivity of 3DConnexion devides was increased (#3385)
  • Connection of 3DConnexion devices is logged to allow troubleshooting. The log can be generated when starting PrusaSlicer with command line argument --loglevel=3 or higher (#3389)
  • Y axis of 3DConnexion devices now controls zooming.
  • Export button is duplicated in case a removable drive is connected. Output path is remembered for removable and non-removable drives separately (#3387)
  • Descriptive error messages were added to explain why the export to G-code or .SL1 file fails.
  • Implemented re-scaling of the G-code speed visualization range when the travel speed is included / excluded from the visualization to increase resolution of the color legend. (#3293, thanks @foxox)
  • Preferences dialog was divided into several sections to make navigation easier.
  • Custom G-codes newly support an int() function (converts argument to integer) and % operator (remainder after division). Fixes #1964, thanks @smurfix.
  • Reload from disk command has been enhanced to work with 3mf/amf files saved with PrusaSlicer 2.1.0 and earlier (correct object position is not 100% guaranteed after the reload)
  • Number of object's instances is now saved as an object attribute into 3MF to simplify manual extraction (#3435)
  • Compatibility of current application version with current config version is checked at startup. In case the config needs an update (e.g., after an upgrade of PrusaSlicer), the user is asked to confirm it. Like with all updates, a snapshot is taken beforehand (but will only be compatible with older PS versions of course).
  • Checking for configuration updates can newly be triggered explicitly from the menu (Configuration->Check for updates).
  • To prevent downloads of 3rd party vendor profiles from unverified locations, only downloads of vendor profiles from prusa3d.com website are newly allowed.
  • Arrow keys can newly be used to move an object in the 3D scene (one keystroke moves by 10 mm). Holding the Shift key increases the precision to 1 mm per keystroke. Holding Ctrl moves the object in relative to camera position, otherwise the object is moved in the print bed coordinates (right arrow moves along the +X axis of the print bed etc).
  • Objects can newly be rotated by 45 degrees using PgUp/PgDown keys.

Bugs fixed

  • Incorrect calculation of bridges, overhangs, skirt, brim, raft and supports when Elephant foot compensation was active. The shrunk (elephant foot corrected) first layer was incorrectly used for further calculations (#3011)
  • Fixed a crash when right-clicking on the wipe tower (#3430)
  • Changing height range modifier did not trigger reslicing (#3382)
  • 3DConnexion device sometimes became unresponsive after switching to preview
  • Incorrect resin cost calculation (#3460)
  • Different profile than selected was occasionally shown (#3470)
  • Saving preferences for the 3DConnextion devices sometimes resulted in corrupted config (#3479)
  • Missing update of Sliced Info dialog after SLA material parameters are changed
  • Occasional fails of partial arrangement
  • Toolpaths export to OBJ sometimes skipped parts of the geometry (#3492)
  • Artifacts sometimes showing on rendered toolpaths
  • Artifacts showing when changing screen or toolbar scaling factors.
  • Skirt generation with multi-material printers (skirt was missing loops on the first layer under certain conditions) #2193, #469
  • G-code preview correctly handles a property with empty range (#3540)
  • Incorrect handling of [year] placeholder in output filename formatting (#2349, thanks @Jebtrix)
  • Directory-related issues when uploading to FlashAir (#3353, #3511, thanks @vintagepc)
  • Config options print_host, printhost_apikey and printhost_cafile are no longer exported into GCode, as this can pose a security risk (#3584)
  • Ooze prevention - output G-code for changing temperature did not contain extruder number. (#2901, thanks @KyleMaas)
  • After an attempt to open an empty 3MF file, the file handle was kept open.
  • ConfigWizard may have failed to update a profile when the user did not click through all of the steps
  • Config options expressed as percentage of another config option were not correctly evaluated in custom gcodes (#1665)
  • Extruder clearance validation in sequential printing mode reported many false positives because object rotation was not accounted for (#2450, #3585)

Platform-specific

  • Linux: Ender3 icon was not shown in wizard (#3359)
  • Linux: Several annoying GTK warnings were removed
  • OSX: Fixed occasional crashes related to legend textures in Preview window (#3371, #3394, #3437)
  • OSX: Fixed blurred icons on scaled screens
  • OSX: Right clicking the colorprint slider using the touch pad causes a bit of a scrolling (#3543). While this was not sorted out yet, a workaround is to use Ctrl+Left button instead. This information was at least added into a tooltip.
  • Raspberry PI 4: We are providing our first R-PI build of PrusaSlicer. We plan to provide an AppImage for Raspberry PI 4 as well, likely based on the work of @davidk.
PrusaSlicer - PrusaSlicer 2.2.0-alpha2

Published by bubnikv almost 5 years ago

PrusaSlicer PrusaSlicer 2.2.0-alpha2

Summary:

This a second public alpha release, fixing bugs found in the PrusaSlicer 2.2.0-alpha1 release. Please check the 2.2.0-alpha1 change log for what is new in the 2.2 series.

The following regression issues were fixed:

  • Fixed crash on OSX Dark Mode #3342.
  • Fixed export of G-codes. The G-codes are newly stored with a .tmp extension when exported onto a removable media and verified before renaming to a target file name. We have introduced this procedure to lower the risk of failed prints when a cheap removable media is used, or when the media is removed too early. There was a bug in the first alpha, where the temp file was not being renamed correctly #3343.
  • Fixed crash when switching infill to 100% due to an incorrect format of localized text of Italian, French, Spanish, Ukrainian and Traditional Chinese #3366.
  • Fixed minimum supported OSX version number declared by PrusaSlicer. The minimum OSX version was set to 10.14 by mistake, it is now set to OSX 10.9 Maveric as in previous PrusaSlicer versions.
PrusaSlicer - PrusaSlicer 2.2.0-alpha1

Published by bubnikv almost 5 years ago

PrusaSlicer PrusaSlicer 2.2.0-alpha1

Summary

This is the first alpha release of PrusaSlicer 2.2.0, introducing support for 3rd party printer vendors, filament installation, pause at height, Color Print for MMU2, adaptive elephant foot compensation, automatic variable layer height, wipe tower without sparse layers, 3dconnexion support, OSX dark mode, export to removable media and eject, reworked Reload from disk and path planning, 3MF thumbnails, Flash Air support, Japanese translation and much more.

To let you enjoy the alpha without worries, the alpha builds save their profiles into PrusaSlicer-alpha directory, so you may use the alpha side by side with the current release without ruining your production configuration.

The PrusaSlicer 2.2.0-alpha1 brings the following new features:

Support for third party 3D printer vendors

We have extended the Installation Wizard and configuration layer to support 3rd party 3D printer vendors. A 3D printer vendor may provide a versioned Config Bundle to us. We will store these 3rd party Config Bundles into resources/profiles directory of PrusaSlicer, and once any of the 3rd party printer is installed, PrusaSlicer will pull updates of these Config Bundles from the internet.

For starter, we have created profiles for the Creality Ender-3 printer. Please consider this profile experimental, we expect the community members to build upon our initial draft. We will publish a guide for contributors on how these Config Bundles are structured and how to contribute them.

image

Filament installation, filament & print preset aliases (logical profile names)

PrusaSlicer stores the Print, Printer, SLA Print and SLA materials in separate lists and the names of the profiles are required to be unique inside their respective groups. For example, a "Prusament PLA" profile is used by the "MK3S" and "MK2S MMU1" printers, while a "Prusament PLA MMU2" is used by the "MK3S MMU2" printer due to different MMU ramming parameters. Before this release, the full "Prusament PLA MMU2" profile name was shown at both the Plater and at the Filament parameter page. Starting with this release, a shorter "logical name" aka "alias" is shown at the Plater, while the full profile name is shown at its respective parameter page.

The "logical name" aka "alias" is defined in two ways: First, the "@" sign in the preset name is interpreted as a separator of a logical name from the full name. For example, the full Print profile name "0.15mm QUALITY MK3" has been renamed to "0.15mm QUALITY @MK3" (the difference is in the @ sign), and the part before the @ sign - "0.15mm QUALITY" is considered a logical name. In a similar sense, the "Prusament PLA MMU2" has been renamed to "Prusament PLA @MMU2", so that a logical name "Prusament PLA" applies to both the MMU and non-MMU variant of the filament profile. The second way to assign a logical name to a profile without the use of the "@" sign in the profile name is through an "alias" configuration value of a profile.

image

Starting with this release, the Filament and SLA Materials provided by various 3D printer vendors may be installed in a similar way to how the printers are already installable. The filament and SLA materials are referenced by their logical names in the installation wizard, so one filament or SLA material profile is being installed for multiple installed printers at once.

Insert pause or custom G-code at a certain layer

The Color Print tool is highly praised as extremely easy to use and intuitive, but until now it only supported filament switches and it was limited to single extruder printers. Based on the feedback from our customers and the community, we generalized the Color Print tool to support print stops to insert magnets, weights, bearings, nuts or a custom G-code.

Slicer_custom_gcode

Color Print for MMU2

Color Print newly works with MMU2 as well. There are two use cases for this new feature:

  1. Printing signs unattended. Here a filament switch event is inserted at a selected layer height, which will trigger the MMU2 unit to switch filaments automatically while wiping the extruder into a wipe tower. In this scenario there will be just a handful of filament switches performed, therefore many layers of the wipe tower will be printed with sparse layers. Check the other new feature "Wipe tower without sparse layers" on how to reduce material waste and print time when printing with MMU2 Color Print.

  2. Extending the number of colors of MMU2 prints above 5. One may assign a single extruder to two parts separated in Z axis (for example shoes and eyes of a standing figure), and then plan filament exchange (M600 G-code) in between.

The Color Print also newly supports generating color bands at regular intervals:
image

Adaptive Elephant foot compensation

The Elephant foot compensation feature shrinks the contours of the first layer FDM slice inwards to compensate for the first layer squash. The first layer squash is often ugly and it complicates fitting of multiple printed parts together, therefore quite often the elephant foot needs to be filed or scraped off after the print, which is a tedious process and which may negatively influence accuracy and surface quality.

While PrusaSlicer implements the Elephant foot compensation for a long time, it was used much less than it deserves due to the following drawback: The old algoritm shrank the first layer contours evenly, thus shrinking thin protrusions as well as large areas, leaving the thin protrusions unsupported. This PrusaSlicer release brings an adaptive version of the Elephant foot compensation, which ensures, that no area is made narrower than the width of two perimeter lines, minimizing the necessity of post processing of the print while ensuring good print adhesion to the print bed.

ensure thickness

Also the following Elephant foot compensation issues were resolved: #1757 #2085 #2132 #2156 #2423 #2502 #2773 #2828 #2998 #3001.

Automatic variable layer height

We have added automatic initialization of the smooth variable layer height profile to PrusaSlicer. The adaptive variable layer height profile algorithm may not always produce a desired result. One wants to make sure the salient features of an object are printed accurately, while hidden cavities may be discretized coarsly to print faster with little effect to print quality. We therefore let the user to initialize the smooth variable layer height profile automatically with a button from the smooth variable layer editing tool, while allowing the user to adjust the proposed layer height curve manually.

image

We have experimented with various metrics for the surface quality. The metrics by Florens Wasserfall et al. implemented in Slic3r limits the maximum discretization error (largest Eucledian distance of the stepped surface from the source model), while Cura limits the maximum distance of contour lines in the XY plane, producing more intuitive results than the metric by Waserfall. At the end, we have implemented yet another metric, limiting the cross section area between the stepped surface and the source model. The following graph shows the layer height limit of various metrics depending on surface slope:

image

Wipe tower without sparse layers

The Wipe tower generator newly supports skipping the sparse layers (layers without a tool change), thus saving material and in almost all cases reducing the print time. On our set of muti-material projects, this feature reduced the total print time by 3.16% and the filament deposited on the wipe tower was reduced by 16.17%. As PrusaSlicer currently does not check for collisions of the extruder with the printed object when lowering down to the top of the wipe tower, this feature is marked as experimental, and it is recommended to place the wipe tower to the rear right corner of the MK3S's print bed, while the object is placed to the opposite corner.

The wipe tower without sparse layers feature is very useful together with the newly introduced Color Print for MMU2, where only a handful of filament switches are needed to print a colored sign unattended thus saving a lot of material compared to a full wipe tower.

3dconnexion SpaceMouse(r) support

We have added support of 3dconnextion SpaceMouse(r) devices for camera manipulation in the 3D scene. We have tested three generations of the device: Space Navigator(R) (Wired), Space Mouse(R) Wireless and SpaceMouse(R) Pro Wireless. On Windows, both wired and wireless connection works, while on OSX only wired connection works, and we have mixed results on Linux (sometimes wireless works, sometimes wired works). On Linux, one needs to install the 90-3dconnexion.rules file into the /etc/udev directory for the device to be accessible by a regular user. The 3D mouse sensitivity may be set from a dialog, that pops in the 3D scene on Control-M key press.

We were unable to get the drivers, API description or any other support from the 3Dconnection company. If you believe that we at Prusa Research could do better integrating the SpaceMouses devices, please bug the manufacturer to provide us with the necessary support. Otherwise we are left with googling of what others managed to reverse engineer, or do the reverse engineering ourselves, which is likely not the most efficient use of our time.

SD eject, Save to SD

When exporting G-code, the file dialog is newly initialized with a path to an SD card or USB flash drive if detected. If multiple SD cards or USB flash drives are detected, the file dialog is opened at the last visited removable media. Once a G-code is exported to a removable media, an "Eject" button is shown next to the "Export G-code" button.

Reload from disk #552 #1471 #1890 #1996 #3075

The "Reload from disk" feature has been fully reworked for this release. Now full paths of the imported geometries are remembered for each volume. If a geometry is imported from a 3MF / AMF file, then full path of the 3MF / AMF is remembered including index of the object and object's volume in the source 3MF / AMF file. The "Reload from disk" action may newly be called on multiple selected objects from the pop-up menu. If the referenced files are moved thus not found, the "Reload from disk" feature will ask for an alternate path on loading and the new path is remembered.

Please note that the following operations break the link to the source geometry file: Split to Objects, Split to Parts, Cut by Plane, Anisotropic scaling along arbitrary axis (not X, Y or Z).

Better path planning #375 #409 #1942 #2713

We have reworked the path planning aglorithm in PrusaSlicer to produce shorter paths with less travels. Optimal path planning is NP hard, thus one will hardly achieve a perfect solution in a reasonable time, though some heuristics are better than the others. The issue is complicated by the fact, that the slicer has to chain segments, not points as in the case of the Traveling Salesman Problem.

Until now, PrusaSlicer used the simplest heuristics possible: Add the next closest point to an existing path. The new path planning algorithm starts with a Multi-fragment approximation, which is then improved with 2-opt exchanges, generating a shorter path in general. Couple of bugs were fixed as well (infill path planning for islands inside holes of other islands, path planning for multiple object instances).

slicer comparison
Comparison of the previous simple (left) and new heuristic (right), from user DrLex0

SLA Pad around object enhancements

SLA Pad generation received an upgrade which enhances its shape and makes more accurate deduction of its geometry when used with zero elevation (pad around object feature). Parts of the pad which don't host any supports are now reliably removed. If the pad shall be used as a brim around the printed model, a checkbox is added to force the pad everywhere.

The following new parameters were added to control the pad:

  • pad_around_object_everywhere: Force parts of pad not occupied with supports
  • pad_brim_size: How far out should the pad stretch.

Other new features and improvements

  • OSX Dark Mode is newly supported by PrusaSlicer. Dark mode seems to work on one of our co-worker's Linux box. On Windows, we are waiting until Microsoft finishes Dark Mode API for Win32 controls.
  • The 3D scene thumbnails are newly stored into the 3MF and SL1 files. The 3MF thumbnails are shown by Windows File Explorer #3252.
  • The SLA slicing statistics newly shows the print weight and cost based on the following new SLA material properites: bottle_cost, bottle_volume, bottle_weight and material_density.
  • The skirt is newly allowed to overlap with the brim, so that the skirt used as a wind draft shield is stabilized by the brim. Brim lines are split at the intersections so there is no overextrusion #724.
  • Color bars are newly painted in the extruder selection combo box at the object list and at the MMU purge amount dialog #1484.
  • The Gyroid and 3D honeycomb infills were reworked, so that their infill lines now follow the perimeters as in the case of grid and cubic infills #1690, thanks @supermerill.
  • The Gyroid infill discretization was reworked to produce less segments thus shortening the G-code and printing smoother on low power 3D printer control boards #1690, thanks @wavexx.
  • A new [total_toolchanges] placeholder is supported for the output filename and custom gcode templates. The statistics section at the end of the GCODE has been extended with the number of tool changes as well #1775, thanks @BryanSmithDev.
  • Added FlashAir support for host upload #2215, thanks @stephanr.
  • When slicing from command line, the object is newly centered around the center of the print bed shape if available #2424, thanks @luketaverne.
  • Generic box / sphere / cylinder objects may newly be added to the plater by right clicking at an empty space in the 3D scene or at the object list #2865.
  • The G-code preview newly supports coloring by fan speed #2922, thanks @jschuh.

Translations

Japanese translation is provided by Prusa Research, Brazilian Portugese translation has been submitted by @BoaImpressao3D.

The following languages are being translated by PrusaResearch: cs, de, es, fr, it, ja, pl. Dear contributors, please provide localization updates for the other languages.

Bugs fixed

  • Fixed spurious infill below bridges in case the infill density was set to 0% #442.
  • Fixed unnecessary splitting of infill regions by a modifier mesh, if the modifier mesh does not influence infill parameters #1005.
  • Fixed missing anchors for bridges in case the infill density was set to 0% #1185 #1301 #2686.
  • Fixed crash with multi-material prints requiring a wipe tower, where one object was fully separated from another object with a vertical gap to be filled with supports #1266 #2258.
  • Fixed spurious gap fill inside the inner most perimeters for infill density 0% (which also applies to Vase mode) #1476.
  • Fixed some unexpected bridging issues due to a missing update of the slicing back end in case the support is enabled / disabled while the soluble supports are configured, as the bridging is disabled for soluble supports, while the bridging is enabled with supports disabled #1482.
  • Fixed compilation of OSX dependencies #2264.
  • Fixed missing update of the slicing back end when the "Bridge flow ratio" is changed #2359.
  • The brim path newly takes into account the wipe tower #2378, thanks @tcm0116.
  • Fixed G-code export on Linux and OSX to permissionless filesystems as FAT32 or Samba #2521 #3102.
  • Fixed a crash when slicing an object standing on a narrow edge or a pointy tip, where the first layer would produce an empty layer. Such situation is newly detected and an error is emitted stopping the slicing process. In the future versions we may try to lower the object and continue slicing #2581. a co #1479?
  • Fixed a buggy check in single-extruder multi-material mode, which prevented usage of layer range parameter modifiers when printing multiple objects #2835.
  • Fixed arrangement of objects larger than the print bed #2897.
  • Fixed one more issue of the admesh library on big endian architectures #2879.
  • Fixed validation of the layer height parameter: Maximum allowed layer height now defaults to 3/4 * nozzle_diameter if the extruder maximum layer height is not specified #2892.
  • Fixed a crash when downloading the latest PrusaSlicer application version from the Internet and garbage is returned by a proxy server #2927.
  • Fixed an unreliable numeric entry into the layer height table, where the number sometimes reverted to the old value on enter #2946.
  • Increased the maximum range to account for large custom print bed or printer models #2948.
  • Fixed crash on update of 3D print path preview with no retractions #2988.
  • OSX specific: Fixed an old issue, where sometimes the first column of the object list was extremely narrow initially #1774 #1927.
  • Fixed an assert in "Set number of instances" #2953.
  • Fixed deselection of an object in the 3D scene after adding an instance with autocenter active #2972.
  • Fixed a crash on arrange #2973.
  • Fixed a crash when deleting an object from the plater #2977.
  • Replaced "mm3/s" with "mm³/s" in UI texts and localizations #2978.
  • Fixed a crash when holding the Shift key and clicking on an empty space in the object list #2997.
  • Fixed color change update after changing layer height. Not all color change events were adjusted to the new layer heights and it was not possible to remove them #3002.
  • Fixed missing or disappearing print bed texture on some computers: The maximum size of the texture allocated for the print bed is now limited to half of the maximum texture size reported by the OpenGL driver, and the print bed texture mip map is calculated down to the 1x1 size #3008.
  • Fixed processing of G92 code (set offset of coordinate system) by the G-code analyzer, fixing 3D print path preview #3010.
  • Implemented M132 code (load the current home position from EEPROM) for Makerbot to fix 3D print path preview #3108.
  • The single-extruder multi-material wipe tower generator newly emits the M220 B/R codes for Marlin firware only. Also a pull request has been accepted by upstream Marlin to implement the Prusa3D M220 B/R G-codes.
  • Fixed some crashes at the object list, where some menu items shown in a context menu for an object instance were not applicable to an instance #3275.
  • Fixed G-code preview for the Machinekit and Mach3/Linuxcnc firmware flavors, which use the A axis for the extruder instead of E #3287.
  • The bundled avrdude has been updated from upstream to fix the use of deprectated gethostbyname() function #2918.
  • Fixed clipping plane visualization in SLA support gizmo for mirrored objects.

Architecture, infrastructure

Starting with PrusaSlicer 2.2, we are fully supporting C++17 on our build servers and we are encouraging our contributors to use C++17 features. We are using the following tools to build PrusaSlicer:

  • Visual Studio 2019 on Windows, supporting Windows 7 and newer.
  • Xcode 11.1 on OSX with OSX 10.14 SDK and the minimum supported OSX version (aka depolyment target) 10.9, supporting OSX 10.9 and newer.
  • Linux builds are built on CentOS 6 with devtoolset-7 (gcc 7.3.1), thus producing binaries compatible with most of current and long term support Linux distributions.

We have introduced a testing framework Catch2 and we have started to use it actively for new development. Many unit tests testing libslic3r were ported from the upstream Slic3r, thanks @lordofhyphens.

We newly test our OSX and Linux builds internally with the Address Sanitizer enabled. The Address Sanitizer builds (aka ASAN) allow us to catch subtle memory access errors much quicker than before. We will test ASAN builds on Windows once Microsoft finishes their Address Sanitizer support in Visual Studio.

Known issues

  • The "Reload from disk" feature requires the paths of the imported objects to be stored into the project file. When sharing such projects on PrusaPrinters, Thingiverse or elswhere, some people may consider sharing paths of their hard drives or company shared drives a security risk. We will provide a way to disable storing the paths into the project file by default, and we will provide a way to export a 3MF file without the paths if the full paths are stored by default.
  • We plan to make the ColorPrint feature for MMU2 a bit more intuitive to better fit the two distinct MMU2 use cases (unattended sign prints versus muti-colored objects printed with more than 5 colors).
  • The automatic redirection to the removable media when exporting a G-code may not always be wanted. We will add a way to save to a non-removable media eve if a removable medium is plugged in.
  • We have renamed many Print, Filament and SLA material profiles due to the introduction of logical names, which breaks the "derived from" property of user profiles and profiles stored into project files. We plan to add a list of "renamed from" profile names to the preset profiles, so that these "derived from" links between profiles are maintained.

What is in the working

We are working diligently on hollowing for SLA. The feature did not make it yet into the first alpha as it turned out to be quite a tough one, but we are positive we will finish it for the 2.2 final release. We are also working on a Raspberry PI 4 build of PrusaSlicer.

PrusaSlicer - PrusaSlicer 2.1.1

Published by bubnikv almost 5 years ago

PrusaSlicer PrusaSlicer 2.1.1

Summary

The PrusaSlicer 2.1.1 release is a minor update of PrusaSlicer 2.1.0, integrating the Prusa Mini printer into the installation wizard, and 3D scene thumbnails are newly generated and exported into the G-code to be displayed on the Prusa Mini printer's display.

The Windows builds provided here on github are newly signed and the OSX builds are newly
notarized for OSX Catalina.

PrusaSlicer - PrusaSlicer 2.1.0

Published by bubnikv about 5 years ago

PrusaSlicer PrusaSlicer 2.1.0

Summary

This is the final release of PrusaSlicer 2.1.0, introducing a state of the art Undo / Redo, height range modifiers, SLA pad around object, perspective camera, partial arrangement, color change time estimate, toolpath export as OBJ, custom print bed models and a lot more. Please check the following video and the detailed change logs of 2.1.0-alpha1, 2.1.0-beta, 2.1.0-beta3 and 2.1.0-rc2 releases for all the major changes. The release candidate shares configuration directory with the previous PrusaSlicer release.

Changes with respect to PrusaSlicer-2.1.0-rc2

  • Fixed message box opening over and over when adding an infill rate parameter to a modifier and then setting the infill rate to 100%. PrusaSlicer would ask to switch the infill type to rectilinear, but it cannot if there was no infill type parameter assigned already to the same modifier, leading to the same question being repeated over and over. This issue has been fixed by adding the infill type parameter to the modifier if it was missing before forcing it to rectilinear #2878 #2920.
  • Fixed regression issue when loading ASCII STLs. This time loading was failing on Linux and OSX when opening ASCII STLs with Windows style line endings #2906.
  • Fixed a regression issue of spurious travel moves from the wipe tower #2925.
  • Fixed false positives of missing object or support layers being detected (see details).
PrusaSlicer - PrusaSlicer 2.1.0-rc2

Published by bubnikv about 5 years ago

PrusaSlicer PrusaSlicer 2.1.0-rc2

Summary

This is a second release candidate of PrusaSlicer 2.1.0. Please check the detailed change logs of 2.1.0-alpha1, 2.1.0-beta and 2.1.0-beta3 releases for all the major changes. The release candidate shares configuration directory with the previous PrusaSlicer release.

Changes with respect to PrusaSlicer-2.1.0-rc

  • Fixed wxWidgets assert when closing the firmware flashing dialog #2619.
  • Fixed broken ASCII STL import, which was a PrusaSlicer 2.1.0-rc regression #2867.
  • Fixed incorrect object positioning when importing a multi-part object from STLs, which was another PrusaSlicer 2.1.0-rc regression #2868.
  • Updated Simplified Chinese translations #2874 thanks @skymaze.
  • OSX specific: Fixed crash when trying to open object list context menu over an empty area #2875.
  • Fixed a regression big endian compilation issue of an STL import code #2879.
  • The custom tool change G-code behavior has been changed in PrusaSlicer 2.1.0-rc in a way that was not compatible with PrusaSlicer 2.0 and earlier: If the custom tool change G-code was not empty, PrusaSlicer 2.1.0-rc expected that the custom tool change G-code was taking responsibility of emitting the tool change G-code (Tx), while the older PrusaSlicer always emitted the Tx code independent of the custom G-code content. Starting with this release, the processed custom tool change G-code is parsed for the tool change G-code switching to the next extruder. If such a tool change G-code is not found, it is emitted after the custom tool change G-code. Such logic is backward compatible with the existing multi-material printer profiles while allowing versatile tool change sequences #2884 #2886.
  • Fixed crashes in case any of the custom G-code sections emitted tool changes to invalid extruder IDs. These invalid tool changes are now logged into console for printer profiles with more than one extruder defined, while they are just ignored for single extruder printers as it is expected that a single extruder printer firmware will ignore the tool change G-codes as well.
  • The .SL1 archive is newly annotated with a PrusaSlicer version, file creation time, estimated print time, names of the print, SLA material and printer profiles, and with the printer model name.
PrusaSlicer - PrusaSlicer 2.1.0-rc

Published by bubnikv about 5 years ago

PrusaSlicer PrusaSlicer 2.1.0-rc

Summary

This is a release candidate of PrusaSlicer 2.1.0. Please check the detailed change logs of 2.1.0-alpha1, 2.1.0-beta and 2.1.0-beta3 releases for all the major changes. The release candidate shares configuration directory with the previous PrusaSlicer release.

Changes with respect to PrusaSlicer-2.1.0-beta3

  • Spanish, French and Italian are fully translated.
  • Linux specific build system fix: Only set SLIC3R_FHS_RESOURCES when SLIC3R_FHS is set #2646, thanks @labsin.
  • Fixed some wxWidgets asserts reporting incorrect (1 pixel off) bitmap sizes #2850.
  • Fixed a regression issue of PrusaSlicer 2.1.0-beta3: G-code preview was broken, travel paths were incorrectly classified as print paths etc. #2857.
  • Following color change issues were fixed:
    • Adding color change at the last layer did not work reliably.
    • Adding color change before the first layer has no effect, therefore it is now disabled.
PrusaSlicer - PrusaSlicer 2.1.0-beta3

Published by bubnikv about 5 years ago

PrusaSlicer PrusaSlicer 2.1.0-beta3

Summary

This is a third beta release of PrusaSlicer 2.1.0, succeeding the PrusaSlicer 2.1.0-alpha1 and the two betas. Please check the detailed change logs of the 2.1.0-alpha1 and 2.1.0-beta release for all the major changes. To let you enjoy the beta without worries, the beta builds save their profiles into PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration.

Translations

  • Wording of some messages and menus was improved and harmonized.
  • Czech, German and Polish languages were fully translated.
  • Spanish, French and Italian are partially translated, some translations are pending.

Improvements

  • Language selection at the first application start and language switching has been reworked:
    • As right-to-left layout is not supported by PrusaSlicer as of now, language is switched to English for the right-to-left locales. #2327
    • A dictionary is newly selected by a language code, not by a language & country code. For example, German dictionary is selected for Swiss German #2580.
    • Windows / OSX specific. PrusaSlicer newly respects the "preferred language" settings of the operating system, it will select a dictionary based on the operating system presentation language.
  • ASCII STL import was made more tolerant to non-standard input formats #2813.
  • Allocation of vertex buffers at the graphics card in a low memory situation has been improved. Multiple smaller buffers are passed to the graphics card driver instead of a single large one to increase chances of success if the GPU memory is fragmented.
  • Improved importing of 3MF and AMF files on low memory systems. The XML data used to be decompressed into memory first, then parsed, while newly the XML data is parsed while unzipping.
  • The new "export toolpaths to object" function now produces 30% smaller files.

Bugs fixed

  • Fixed an issue, where some Z-hops were not performed due to a numeric rounding issue (zero was not exactly zero) #2154.
  • Fixed PrusaSlicer 2.1.0-beta2 regression, where an "enable bridging perimeters" dialog was shown in an endless loop #2821.
  • Fixed PrusaSlicer 2.1.0-beta2 regression reporting "OpenGL detection fails" on Linux even on OpenGL 2.0 capable systems #2844.
  • Fixed some wipe tower issues when printing on a multi-extruder machine: af2a3d2c08282750ca9f2e0f665c7d6bd3616200.
    • Added an extra travel move after a toolchange custom G-code (return from the extruder parking position).
    • Wipe tower now only sets extruder temperature for a single extruder multi-material printer.
    • Ooze prevention does not work with the wipe tower, a check has been added.
PrusaSlicer - PrusaSlicer 2.1.0-beta2

Published by bubnikv about 5 years ago

PrusaSlicer PrusaSlicer 2.1.0-beta2

Summary

This is a second beta release of PrusaSlicer 2.1.0, succeeding the PrusaSlicer 2.1.0-alpha1 and the first beta. Please check the detailed change logs of the 2.1.0-alpha1 and 2.1.0-beta release for all the major changes. To let you enjoy the beta without worries, the beta builds save their profiles into PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration.

Bugs fixed:

  • Fixed a regression from PrusaSlicer 2.1.0-beta, where the support generator was plainly broken #2808 #2810.
  • Speed of the "avoid crossing perimeters" feature was significantly improved, and canceling the G-code export now works reliably with "avoid crossing perimeters" enabled #1743 #1756 #2040 #2458 #2546 #2631 #2783.
PrusaSlicer - PrusaSlicer 2.1.0-beta

Published by bubnikv about 5 years ago

PrusaSlicer PrusaSlicer 2.1.0-beta

Summary

This is a first beta release of PrusaSlicer 2.1.0, succeeding the PrusaSlicer 2.1.0-alpha1. Please check the detailed change log of the 2.1.0-alpha1 release for all the major changes. To let you enjoy the beta without worries, the beta builds save their profiles into PrusaSlicer-beta directory, so you may use the beta side by side with the current release without ruining your production configuration.

New features with respect to PrusaSlicer-2.1.0-alpha1

SLA improvements

  • SLA support generator is now about 2x faster on complex objects.
  • SLA printer profile newly supports min_exposure_time / max_exposure_time / min_initial_exposure_time / max_initial_exposure_time limits to validate the SLA material exposure times against the printer profile.
  • Entering / leaving the SLA gizmo is newly undoable on its own.
  • When jumping to an Undo / Redo snapshot where the SLA gizmo was active before, the supports are newly being recalculated if they were calculated at the time the snapshot was taken.

Other new features

  • Algorithm for priming the single-extruder multi-material setup has been improved to support narrow or circular print beds #1121.
  • Newly one may set the extruder color at the Printer profile to "Undefined". In that case the filament color is used to color the objects and tool paths #2321 #2626.
  • FDM tool paths can now be exported into an OBJ file to be rendered by a photo realistic renderer. The initial idea and code was provided by Paul Arden, see his wonderful renders on twitter. The tool paths could be exported after the G-code is generated by menu File->Export->Export Tool Paths #2472.
  • PrusaSlicer newly detects and reports availability of OpenGL 2.0 capable graphics card. If not available, an appropriate error message is shown, and on Windows an advice is given on how to run PrusaSlicer with software rendering, albeit slowly #2669 #2728.
  • The low memory exception "std::bad_alloc" is newly converted to a text explaining that one may need to buy more RAM for his system.
  • Implemented error checking on malformed PrusaSlicer.ini.
  • Windows specific: Double clicks are no more sent to the 3D scene, each click is sent separately. This makes the 3D scene more responsive. Implemented by patching wxWidgets.

Bugs fixed:

  • Windows specific: There were mysterious corruptions of PrusaSlicer.ini reported, which we cannot explain. Likely the Windows specific "file rename" API is not reliable. We applied a complex "rename file" function from the llvm project with the hopes that it will fix this mysterious file corruption #1357 #2438 #2466.
  • Linux specific: Fixed the AppImage desktop integration by providing an application icon of supported dimensions #1431.
  • Windows specific: The extruder selection drop down menu at the side bar now behaves somehow better: First mouse double clicks are newly disabled on Windows for the side bar, second one click less is needed to activate the extruder combo box in case the line was already active. Still the extruder selection requires three mouse clicks to open the drop down menu. We plan to improve on that #1606.
  • Fixed an issue where an excessive "T0" G-code was being generated for a single extruder printer profile after switching from a "multiple extruders" printer profile to a "single extruder" printer profile #2051 #2166.
  • Linux specific: PrusaSlicer will newly provide a hint to the user if the active locale was not installed correctly in the system #2365 #2580.
  • Fixed a Window specific regression issue starting with 2.0.0 release, where PrusaSlicer was hanging or crashing when closing the application on some computers #2379 #2645.
  • Fixed a regression issue from 2.1.0-alpha, where changing fields at the side bar was not working reliably #2510 #2758.
  • Changed the reference point when loading AMF / 3MF files. The AMF / 3MF files are expected to describe the plater layout, therefore the coordinates of the embedded objects are maintained in respect to the print bed zero point. The content of the loaded AMF / 3MF file was incorrectly centered around the print bed zero point before #2559.
  • The single-extruder multi-material wipe tower generator requied the printing filament diameters to be equal. This check is newly relaxed to 10% tolerance #2737.
  • Fixed updates of colors of objects in the 3D scene after changing filament colors #2738.
  • Fixed a regression issue from 2.1.0-alpha, where the plater overlay was not rendered correctly on some graphics cards #2739.
  • Fixed crash when pressing '?' on the Printer Settings tab #2745.
  • Added credits for Linux AppImage packaging #2747.
  • Windows specific: Fixed zooming by two a finger gesture on some track pads #2750.
  • Fixed a regression issue from 2.1.0-alpha, where an "empty layer detected" check trigger incorrectly in case the support contact distance was set to a negative value. Also the error message was improved to indicate, that the source model may be broken #2752.
  • Parameter overrides of modifier meshes and layer spans are now validated the same way as at the parameter tabs. For example, a very high infill rate cannot be specified for a modifier for a Gyroid infill pattern #2753.
  • Fixed some C++ printf format security issue #2757 thanks @jasontibbitts.
  • Fixed crash of the Arrange function with a custom print bed shape #2765.
  • Fixed a bug, where the firmware linear advance was disabled before entering the wipe tower, but not re-enabled when leaving the wipe tower in case there was no tool change on that layer. Newly the linear advance is only disabled for the ramming procedure, never for the sparse wipe tower layers #2770.
  • The limit on maximum extrusion width introduced in 2.1.0-alpha1 is now lifted to 3x nozzle diameter #2784.
  • The Arrangement was made smarter for a specific scenario #2787.
  • The "Color change" visualization newly interprets "Color change" G-code placeholders, not M600 G-code, so that the "Color change" feature will not get confused by M600's entered into custom G-code sections.
  • Fixed some memory leaks due to some wxDialogs not being deallocated c8ac46df43f0ae467edc02f7587094f7facfe16f.
  • The "layers editing" mode was not being disabled when switching from FDM to SLA, this is now fixed.
  • Fixed a false positive "Spiral Vase option can only be used when printing single material objects" error after switching from a multi-extruder to a single extruder printer profile.
  • Fixed incorrect time stamps of configuration snapshots, where the local time and GMT time API functions were mixed up.
PrusaSlicer - PrusaSlicer 2.1.0-alpha1

Published by bubnikv about 5 years ago

PrusaSlicer 2.1.0-alpha1

PrusaSlicer PrusaSlicer 2.1.0-alpha1

Summary

This is the first alpha release of PrusaSlicer 2.1.0, introducing a state of the art Undo / Redo concept, custom print bed model with lower GPU memory requirements, perspective camera, layer height table with modifier parameters, SLA printing with the pad around the object, wipe tower improvements, partial arrangement, color change time estimates, scale to fit the platform and much more.

To let you enjoy the alpha without worries, the alpha builds save their profiles into PrusaSlicer-alpha directory, so you may use the alpha side by side with the current release without ruining your production configuration.

Undo / Redo #1024

We took our time to implement the Undo / Redo functionality. First, if we had implemented it earlier, we would have to struggle with the Perl programming language bindings, and we would waste a lot of time later on porting that new code into C++. Second, Undo / Redo is hard to do right, and we took our time to implement a robust and future proof framework. We believe we have the best Undo / Redo implementation in the world of FFF and SLA desktop printing software.

All the actions accessible from the Plater are now undoable including object selection, actions at the side bar (adding modifiers, changing their attributes), with the exception of switching the print, filament, SLA material or printer profiles. Changing the parameters at the Print / Filament / SLA Material or Printer parameter tab is already undoable with the "Reset to system value" and "Reset to user saved value" buttons, therefore we decided to not put the events of modifying these parameters onto the Undo / Redo stack of the plater.

One can jump over multiple snapshots by clicking on the Undo or Redo button with the right mouse button. As each of the snapshots have an expressive name assigned, it is easy to orient oneself even in a long list of actions.
Undo list

The Undo / Redo stack currently limits its memory usage to 10% of the physical RAM size, and the oldest Undo snapshots are released until the memory limit is met. As we are only storing differences between the successive Undo / Redo snapshots, the Undo / Redo history is nearly limitless on a modern computer. The Undo / Redo memory statistics is now shown by the System Info dialog.

Some of the PrusaSlicer functionality depends on the active printer technology (FDM or SLA), therefore the active technology is remembered at the time the Undo / Redo snapshot is taken, and the Printer profile is switched to the last active Printer profile of that particular technology when that snapshot is reactivated.

Custom print bed, lower GPU memory consumption & faster start up

PrusaSlicer now supports custom print bed textures and models #1875 #2169 #2496. Both PNG and SVG formats are supported for the print bed texture. The image and model files are assigned to the Printer profile from the "Bed Shape" dialog, and the full path to these files is stored into "bed_custom_texture" and "bed_custom_model" Print profile variables. We are considering to install the custom bed textures and models into user's PrusaSlicer configuration folder, so that we would store the names of these files without a full path to make sharing the Printer profiles easier.

We received multiple reports of graphics issues due to the excessively detailed print bed textures not fitting into the GPU memory #2299 #2382. We implemented two strategies to cope with the low GPU memory issues:

  • We only rasterize the print bed texture to a high resolution of 8192x8192 pixels if the graphics card supports OpenGL 3.0 and newer, or if there is a Retina display connected to a Mac. Otherwise a lower resolution 4096x4096 print bed texture is rasterized.
  • The print bed texture is compressed with this library.

In addition, we improved application start up time and the time to switch the Printer profiles by sending a low resolution print bed texture to the GPU first, while the higher resolutions are compressed and sent to the CPU progressively as they are ready.

Layers editing #1804 #2102 #2347 #2421 #2529 #2587

The Slic3r PE used to offer a layer height table, where one was able to set the layer height per object Z span. While we removed this feature from PrusaSlicer 2.0 due to developer time constraints, we are now bringing the feature back with major improvements: One can now not only define a layer height for a Z span, but one can also apply any parameter to the Z span of an object, that can be assigned to object's modifier mesh. When editing the Z minimum or maximum value of a Z span, the top and bottom planes are visualized at the selected object in the 3D scene. The new feature was mentioned by the "Modeling" with PrusaSlicer? video.

SLA zero object elevation with pad around the object

In PrusaSlicer 2.0 the SLA supports require a certain elevation of the model if supports are to be generated. This ensures that the support pillars do not collide with the model and the pad can also be generated without complications. In the 2.1 release we added a feature to set the elevation to zero and the supports and pad will be correctly derived for every model. The generated pad will surround the object with small break-stick connections. The pictures below show the old behavior (left side) vs the new feature (right side).


If the "pad_zero_elevation" parameter is set, the parameters "pad_object_gap", "pad_object_connector_stride", "pad_object_connector_width", "pad_object_connector_penetration" are used to control the gap between the object and the pad around the object, and to add connectors between the object and pad to improve platform adhesion.

Arrangement of selection only

Arrangement tool can now be used to arrange only a subset of the objects on the bed, while keeping the position of unselected objects unchanged. This can be achieved by selecting the set of objects and hitting the Arrange button while holding down the Shift key, or pressing the Shift + A hot key.

Partial arrangement

Multi material, Wipe tower generator

The old Wipe tower generator used to manipulate the print speed override of the Marlin firmware to slow down for the soluble and flexible materials. Starting with this release, the print speed override G-code is only emitted to reset printer speed override to 100% over the Wipe tower as the Wipe tower is always printed at the maximum extrusion rate possible, while the maximum volumetric speed of an active filament is respected to limit the print speed for both the normal print and for the nozzle cleaning sequences at the Wipe tower.

In addition, the Wipe tower generator now supports multiple physical extruders, not just the "single extruder multi-material" setup, thanks to @tcm0116 for the initial implementation. The filament exchange sequences (ramming, cooling, etc.) specific for the "single extruder multi-material" mode are disabled for a multi-extruder setup #718 #1944 #2337.

We changed the way how custom filament and tool change gcodes are emitted into the final G-code with the goal to make the custom G-codes more versatile and consistent between the "single-extruder multi-material" and "multiple extruders" setups with the wipe tower enabled or disabled (#560 #1530 #1245). Each toolchange now emits:

  • end filament custom gcode
  • toolchange custom gcode; if not provided, a standard tool change G-code (Tn) is inserted
  • start filament gcode

See the tool tips of "start_filament_gcode", "end_filament_gcode", "toolchange_gcode" parameters for details. Lastly, the Wipe tower now supports filaments with diameters different from 1.75 mm.

Filament retract overrides #480 #844 #2661

PrusaSlicer classifies the FDM parameters into three groups: Print, Filament and Printer parameters. This parameter classification is certianly artificial. While the current grouping may make sense for some printers or filaments, it may not suit other setups well. We were asked to make the configuration more flexible.

With this release we are allowing the Filament profiles to override all or some of the extruder retract values. The filament retract overrides define the same configuration keys as the extruder retract configuration values, only prefixed with "filament_". For example, the "retract_length" is overridden with a "filament_retract_length" value. A special "nil" value is used if the filament override value is not set, therefore the extruder retract value shall be used.

The PET and FLEX profiles bundled with this PrusaSlicer release already contain filament specific retract settings to reduce stringing. In the future, we are considering to allow the Filament profile to override the bridging speed and bridge flow ratio. Other candidates are the print speed and acceleration values.

Other new features and improvements

  • Object and their instances may now be marked to be suppressed from the print. Such objects are shown with dark green color on the Plater and they are marked with a crossed eye icon at the object list. The object or instance may be suppressed or enabled by clicking on the "eye" icon at the object list with the right mouse button, or from the object's context menu #1099 #2291 #2694.
  • 3D scene is now rendered with a perspective camera by default. One may toggle between the perspective and orthographic cameras with a "k" hot key, and the last state is stored as the "use_perspective_camera" key into PrusaSlicer.ini #1155 #1809 #2230 #2266 #2271.
  • Single objects can now be scaled to fill the print volume from the object pop up menu or with the "f" hot key when the Scale gizmo is active #1509.
  • Print time estimator now calculates times of each Color change event. Color change time estimates are currently shown at the Sliced info box, we may show the times at the legend in the left top corner in the future #1621 #1636 #2390.
  • The custom G-code sections newly support the "total_layer_count" placeholder everywhere where the "layer_num" is available #1777, thanks @BryanSmithDev.
  • The top and left toolbar sizes are newly configurable from the application preferences dialog #1906 #2247.
  • SLA mode newly supports mirroring of the printer display in both X and Y axes using the new "display_mirror_x" and "display_mirror_y" printer configuration values #2241.
  • The modifier meshes could newly be dropped to the print bed using a new button at the "Part manipulation" side panel #2504.
  • Resetting the application to a "New Project" newly switches to object view from the print path preview automatically #2528.
  • Tooltip of the "uniform / non-uniform scaling" button at the side bar newly explains, that the non-uniform scaling is not allowed for a group selection #2539.
  • The tool path preview newly supports the tool change G-codes of MakerWare and Sailfish firmwares (M135 Tn and M108 Tn) #2566.
  • The tool path preview also newly supports the M401 and M402 codes (Store x, y and z position, Go to stored position) of the Repetier firmware #2663.
  • There are new buttons at the Object manipulation panel for a single object and for a single volume to reset the rotation and scale to zero, and for mirroring (mirroring only allowed in local coordinates) #2607.
  • A list of recently opened project files is newly provided at the File menu #2616.
  • There is a new keyboard shortcut Ctrl+Shift+G and menu "File->Export->Send G-code" #2633.
  • The Left / Right / Up / Down / + / - / Delete keys are newly routed to the slider of the print path preview even if the 3D scene holds the keyboard focus #2714.
  • Layer slider at the print path preview newly moves the active cursor to a mouse click position.
  • There is a new "Reset color changes" button at the bottom of the Layer slider.
  • Error reporting of excessively small or large extrusion width parameters has been improved #2715.
  • Legend at the left top corner of the print path preview can newly be toggled on / off #2727 thanks @wavexx.
  • The Simple / Advanced / Expert mode buttons look newly more like buttons to be discoverable.
  • The "wipe_into_infill" and "wipe_into_objects" options are newly found under the "Wipe options" category instead of "Extruders".
  • Faster STL import / repair due to faster memory allocation.
  • SLA automatic object orientation algorithm has been improved using the Rotating Calipers algorithm to improve chances of fitting a large object into the limited build volume of an SLA printer.
  • The preset editor newly considers the "-- default --" preset to be the system preset for the user profiles derived from it, therefore the "lock" button next to each of the parameter reverts to the "-- default --" value.
  • Statistics on current and maximum memory consumption is newly shown by the System Info dialog and on the console (if enabled with --loglevel parameter).

Translations

Following translations were submitted for PrusaSlicer 2.0 and integrated. Dear contributors, please provide updates for the PrusaSlicer 2.1.

  • Korean translation thanks to @ulsanether
  • Chinese translation thanks to @skymaze
  • Traditional Chinese translation thanks to @taksito
  • Turkish translation thanks to @fsadak

Our current binary distributions grew significantly by bundling the Chinese / Japanese / Korean font to be used in the 3D scene. We are investigating how to use the system fonts instead.

Bugs fixed

  • Fixed an error, where the extruder temperature was sometimes not set for a single-extruder multi-material setup at the very first tool change #1542 #2373 #2685.
  • The "Delete parameter" (the cross) button at the side bar is newly highlighted to indicate keyboard focus #1767.
  • Fixed a crash when moving the layer slider and accidentally right-clicked #1933.
  • Fixed flickering of the 3D view when moving objects on some NVIDIA graphic cards #2136.
  • Fixed compilation issues on OSX: Fixed lookup of the gettext tool #2264.
  • Fixed crash due to a layer height or first layer height being zero. Now the zero layer heights are reported and changed to 0.01mm #2277.
  • Fixed Unit tests failing due to latent Wipe Tower issues #2288.
  • Fixed an error, when PrusaSlicer 2.0.0 refused to import G-codes generated by the Slic3r PE #2304 #2374 #2618.
  • Fixed crash when exporting a config bundle in case no SLA printer profile was activated yet #2307 #2336 #2370 #2446 #2483 #2611.
  • Fixed loading of 3MF or AMF files not generated by the PrusaSlicer. If an AMF or 3MF file does not contain PrusaSlicer's configuration, and if it looks like a multi-part object, slicer now correctly asks whether to convert it to a multi-part object #2317 #2513 #2693.
  • Fixed setting of extruder for multiple part selection #2318.
  • Windows specific: Fixed an issue when trying to open a color picking dialog by clicking on the color field of the filament combo box on plater. Clicking worked over the left part of the color field due to HiDPI scaling not being handled correctly #2321.
  • Fixed repeated query "Do you mean 1% instead of 1mm" when setting extrusion width higher than 1mm. Now PrusaSlicer will ask just once #2326.
  • Fixed layout issue of the "Machine limits" parameter page #2331 #2512.
  • Linux specific: Fixed a crash after deleting settings group from the object list #2343.
  • Fixed crash after renaming an object to an illegal object name (likely Windows specific) #2348 #2459.
  • Fixed import of 3MF files not generated by PrusaSlicer (or Slic3r PE), containing multiple parts. Transformation matrices of the imported objects were not preserved when converting from multiple objects to multiple parts of a single object #2395.
  • OSX specific: Delete key now deletes objects in the 3D scene as well as backspace does #2401.
  • Fixed command line slicing if multiple configurations were loaded with the "--load" parameters, ending with the "Unable to slice in command line mode: Mixing configurations for FFF and SLA technologies" error #2426.
  • Reworked logic for Copy / Paste of volumes (support blockers, enforcers etc): 1) The pasted volume is shifted a bit only if inserted into the source object. If inserted into another object, the pasted volume is not shifted. 2) The source transformation and relative positions are maintained when pasting volumes into another object #2428.
  • Fixed print time estimator, which sometimes produced increased times for increased travel speed settings #1738 #2433.
  • Fixed a bug, where the number of extruders set at the Printer tab was not reflected by the Plater until the Print profile was saved, causing the "gear" button left to the filament combo box not switching to the selected filament #2440.
  • Fixed a typo at the "Usage" print out of the command line slicer: The command line application was renamed from slic3r to prusa-slicer #2484 thanks @stuartpb.
  • Automatic high power graphics card selection on Windows was working in Slic3r PE 1.41.3, broken in PrusaSlicer 2.0, now working again.
  • Fixed picking issues in the 3D scene on NVIDIA cards, leading to crashes and incorrect selection by rectangle. Due to the preceding issue, we only received a single report as most computers out there are laptops featuring an internal low power Intel GPU with a high power (NVIDIA or ATI) enabled on demand. The picking issue is caused by the NVIDIA driver not disabling multi-sampling fully if requested, leading to unexpected object identifiers returned for picks the boundary of objects. The issue has been worked around by introducing a checksum, which rejects these wrong object identifiers with a high probability #2506.
  • Fixed command line processing of vector command line arguments as extruder temperature #2516.
  • The "New Project" command now correctly resets the name of the active project #2520.
  • Fixed hang up of the Arrangement function on some objects #2536.
  • When changing extruder diameter for a "single extruder multi-material" setup, the extruder diameters of active virtual extruders are newly synchronized #2548.
  • It is now possible to select an extruder higher than 9 at the side bar #2558.
  • Fixed some crashes and weird behavior for objects standing on such a sharp edge, that it is too thin to fit an extrusion into. We have added a check to stop the backend from producing an invalid G-code. We may implement a significantly more complex solution later, trying to lower the object down by the number of layers with zero extrusions #2581, #2417, #2670
  • Fixed loading of .zip.amf files from command line #2593.
  • Fixed layout issues of the side panel for some localizations (for example French) #2621.
  • Fixed extruder selection issue ("0" was incorrectly shown instead of the "default" extruder identifier, and the "0" extruder was not processed correctly) #2642.
  • The "start_filament_gcode" was not inserted into G-code for a single extruder setup. This is now fixed. #2652.
  • Fixed crash when adding per-model options #2655 #2659.
  • Improved arrangement for large number of small objects #2656.
  • Fixed compilation on Linux against wxWidgets 3.0 due to wxString API change #2668 #2676.
  • Fixed occasional false reporting of out of print condition for SLA supports in the SLA print preview.
  • When accessing the localized web pages provided by Prusa Research, only those language codes are now passed to the Prusa Research web server, which are currently being localized by PrusaResearch. For example, there is no web page for "en_UK" or "en_AU", the "en_UK" code will be translated to "en_US". Slovak locales will be mapped to Czech #2724.
  • Fixed loading of the variable layer height profile and the SLA support points from 3MF files with instances. The layer height profiles and SLA support points were assigned to incorrect objects on loading if the objects had more then a single instance assigned.
  • Fixed update of the SLA slicing back end after loading of a project file, causing "disable supports" and "disable pad" flags being ignored.
  • Fixed an occasional crash when fixing degenerate STLs on loading.
  • Improved shading of 3D print paths. PrusaSlicer strives to conserve memory by sharing shading information on transitions of linear segments. This was found to cause shading artifacts, if one of the two neighboring segments was long. Newly the shading information is shared only for segments shorter than 2.5mm only.
  • Fixed volumetric flow visualization for the wipe tower extrusions.
  • Importing multi-part AMF or 3MF files is newly rejected in SLA mode.
  • Fixed color print preview, where sometimes the color change event was displayed one or more layers higher than it should.
  • If the color print events are added to a single material FDM print, and the printer is then switched to an SLA printer or a multi-material printer, the color print events are newly ignored: They are not shown at the layer slider, and the print path preview is switched to a "color by tool" mode, not "color by color change".
  • Firmware updater newly refuses to flash if there is no HEX file defined yet or no COM port selected.
  • Fixed firmware updater logic when switching between flashing the printer firmware or the MMU2 unit. Sometimes the COM port selection was not updated with the devices compatible with the loaded HEX file.
  • The preset updating logic was modified, so that if the user refuses a printer profile update on application start up, she or he will not be bugged with the same printer profile update query at the next application start up.
  • Modifier options that are not respected (for example the layer height) may no more be assigned to a modifier mesh #2623.
  • Fixed crashes when the application is closed while arrange or SLA optimize rotation is running.
  • The "Use legacy OpenGL 1.1" checkbox was removed from the Preferences dialog as we do not support OpenGL 1.1 rendering since PrusaSlicer 2.0.

Architecture, infrastructure

  • The PrusaSlicer development team switched to the latest Visual Studio 2019 Community Edition for Windows builds.
  • The heavy weight triangle meshes are newly being shared between the front end, back end, UndoRedo stack and the CopyPaste stack to conserve memory.
  • We have significantly reduced memory leaks at the end of the application.
  • We made first steps to reduce compiler warnings.
  • The old school admesh library was refactored to keep as little state as possible and to use std::vectors for allocation, console print outs were replaced with boost::log.

Linux distros

We are aware of the following new Linux distro packages of PrusaSlicer 2.0 provided by the community:

PrusaSlicer - PrusaSlicer 2.0.0

Published by bubnikv over 5 years ago

PrusaSlicer PrusaSlicer 2.0.0

Summary

This is the final release of PrusaSlicer 2.0.0, mostly fixing bugs discovered in the first two release candidates. The PrusaSlicer 2.0.0 is a successor of the Slic3r Prusa Edition 1.42.0-beta2. See the project web https://www.prusa3d.com/prusaslicer/ for details.

Please check the change logs of 2.0.0-rc, 2.0.0-rc2 and 1.42.0-beta2 for the complete change logs of the 2.0.0 / 1.42.0 series.

Bugs fixed

  • Fixed an issue in copy / paste of objects, where if such a situation was stored into a 3MF or AMF project and reloaded, the copied object instance was shifted by half the bounding box size.
  • OSX specific: Fixed a regression issue against the rc2, where it was not possible to delete the last digit in a spin control.
  • Fixed asserts on application initialization #2272 thanks @wavexx.
  • Fixed an error, when setting the support material distance to "0 (soluble)" or "0.2 (default) and the active language was not English #2278.
  • Fixed a crash when setting the infill to 100% and the active language was not English #2279.
PrusaSlicer - PrusaSlicer 2.0.0-rc2

Published by bubnikv over 5 years ago

PrusaSlicer PrusaSlicer 2.0.0-rc2

Summary

This is a second release candidate of PrusaSlicer 2.0.0, mostly fixing bugs discovered in the first release candidate. The PrusaSlicer 2.0.0-rc2 is a successor of the Slic3r Prusa Edition 1.42.0-beta2. Please see the change logs of 2.0.0-rc and 1.42.0-beta2 for the complete change logs of the 2.0.0 / 1.42.0 series.

Bugs fixed

  • Refresh rate was increased while manipulating the layer slider in the print path preview #1250.
  • List of filament types was extended with resin types less commonly used for FDM printing like PC, PEEK or PEKK. A free form text may newly be entered into the "filament type" field #1704 #2232.
  • The default output_filename_format template was changed to contain the default ".gcode" file extension for the FDM technology and the ".sl1" file extension for the MSLA technology. This gives the user a clear cue, that the extension should better be provided in the template field. This change has been done to fix an issue, where the the code which processes the output_filaneme_format template considers everything after the last dot to be a custom file extension. Also newly an empty output_filename_format is supported as well, producing an output file name with a ".gcode" or an ".sl1" extension #1918.
  • Fixed localization a configuration key by mistake, leading to a crash of PrusaSlicer 2.0.0-rc when switched to French language #2233.
  • Fixed an issue in the "Send G-code to printer host" dialog, where the host upload path persisted even if erased #2234.
  • The "save preset" dialog newly prohibits square brackets in the preset name, as the preset name is used as section key in a config bundle .ini file, and the closing square bracket is prohibited in a section key #2236.
  • OSX specific: Fixed an issue of an edit field with a spin control, where the whole field context was being selected after each key stroke #2237, #2259.
  • Fixed missing images on Windows, "invalid bitmap size" asserts on Linux #2238, #2240.
  • Fixed inconsistent (+) versus (x) icons at the "Color print" layer slider #2249.
  • Fixed wxWidgets asserts on Linux / GTK at closing of many dialogs #2250.
  • OSX specific: Fixed layout issues caused by wxWidgets returning a zero HiDPI scaling value for some UI widgets, if these widgets were not yet fully constructed #2251.
  • Windows specific: Fixed unnecessary notification of the File Explorer due to an association of the 3MF file format with PrusaSlicer at each application start up #2254.
  • OSX specific: Fixed application signing issue at the build server #2269.
  • At the Plater, the extruder selectors for a multi-material FDM printer now correctly limit the choice to the number of extruders defined at the Printer profile
  • Fixed mangled non-latin1 characters in Model Volume name after copy/paste.
  • Concept of a project file has been finished: The project file name is set when an AMF or 3MF file is drag & dropped onto the Plater, and the project name is used by the template processor to build the file name of the output G-code.
  • Windows & Linux specific: Fixed a regression, where in the object list when in-place editing the object name, the accelerator keys (Delete, Backspace, Ctrl-C, Ctrl-V, Ctrl-A) were incorrectly captured by the object list, causing weired effects or even crashes.
  • Added a new "Portions copyright..." dialog, which opens from the About dialog and it shows the used libraries, their authors and copyrights.