print_bed_min, print_bed_max, print_bed_size
calculated from a bounding box of bed_shape vector of points.
Also added first_layer_print_size as a size of a first layer print
bounding box.
process G90 lines
process G91 lines
process G92 lines
process M82 lines
process M83 lines
process T lines
process extrusion role/width/height comment tags
debug output
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.
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.
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.
printer configuration:
ss -> sm : Just apply the color changes of the original ss project at the active extruder.
ss -> mm : There are no tool changes stored. Ignore color changes, they are invalid because they are extruder non-specific.
sm -> ss : Apply tool changes as color changes (tool changes remember the target color), apply original color changes.
sm -> mm : Ignore both color changes and tool changes.
mm -> ss/sm : Ignore both color changes and tool changes.
where the PrintObject bounding box was not invalidated correctly
when the transformation matrices of instances changed.
Also refactored PrintObject::size() for const correctness.