Successfully enhanced and integrated into PrusaSlicer from 3f2ee4062b
Co-authored-by: liz.li <liz.li@bambulab.com>
Co-authored-by: lane.wei <lane.wei@bambulab.com>
Reworked (again!) connecting of islands into a Z-graph.
Implemented various heuristics to handle self-intersecting and
mutually intersecting ExPolygons on the same layer.
if the last layer exceeds max print height while the object itself fits,
a specific error report is given:
"While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
Also the name of the object violating print height is reported
in the error message.
fixed an error for variable ExPolygon expansion (not used in production
code yet), fixed asserts when expanding a hole produces a hole in hole,
which is a valid situation.
The object labeling likely never worked. Likely it was contributed,
but not reviewed sufficiently (by me I suppose).
Now the object ID is calculated as an index in the list of PrintObjects,
the order is arbitrary but stable, indices start with 0 and incremented
for every printed object with no gap in indices.
We are not quite sure how the indices are used by the OctoPrint
"Cancel Object" plugin, I suppose this change is sufficient.
Dynamic overhang speed could sometimes wrongly apply volumtric limits
Also, setting speed to zero will now cause the algorithm to use base external perim speed.
* format/sla: Rename pwmx format to AnycubicSLA
The Anycubic Photon SLA printer familiy is shipped with the PhotonWorkshop slicer.
This slicer generates the sliced archives. These archives have per-printer
extensions, not only pwmx. The name is -most of the times- comprised of the
PhontonWorkshop "pw" bit and the model name. "mo" for the Photon Mono, "mx"
for the Mono X.
Therefore the format name "pwmx" is incorrect and we are renaming it to AnycubicSLA.
On top of it we are introducing a helper macro to connect file extension and printer
definition as most printers use extremely similiar formats.
Signed-off-by: Mimoja <git@mimoja.de>
* format/AnycubicSLA: Add missing fields
The AnycubicSLA format description is derived from reverse engineering of
the PhotonWorkshop output files.
While the initial Photon devices had their binary headers with version 1
we have seen newer models with additional versions. Namely 515, 516 and 517.
We are adding the version handling to the AnycubicSLA exporter to prepare
for future version handling.
Some fields were missing for Version 1 which are added.
Signed-off-by: Mimoja <git@mimoja.de>
* PrintConfig/sla: Move material notes to simple view
As the Anycubic Photon Mono X uses the material notes to configure the
printers parameters we need to change the visibility to allow every user acces.
This will change the default behaviour for non Anycubic SLA printers.
Signed-off-by: Mimoja <git@mimoja.de>
* format/AnycubicSLA: Expose Antialiasing via material notes
Similiar to how the other machine configurations are exposed via the material notes
we are adding the Antialiasing config.
Signed-off-by: Mimoja <git@mimoja.de>
* Printer/sla: Add Anycubic Photon Mono and Mono SE
The Photon Mono and Mono SE are format compatible printers with the Mono X.
They support Version 1 and Version 515 binary archives.
We are implementing them as Version 1 priters to reduce the overhead and keep the code
in line with the Mono X.
The addition as Version 1 printers leaves some features unexposed, most noteably the Antialiasing
level configuration which is now always the maximum.
Given that the printers check the eligability of sliced files by file extension we are
poised to create per-printer sla_print default configurations to overwrite output_filename_format.
Tested: Successfully printed multiple objects. Changing the layer parameter on the onscreen display
succeeded.
---------
Signed-off-by: Mimoja <git@mimoja.de>