Skip to content

PrusaSlicer 2.2.0-alpha4

Compare
Choose a tag to compare
@lukasmatena lukasmatena released this 09 Feb 11:24
· 13904 commits to master since this release

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.