Interior mesh can be empty and TriangleMeshSlicer would fail in that case.
Also, recalculating shared vertices after repair should probably be done, TMS relies on it.
Reverted the time estimate number stored into the G-code from
days/hours/minutes to days/hours/minutes/seconds, because who knows
who is already parsing the file.
(SlicedInfo: Removed secondes from estimated times):
GCodeTimeEstimator::_get_time_dhm() shall round to minutes, old
code rounded down to minutes, new code rounds to 1/2.
which is a regression of an optimization 3e0690b37b
With the optimization disabled, the G-code generator will not be slower
than PrusaSlicer 2.1.1. I am leaving the code there to mark for
further optimization opportunities.
is enabled / disabled.
Spiral Vase forces different kind of slicing than the normal model:
In Spiral Vase mode, holes are closed and only the largest area contour is kept at each layer.
Therefore toggling the Spiral Vase on / off requires complete reslicing.
This commit moves the update to the correct location.
Fixes Connecting / expanding Bottom Layers to Vase Perimeter #253
Fixes Slicing error in vase mode #452
Fixes Slicing Issue (Vase Mode, 0.6mm dmr nozzle) #1887
Fixes Top fill pattern isn't used in spiral vase mode #2533
Fixes Cisar's vase doesn't slice correctly, creates artefacts #3595
When the model is sliced, all the contours are newly oriented
counter-clockwise (even holes), merged and then only the largest area
contour is retained. In perimeter generator, if the largest contour
splits into multiple perimeters, newly only the largest area perimeter
is retained in spiral vase mode. These two changes solve #3595 and similar.
The infill is newly calculated only for the bottom solid layers
if the spiral vase mode is active (removes various unwanted infill
along the vase walls), and the last bottom solid layer is switched
to a top solid pattern (solves #2533).
The thin walls are newly enforced to be disabled in spiral vase mode,
and the "ensure vertical shell wall" is enforced in spiral vase mode
to extend the bottom of the vase to the vase hull (fixes#253).
collisions against already printed objects: Rotation of an object
was not being taken into account.
Fixes#2450 PrusaSlicer 2.0 Sequential printing vs rotate object
Fixes#3585 Always Sequential Printing Error (Regardless of setting, placement or object size)
Fixed some collisions in sequential print just after arrangement by
making the validation using a slightly lower extruder radius value
than the arrangement.
Refactored PrintObject coordinate system so that the PrintObject's
coordinate system is always centered in respect to its ModelObject's
geometries. This refactoring may improve path planning a bit and
it may lower the requirements on bits representing Clipper coordinates
by 1 bit.