format/AnycubicSLA: refactor Anycubic SLA format and add Photon Mono and Mono SE printers (#9929)

* 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>
This commit is contained in:
Mimoja 2023-04-05 15:04:06 +02:00 committed by tamasmeszaros
parent f56cffe546
commit e93b222d33
10 changed files with 303 additions and 156 deletions

View file

@ -1,3 +1,7 @@
min_slic3r_version = 2.6.0-alpha4
0.2.4 Enable pad for Anycubic SLA profiles
0.2.3 Added Photon Mono printer.
0.2.2 Added Photon Mono SE printer.
min_slic3r_version = 2.6.0-alpha2
0.2.1 Added Eolas Prints filaments.
0.2.0 Added Photon Mono X printer.

View file

@ -73,6 +73,13 @@ technology = FFF
family = PREDATOR
default_materials = Generic PLA @PREDATOR; Generic PETG @PREDATOR; Generic ABS @PREDATOR
[printer_model:PHOTON MONO]
name = Photon Mono
variants = default
technology = SLA
family = PHOTON MONO
default_materials = Generic Blue Resin @MONO 0.05
[printer_model:PHOTON MONO X]
name = Photon Mono X
variants = default
@ -80,6 +87,13 @@ technology = SLA
family = PHOTON MONO
default_materials = Generic Blue Resin @MONO 0.05
[printer_model:PHOTON MONO SE]
name = Photon Mono SE
variants = default
technology = SLA
family = PHOTON MONO
default_materials = Generic Blue Resin @MONO 0.05
# All presets starting with asterisk, for example *common*, are intermediate and they will
# not make it into the user interface.
@ -2327,11 +2341,10 @@ z_offset = 0
## SLA printers
[sla_print:*common print ANYCUBIC SLA*]
compatible_printers_condition = printer_notes=~/.*PHOTONMONOX.*/
compatible_printers_condition = printer_notes=~/.*VENDOR_ANYCUBIC.*/ and printer_notes=~/.*SLA.*/
layer_height = 0.05
output_filename_format = [input_filename_base].pwmx
pad_edge_radius = 0.5
pad_enable = 0
pad_enable = 1
pad_max_merge_distance = 50
pad_wall_height = 0
pad_wall_thickness = 1
@ -2355,20 +2368,38 @@ support_pillar_widening_factor = 0
supports_enable = 1
support_small_pillar_diameter_percent = 60%
[sla_print:0.05 Normal @ANYCUBIC]
[sla_print:0.05 Normal @ANYCUBIC ABSTRACT]
inherits = *common print ANYCUBIC SLA*
compatible_printers_condition = printer_notes=~/.*ABSTRACT_ONLY.*/
layer_height = 0.05
[sla_print:0.05 Normal @ANYCUBIC MONO]
inherits = 0.05 Normal @ANYCUBIC ABSTRACT
compatible_printers_condition = printer_notes=~/.*PHOTONMONO\n.*/
output_filename_format = [input_filename_base].pwmo
[sla_print:0.05 Normal @ANYCUBIC MONO X]
inherits = 0.05 Normal @ANYCUBIC ABSTRACT
compatible_printers_condition = printer_notes=~/.*PHOTONMONOX\n.*/
output_filename_format = [input_filename_base].pwmx
[sla_print:0.05 Normal @ANYCUBIC MONO SE]
inherits = 0.05 Normal @ANYCUBIC ABSTRACT
compatible_printers_condition = printer_notes=~/.*PHOTONMONOSE\n.*/
output_filename_format = [input_filename_base].pwma
## SLA materials
#MONO series printer need a significantly reduced exposure time but are otherwise compatible
[sla_material:*common ANYCUBIC SLA*]
compatible_printers_condition = printer_notes=~/.*PHOTONMONOX.*/
compatible_printers_condition = printer_notes=~/.*VENDOR_ANYCUBIC.*/ and printer_notes=~/.*SLA.*/
compatible_prints_condition = layer_height == 0.05
exposure_time = 7
initial_exposure_time = 40
initial_layer_height = 0.05
material_correction = 1,1,1
material_notes = LIFT_DISTANCE=8.0\nLIFT_SPEED=2.5\nRETRACT_SPEED=3.0\nBOTTOM_LIFT_SPEED=2.0\nBOTTOM_LIFT_DISTANCE=9.0\nDELAY_BEFORE_EXPOSURE=0.5
material_notes = #Distances are defined in mm, speeds are defined in mm/s.\n#Delay is defined in s.\nLIFT_DISTANCE=8.0\nLIFT_SPEED=2.5\nRETRACT_SPEED=3.0\nBOTTOM_LIFT_SPEED=2.0\nBOTTOM_LIFT_DISTANCE=9.0\nDELAY_BEFORE_EXPOSURE=0.5\nANTIALIASING=1
[sla_material:*common 0.05 ANYCUBIC SLA*]
inherits = *common ANYCUBIC SLA*
@ -2380,10 +2411,66 @@ initial_exposure_time = 40
material_type = Tough
material_vendor = Generic
material_colour = #6080EC
compatible_printers_condition = printer_notes=~/.*PHOTONMONOX.*/
compatible_printers_condition = printer_notes=~/.*MONO.*/ and printer_notes=~/.*VENDOR_ANYCUBIC.*/ and printer_notes=~/.*SLA.*/
## Printers
[printer:Anycubic Photon Mono]
printer_technology = SLA
printer_model = PHOTON MONO
printer_variant = default
default_sla_material_profile = Generic Blue Resin @MONO 0.05
default_sla_print_profile = 0.05 Normal @ANYCUBIC
thumbnails = 224x168
sla_archive_format = pwmo
bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56
display_orientation = landscape
display_mirror_x = 1
display_mirror_y = 0
display_pixels_x = 1620
display_pixels_y = 2560
display_width = 82.62
display_height = 130.56
max_print_height = 165
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
min_exposure_time = 0.8
max_exposure_time = 120
min_initial_exposure_time = 0.8
max_initial_exposure_time = 300
printer_correction = 1,1,1
gamma_correction = 1
area_fill = 50
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONO\nPRINTER_TECHNOLOGY_SLA\n
[printer:Anycubic Photon Mono SE]
printer_technology = SLA
printer_model = PHOTON MONO SE
printer_variant = default
default_sla_material_profile = Generic Blue Resin @MONO 0.05
default_sla_print_profile = 0.05 Normal @ANYCUBIC
thumbnails = 224x168
sla_archive_format = pwms
bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56
display_orientation = landscape
display_mirror_x = 1
display_mirror_y = 0
display_pixels_x = 1620
display_pixels_y = 2560
display_width = 82.62
display_height = 130.56
max_print_height = 160
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
min_exposure_time = 0.8
max_exposure_time = 120
min_initial_exposure_time = 0.8
max_initial_exposure_time = 300
printer_correction = 1,1,1
gamma_correction = 1
area_fill = 45
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOSE\nPRINTER_TECHNOLOGY_SLA\n
[printer:Anycubic Photon Mono X]
printer_technology = SLA
printer_model = PHOTON MONO X
@ -2410,4 +2497,4 @@ max_initial_exposure_time = 300
printer_correction = 1,1,1
gamma_correction = 1
area_fill = 45
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOX\n
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOX\nPRINTER_TECHNOLOGY_SLA\n

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB