diff options
author | Tiago Conceição <Tiago_caza@hotmail.com> | 2021-01-14 02:19:23 +0300 |
---|---|---|
committer | Tiago Conceição <Tiago_caza@hotmail.com> | 2021-01-14 02:19:23 +0300 |
commit | 097bbb867dd2a5942602d0dadc71187494e55b35 (patch) | |
tree | 3e3da6bf15cb0b3c9197bd8e63322f1250afba1d | |
parent | 17bdece1b536013ae72213717311a0dcd389f97c (diff) |
v2.3.0v2.3.0
* **PrusaSlicer:**
* **In this release is recommended to discard your printer and refresh it with uvtools updated printer or replace notes over**
* (Add) FILEFORMAT_XXX variable to auto-convert to that file format once open in UVtools
* (Update) Print profiles fields with new PrusaSlicer version
* (Remove) LayerOffDelay from printer notes and use only the LightOffDelay variable instead, both were being used, to avoid redundacy LayerOffDelay was dropped. Please update your printer accordingly!
* (Remove) FLIP_XY compability from printers
* (Remove) AntiAlias variable from printers
* **(Add) Settings - Automations:**
* Auto save the file after apply any automation(s)
* Auto convert SL1 files to the target format when possible and load it back
* Auto set the extra 'light-off delay' based on lift height and speed.
* (Add) Allow all and future formats to convert between them without knowing each other (Abstraction)
* (Add) XYResolution and XYResolutionUm property to file formats
* (Add) Calculator - Optimal model tilt: Calculates the optimal model tilt angle for printing and to minimize the visual layer effect
* (Add) Bottom layer count to the status bar
* **(Add) FileFormat propertiers:**
* MirrorDisplay: If images need to be mirrored on lcd to print on the correct orientation (If available)
* MaxPrintHeight: The maximum Z build volume of the printer (If available)
* (Add) ZCodex: Print paramenter light-off delay"
* (Add) SL1: Implement missing keys: host_type, physical_printer_settings_id and support_small_pillar_diameter_percent
* (Change) File formats: Round all setters floats to 2 decimals
* (Change) Island Repair: "Remove Islands Below Equal Pixels" limit from 255 to 65535 (#124)
* (Change) LightOffTime variables to LayerOffDelay
* (Fix) Files with upper case extensions doesn't load in
* **(Fix) SL1:**
* Prevent error when bottle volume is 0
* bool values were incorrectly parsed
* (Fix) **ZIP:**
* Material volume was set to grams
* Bed Y was not being set
176 files changed, 1755 insertions, 5900 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e873e3..707bcb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,38 @@ # Changelog +## 13/01/2021 - v2.3.0 + +* **PrusaSlicer:** + * **In this release is recommended to discard your printer and refresh it with uvtools updated printer or replace notes over** + * (Add) FILEFORMAT_XXX variable to auto-convert to that file format once open in UVtools + * (Update) Print profiles fields with new PrusaSlicer version + * (Remove) LayerOffDelay from printer notes and use only the LightOffDelay variable instead, both were being used, to avoid redundacy LayerOffDelay was dropped. Please update your printer accordingly! + * (Remove) FLIP_XY compability from printers + * (Remove) AntiAlias variable from printers +* **(Add) Settings - Automations:** + * Auto save the file after apply any automation(s) + * Auto convert SL1 files to the target format when possible and load it back + * Auto set the extra 'light-off delay' based on lift height and speed. +* (Add) Allow all and future formats to convert between them without knowing each other (Abstraction) +* (Add) XYResolution and XYResolutionUm property to file formats +* (Add) Calculator - Optimal model tilt: Calculates the optimal model tilt angle for printing and to minimize the visual layer effect +* (Add) Bottom layer count to the status bar +* **(Add) FileFormat propertiers:** + * MirrorDisplay: If images need to be mirrored on lcd to print on the correct orientation (If available) + * MaxPrintHeight: The maximum Z build volume of the printer (If available) +* (Add) ZCodex: Print paramenter light-off delay" +* (Add) SL1: Implement missing keys: host_type, physical_printer_settings_id and support_small_pillar_diameter_percent +* (Change) File formats: Round all setters floats to 2 decimals +* (Change) Island Repair: "Remove Islands Below Equal Pixels" limit from 255 to 65535 (#124) +* (Change) LightOffTime variables to LayerOffDelay +* (Fix) Files with upper case extensions doesn't load in +* **(Fix) SL1:** + * Prevent error when bottle volume is 0 + * bool values were incorrectly parsed +* (Fix) **ZIP:** + * Material volume was set to grams + * Bed Y was not being set + ## 10/01/2021 - v2.2.0 * (Add) FDG file format for Voxelab Printers (ezrec/uv3dp#129) @@ -41,4 +41,5 @@ * Jorge diego Robles Ayerbe * Timothy Gray * David Gordon -* Claus Pfeilschifter
\ No newline at end of file +* Claus Pfeilschifter +* Chris Taatgen
\ No newline at end of file diff --git a/PrusaSlicer/printer/AnyCubic Photon Mono SE.ini b/PrusaSlicer/printer/AnyCubic Photon Mono SE.ini index 801bf75..5f7594b 100644 --- a/PrusaSlicer/printer/AnyCubic Photon Mono SE.ini +++ b/PrusaSlicer/printer/AnyCubic Photon Mono SE.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-15 at 17:22:57 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:41:49 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO_SE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0.5\nBottomLightOffDelay_2\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_150\nLiftSpeed_150\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO_SE\nFILEFORMAT_PWMS\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0.5\nBottomLightOffDelay_2\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_150\nLiftSpeed_150\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/AnyCubic Photon Mono X.ini b/PrusaSlicer/printer/AnyCubic Photon Mono X.ini index 24333d0..0a9a498 100644 --- a/PrusaSlicer/printer/AnyCubic Photon Mono X.ini +++ b/PrusaSlicer/printer/AnyCubic Photon Mono X.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-15 at 17:27:21 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:41:30 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO_X\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0.5\nBottomLightOffDelay_2\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO_X\nFILEFORMAT_PWMX\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0.5\nBottomLightOffDelay_2\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/AnyCubic Photon Mono.ini b/PrusaSlicer/printer/AnyCubic Photon Mono.ini index 9d7c45d..a6a56b7 100644 --- a/PrusaSlicer/printer/AnyCubic Photon Mono.ini +++ b/PrusaSlicer/printer/AnyCubic Photon Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-15 at 17:22:43 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:42:13 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0.5\nBottomLightOffDelay_2\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_150\nLiftSpeed_150\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO\nFILEFORMAT_PWMO\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0.5\nBottomLightOffDelay_2\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_150\nLiftSpeed_150\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/AnyCubic Photon S.ini b/PrusaSlicer/printer/AnyCubic Photon S.ini index a0e3071..c598345 100644 --- a/PrusaSlicer/printer/AnyCubic Photon S.ini +++ b/PrusaSlicer/printer/AnyCubic Photon S.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:30:11 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:41:23 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_S\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_S\nFILEFORMAT_PWS\n\nSTART_CUSTOM_VALUES\nLightOffDelay_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/AnyCubic Photon X.ini b/PrusaSlicer/printer/AnyCubic Photon X.ini index 6ac2568..e7954b6 100644 --- a/PrusaSlicer/printer/AnyCubic Photon X.ini +++ b/PrusaSlicer/printer/AnyCubic Photon X.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-15 at 17:25:52 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:41:05 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_X\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0.5\nBottomLightOffDelay_2\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_150\nLiftSpeed_150\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_X\nFILEFORMAT_PWX\n\nSTART_CUSTOM_VALUES\nLightOffDelay_1\nBottomLightOffDelay_2\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_150\nLiftSpeed_150\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/AnyCubic Photon Zero.ini b/PrusaSlicer/printer/AnyCubic Photon Zero.ini index 3f312b4..4a82e05 100644 --- a/PrusaSlicer/printer/AnyCubic Photon Zero.ini +++ b/PrusaSlicer/printer/AnyCubic Photon Zero.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:11:02 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:39:53 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_ZERO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_ZERO\nFILEFORMAT_PW0\n\nSTART_CUSTOM_VALUES\nLightOffDelay_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/AnyCubic Photon.ini b/PrusaSlicer/printer/AnyCubic Photon.ini index 28922c3..a6174ab 100644 --- a/PrusaSlicer/printer/AnyCubic Photon.ini +++ b/PrusaSlicer/printer/AnyCubic Photon.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:09:41 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:42:24 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Creality LD-002H.ini b/PrusaSlicer/printer/Creality LD-002H.ini index f64c265..28a5178 100644 --- a/PrusaSlicer/printer/Creality LD-002H.ini +++ b/PrusaSlicer/printer/Creality LD-002H.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:00 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:39:43 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_002H\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_50\nLiftSpeed_50\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_002H\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_50\nLiftSpeed_50\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Creality LD-002R.ini b/PrusaSlicer/printer/Creality LD-002R.ini index e4bdfbd..3605fff 100644 --- a/PrusaSlicer/printer/Creality LD-002R.ini +++ b/PrusaSlicer/printer/Creality LD-002R.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:06 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:39:38 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_002R\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_002R\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Creality LD-006.ini b/PrusaSlicer/printer/Creality LD-006.ini index 8a88238..0bfaa6f 100644 --- a/PrusaSlicer/printer/Creality LD-006.ini +++ b/PrusaSlicer/printer/Creality LD-006.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:10 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:39:33 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_006\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_80\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_006\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_80\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX E10 Mono.ini b/PrusaSlicer/printer/EPAX E10 Mono.ini index 3d8c0c7..c186b4e 100644 --- a/PrusaSlicer/printer/EPAX E10 Mono.ini +++ b/PrusaSlicer/printer/EPAX E10 Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:14 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:54 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_E10_Mono\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_E10_Mono\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX E6 Mono.ini b/PrusaSlicer/printer/EPAX E6 Mono.ini index aab4ae4..e8306d4 100644 --- a/PrusaSlicer/printer/EPAX E6 Mono.ini +++ b/PrusaSlicer/printer/EPAX E6 Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:18 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:51 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_E6_Mono\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_E6_Mono\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX X1.ini b/PrusaSlicer/printer/EPAX X1.ini index 80d13c0..08aaa22 100644 --- a/PrusaSlicer/printer/EPAX X1.ini +++ b/PrusaSlicer/printer/EPAX X1.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:43:50 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:47 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX X10 4K Mono.ini b/PrusaSlicer/printer/EPAX X10 4K Mono.ini index ca8583e..5934dd2 100644 --- a/PrusaSlicer/printer/EPAX X10 4K Mono.ini +++ b/PrusaSlicer/printer/EPAX X10 4K Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:24 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:39 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10_4KMONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10_4KMONO\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX X10.ini b/PrusaSlicer/printer/EPAX X10.ini index dae3c2d..557eb46 100644 --- a/PrusaSlicer/printer/EPAX X10.ini +++ b/PrusaSlicer/printer/EPAX X10.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:44:05 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:43 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX X133 4K Mono.ini b/PrusaSlicer/printer/EPAX X133 4K Mono.ini index 73ed4b5..1c9f25f 100644 --- a/PrusaSlicer/printer/EPAX X133 4K Mono.ini +++ b/PrusaSlicer/printer/EPAX X133 4K Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:27 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:35 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X133_4KMONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X133_4KMONO\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX X156 4K Color.ini b/PrusaSlicer/printer/EPAX X156 4K Color.ini index 6f47841..9c0ffbc 100644 --- a/PrusaSlicer/printer/EPAX X156 4K Color.ini +++ b/PrusaSlicer/printer/EPAX X156 4K Color.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:32 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:31 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X156_4KCOLOR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X156_4KCOLOR\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/EPAX X1K 2K Mono.ini b/PrusaSlicer/printer/EPAX X1K 2K Mono.ini index 611935f..7db4ecb 100644 --- a/PrusaSlicer/printer/EPAX X1K 2K Mono.ini +++ b/PrusaSlicer/printer/EPAX X1K 2K Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:38 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:25 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1K_2K_MONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1K_2K_MONO\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Elegoo Mars 2 Pro.ini b/PrusaSlicer/printer/Elegoo Mars 2 Pro.ini index c41ae9a..a544198 100644 --- a/PrusaSlicer/printer/Elegoo Mars 2 Pro.ini +++ b/PrusaSlicer/printer/Elegoo Mars 2 Pro.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:49:49 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:08 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS2_PRO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_80\nRetractSpeed_210\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS2_PRO\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_80\nRetractSpeed_210\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Elegoo Mars C.ini b/PrusaSlicer/printer/Elegoo Mars C.ini index b01c79a..1f3cb39 100644 --- a/PrusaSlicer/printer/Elegoo Mars C.ini +++ b/PrusaSlicer/printer/Elegoo Mars C.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:46 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:03 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS_C\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS_C\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Elegoo Mars.ini b/PrusaSlicer/printer/Elegoo Mars.ini index dc243d1..8e0d8ef 100644 --- a/PrusaSlicer/printer/Elegoo Mars.ini +++ b/PrusaSlicer/printer/Elegoo Mars.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:08:57 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:38:21 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Elegoo Saturn.ini b/PrusaSlicer/printer/Elegoo Saturn.ini index 33233c1..36a1217 100644 --- a/PrusaSlicer/printer/Elegoo Saturn.ini +++ b/PrusaSlicer/printer/Elegoo Saturn.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:50:06 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:37:58 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_SATURN\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_210\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_SATURN\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_210\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Kelant S400.ini b/PrusaSlicer/printer/Kelant S400.ini index 2e21c0c..18262dc 100644 --- a/PrusaSlicer/printer/Kelant S400.ini +++ b/PrusaSlicer/printer/Kelant S400.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:20:36 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:37:24 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_KELANT\nPRINTER_MODEL_S400\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_15\nBottomLiftSpeed_30\nLiftSpeed_30\nRetractSpeed_300\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_KELANT\nPRINTER_MODEL_S400\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_15\nBottomLiftSpeed_30\nLiftSpeed_30\nRetractSpeed_300\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Longer Orange 10.ini b/PrusaSlicer/printer/Longer Orange 10.ini index 4c923e0..cedf3f5 100644 --- a/PrusaSlicer/printer/Longer Orange 10.ini +++ b/PrusaSlicer/printer/Longer Orange 10.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:21:14 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:36:09 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE10\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_4\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE10\nFILEFORMAT_LGS\n\nSTART_CUSTOM_VALUES\nLightOffDelay_1\nBottomLightOffDelay_1\nBottomLiftHeight_4\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Longer Orange 30.ini b/PrusaSlicer/printer/Longer Orange 30.ini index 5e9bd7e..b5ee165 100644 --- a/PrusaSlicer/printer/Longer Orange 30.ini +++ b/PrusaSlicer/printer/Longer Orange 30.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:51:24 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 03:51:46 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE30\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_2\nLiftHeight_2\nBottomLiftSpeed_48\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE30\nFILEFORMAT_LGS30\n\nSTART_CUSTOM_VALUES\nLightOffDelay_1\nBottomLightOffDelay_1\nBottomLiftHeight_2\nLiftHeight_2\nBottomLiftSpeed_48\nLiftSpeed_150\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Longer Orange4K.ini b/PrusaSlicer/printer/Longer Orange4K.ini index 7766383..440ae51 100644 --- a/PrusaSlicer/printer/Longer Orange4K.ini +++ b/PrusaSlicer/printer/Longer Orange4K.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:52:58 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:35:56 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE30\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_2\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE30\nFILEFORMAT_LGS\n\nSTART_CUSTOM_VALUES\nLightOffDelay_1\nBottomLightOffDelay_1\nBottomLiftHeight_2\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Bene4 Mono.ini b/PrusaSlicer/printer/Nova3D Bene4 Mono.ini index 8e11a37..21b2736 100644 --- a/PrusaSlicer/printer/Nova3D Bene4 Mono.ini +++ b/PrusaSlicer/printer/Nova3D Bene4 Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:22:18 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:35:43 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_BENE4_MONO\n\nSTART_CUSTOM_VALUES\nXppm_19.608\nYppm_19.608\nWaitBeforeExpoMs_3000\nLiftHeight_4\nLiftSpeed_120\nRetractSpeed_120\nLiftWhenFinished_80\nBlankingLayerTime_0\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nNOVAMAKER_GRAY2RGB_ENCODE ; Required for Bene4 Mono as output images are in RGB\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_BENE4_MONO\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Elfin.ini b/PrusaSlicer/printer/Nova3D Elfin.ini index 8786860..336c23b 100644 --- a/PrusaSlicer/printer/Nova3D Elfin.ini +++ b/PrusaSlicer/printer/Nova3D Elfin.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:22:45 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:35:32 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_ELFIN\n\nSTART_CUSTOM_VALUES\nXppm_19.324\nYppm_19.324\nWaitBeforeExpoMs_2000\nLiftHeight_4\nLiftSpeed_120\nRetractSpeed_120\nLiftWhenFinished_80\nBlankingLayerTime_0\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_ELFIN\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Peopoly Phenom L.ini b/PrusaSlicer/printer/Peopoly Phenom L.ini index 3a31a1d..5696a43 100644 --- a/PrusaSlicer/printer/Peopoly Phenom L.ini +++ b/PrusaSlicer/printer/Peopoly Phenom L.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:26:28 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:35:04 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_L\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_12\nLiftHeight_9\nBottomLiftSpeed_32\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_L\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_12\nLiftHeight_9\nBottomLiftSpeed_32\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Peopoly Phenom Noir.ini b/PrusaSlicer/printer/Peopoly Phenom Noir.ini index 11c53bf..98726f1 100644 --- a/PrusaSlicer/printer/Peopoly Phenom Noir.ini +++ b/PrusaSlicer/printer/Peopoly Phenom Noir.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:23:00 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:34:50 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_NOIR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_36\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_NOIR\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_36\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Peopoly Phenom XXL.ini b/PrusaSlicer/printer/Peopoly Phenom XXL.ini index 2b25a87..50a551f 100644 --- a/PrusaSlicer/printer/Peopoly Phenom XXL.ini +++ b/PrusaSlicer/printer/Peopoly Phenom XXL.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-05 at 20:51:10 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:34:39 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_XXL\n\nSTART_CUSTOM_VALUES\nLayerOffTime_2\nBottomLightOffDelay_8\nBottomLiftHeight_15\nLiftHeight_14\nBottomLiftSpeed_32\nLiftSpeed_35\nRetractSpeed_100\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_XXL\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_2\nBottomLightOffDelay_8\nBottomLiftHeight_15\nLiftHeight_14\nBottomLiftSpeed_32\nLiftSpeed_35\nRetractSpeed_100\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Peopoly Phenom.ini b/PrusaSlicer/printer/Peopoly Phenom.ini index 0b6fbd2..c7b8a41 100644 --- a/PrusaSlicer/printer/Peopoly Phenom.ini +++ b/PrusaSlicer/printer/Peopoly Phenom.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:22:52 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:35:17 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_36\nLiftSpeed_48\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_36\nLiftSpeed_48\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Shuffle 16.ini b/PrusaSlicer/printer/Phrozen Shuffle 16.ini index 4fd48c3..cc546b5 100644 --- a/PrusaSlicer/printer/Phrozen Shuffle 16.ini +++ b/PrusaSlicer/printer/Phrozen Shuffle 16.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:11:50 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:33:45 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_16\n\nSTART_CUSTOM_VALUES\nLayerOffTime_15\nBottomLightOffDelay_15\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_16\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_15\nBottomLightOffDelay_15\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Shuffle 4K.ini b/PrusaSlicer/printer/Phrozen Shuffle 4K.ini index 1d78ca5..bef8e0d 100644 --- a/PrusaSlicer/printer/Phrozen Shuffle 4K.ini +++ b/PrusaSlicer/printer/Phrozen Shuffle 4K.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:57:14 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:33:30 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_4K\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Shuffle Lite.ini b/PrusaSlicer/printer/Phrozen Shuffle Lite.ini index ae1b713..8915387 100644 --- a/PrusaSlicer/printer/Phrozen Shuffle Lite.ini +++ b/PrusaSlicer/printer/Phrozen Shuffle Lite.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:04:46 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:33:14 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_LITE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_LITE\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Shuffle XL Lite.ini b/PrusaSlicer/printer/Phrozen Shuffle XL Lite.ini index bcc8bac..c619657 100644 --- a/PrusaSlicer/printer/Phrozen Shuffle XL Lite.ini +++ b/PrusaSlicer/printer/Phrozen Shuffle XL Lite.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:06:06 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:32:55 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_XL_LITE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_XL_LITE\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Shuffle XL.ini b/PrusaSlicer/printer/Phrozen Shuffle XL.ini index 3240641..8e3bf95 100644 --- a/PrusaSlicer/printer/Phrozen Shuffle XL.ini +++ b/PrusaSlicer/printer/Phrozen Shuffle XL.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:06:01 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:33:01 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_XL\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_8\nLiftHeight_6\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_XL\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_7\nBottomLightOffDelay_7\nBottomLiftHeight_8\nLiftHeight_6\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Shuffle.ini b/PrusaSlicer/printer/Phrozen Shuffle.ini index 37ce48c..faa1ecb 100644 --- a/PrusaSlicer/printer/Phrozen Shuffle.ini +++ b/PrusaSlicer/printer/Phrozen Shuffle.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:56:59 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:34:03 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Sonic 4K.ini b/PrusaSlicer/printer/Phrozen Sonic 4K.ini index f2255ce..b48fcd2 100644 --- a/PrusaSlicer/printer/Phrozen Sonic 4K.ini +++ b/PrusaSlicer/printer/Phrozen Sonic 4K.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:13:52 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:32:07 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_4K\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Sonic Mighty 4K.ini b/PrusaSlicer/printer/Phrozen Sonic Mighty 4K.ini index c93d717..dd9fd15 100644 --- a/PrusaSlicer/printer/Phrozen Sonic Mighty 4K.ini +++ b/PrusaSlicer/printer/Phrozen Sonic Mighty 4K.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:16:20 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:31:52 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MIGHTY_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_11\nBottomLightOffDelay_11\nBottomLiftHeight_8\nLiftHeight_6\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MIGHTY_4K\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_11\nBottomLightOffDelay_11\nBottomLiftHeight_8\nLiftHeight_6\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Sonic Mini 4K.ini b/PrusaSlicer/printer/Phrozen Sonic Mini 4K.ini index 94a0c00..1260ca8 100644 --- a/PrusaSlicer/printer/Phrozen Sonic Mini 4K.ini +++ b/PrusaSlicer/printer/Phrozen Sonic Mini 4K.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:09:38 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:31:27 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI_4K\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Sonic Mini.ini b/PrusaSlicer/printer/Phrozen Sonic Mini.ini index cdcda19..48baf59 100644 --- a/PrusaSlicer/printer/Phrozen Sonic Mini.ini +++ b/PrusaSlicer/printer/Phrozen Sonic Mini.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:26:16 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:31:37 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI\nFILEFORMAT_PHZ\n\nSTART_CUSTOM_VALUES\nLightOffDelay_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Sonic.ini b/PrusaSlicer/printer/Phrozen Sonic.ini index f87a458..8fe4087 100644 --- a/PrusaSlicer/printer/Phrozen Sonic.ini +++ b/PrusaSlicer/printer/Phrozen Sonic.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:08:50 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:32:22 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC\n\nSTART_CUSTOM_VALUES\nLayerOffTime_6\nBottomLightOffDelay_6\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_6\nBottomLightOffDelay_6\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Phrozen Transform.ini b/PrusaSlicer/printer/Phrozen Transform.ini index 1360d3f..0674451 100644 --- a/PrusaSlicer/printer/Phrozen Transform.ini +++ b/PrusaSlicer/printer/Phrozen Transform.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:58 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:31:21 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_TRANSFORM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_TRANSFORM\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_10\nBottomLightOffDelay_10\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/QIDI I-Box Mono.ini b/PrusaSlicer/printer/QIDI I-Box Mono.ini index e870f9d..9075d01 100644 --- a/PrusaSlicer/printer/QIDI I-Box Mono.ini +++ b/PrusaSlicer/printer/QIDI I-Box Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-05 at 20:54:54 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:30:16 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_I-BOX_MONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_100\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_I-BOX_MONO\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_100\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/QIDI S-Box.ini b/PrusaSlicer/printer/QIDI S-Box.ini index 3014478..8e8d1eb 100644 --- a/PrusaSlicer/printer/QIDI S-Box.ini +++ b/PrusaSlicer/printer/QIDI S-Box.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:21:39 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:30:13 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_S-BOX\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_10\nLiftHeight_7\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_S-BOX\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_10\nLiftHeight_7\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/QIDI Shadow5.5.ini b/PrusaSlicer/printer/QIDI Shadow5.5.ini index abfdfb2..f45b416 100644 --- a/PrusaSlicer/printer/QIDI Shadow5.5.ini +++ b/PrusaSlicer/printer/QIDI Shadow5.5.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:19:21 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:30:09 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW5.5\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW5.5\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini b/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini index 1cd2f97..4ebd8ca 100644 --- a/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini +++ b/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:20:10 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:30:04 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW6.0_PRO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW6.0_PRO\nFILEFORMAT_CTB\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Voxelab Ceres 8.9.ini b/PrusaSlicer/printer/Voxelab Ceres 8.9.ini index 20e560d..fc63f38 100644 --- a/PrusaSlicer/printer/Voxelab Ceres 8.9.ini +++ b/PrusaSlicer/printer/Voxelab Ceres 8.9.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-09 at 22:10:08 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:26:10 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_CERES_8.9\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nFORMAT_FDG\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_CERES_8.9\nFILEFORMAT_FDG\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Voxelab Polaris 5.5.ini b/PrusaSlicer/printer/Voxelab Polaris 5.5.ini index 7015849..45990db 100644 --- a/PrusaSlicer/printer/Voxelab Polaris 5.5.ini +++ b/PrusaSlicer/printer/Voxelab Polaris 5.5.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-09 at 22:08:12 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:26:19 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_POLARIS_5.5\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nFORMAT_FDG\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_POLARIS_5.5\nFILEFORMAT_FDG\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Voxelab Proxima 6.ini b/PrusaSlicer/printer/Voxelab Proxima 6.ini index 1c6e5d9..400d244 100644 --- a/PrusaSlicer/printer/Voxelab Proxima 6.ini +++ b/PrusaSlicer/printer/Voxelab Proxima 6.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-09 at 22:08:28 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:26:34 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_PROXIMA_6\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nFORMAT_FDG\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_PROXIMA_6\nFILEFORMAT_FDG\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Wanhao CGR Mini Mono.ini b/PrusaSlicer/printer/Wanhao CGR Mini Mono.ini index 12a718a..ba70432 100644 --- a/PrusaSlicer/printer/Wanhao CGR Mini Mono.ini +++ b/PrusaSlicer/printer/Wanhao CGR Mini Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-05 at 21:18:50 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:27:56 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_CGR_MINI_MONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_50\nRetractSpeed_100\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_CGR_MINI_MONO\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_50\nRetractSpeed_100\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Wanhao CGR Mono.ini b/PrusaSlicer/printer/Wanhao CGR Mono.ini index 9770f50..45020b4 100644 --- a/PrusaSlicer/printer/Wanhao CGR Mono.ini +++ b/PrusaSlicer/printer/Wanhao CGR Mono.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-05 at 21:23:35 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:27:51 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_CGR_MONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_60\nLiftSpeed_50\nRetractSpeed_60\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_CGR_MONO\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_6\nLiftHeight_6\nBottomLiftSpeed_60\nLiftSpeed_50\nRetractSpeed_60\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Wanhao D7.ini b/PrusaSlicer/printer/Wanhao D7.ini index 9361237..1c1636b 100644 --- a/PrusaSlicer/printer/Wanhao D7.ini +++ b/PrusaSlicer/printer/Wanhao D7.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:28:07 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:28:38 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D7\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D7\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Wanhao D8.ini b/PrusaSlicer/printer/Wanhao D8.ini index 2ced018..9328103 100644 --- a/PrusaSlicer/printer/Wanhao D8.ini +++ b/PrusaSlicer/printer/Wanhao D8.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:28:11 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:28:34 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D8\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D8\nFILEFORMAT_ZIP\n\nSTART_CUSTOM_VALUES\nLightOffDelay_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Zortrax Inkspire.ini b/PrusaSlicer/printer/Zortrax Inkspire.ini index 879b5b9..4b574ec 100644 --- a/PrusaSlicer/printer/Zortrax Inkspire.ini +++ b/PrusaSlicer/printer/Zortrax Inkspire.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:06:43 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 02:27:12 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -17,6 +17,7 @@ elefant_foot_compensation = 0.2 elefant_foot_min_width = 0.2 fast_tilt_time = 5 gamma_correction = 1 +host_type = octoprint inherits = Original Prusa SL1 max_exposure_time = 120 max_initial_exposure_time = 300 @@ -25,7 +26,7 @@ min_exposure_time = 1 min_initial_exposure_time = 1 print_host = printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ZORTRAX\nPRINTER_MODEL_INKSPIRE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_5\nLiftHeight_5\nLiftSpeed_100\nRetractSpeed_100\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES +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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ZORTRAX\nPRINTER_MODEL_INKSPIRE\nFILEFORMAT_ZCODEX\n\nSTART_CUSTOM_VALUES\nLightOffDelay_5\nLiftHeight_5\nLiftSpeed_100\nRetractSpeed_100\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/sla_print/Universal 0.01 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.01 - Heavy Supports.ini index f488711..54a964b 100644 --- a/PrusaSlicer/sla_print/Universal 0.01 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.01 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:44 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:05:42 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.01 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.01 - Light Supports.ini index 3d03b66..60e45f2 100644 --- a/PrusaSlicer/sla_print/Universal 0.01 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.01 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:08:08 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:05:47 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.01 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.01 - Medium Supports.ini index 9601136..031f5e2 100644 --- a/PrusaSlicer/sla_print/Universal 0.01 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.01 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:52 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:05:57 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.2 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.02 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.02 - Heavy Supports.ini index 4ea1a87..a05af1b 100644 --- a/PrusaSlicer/sla_print/Universal 0.02 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.02 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:51:04 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:01 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.02 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.02 - Light Supports.ini index 96da187..4b31a2f 100644 --- a/PrusaSlicer/sla_print/Universal 0.02 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.02 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:09:11 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:05 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.02 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.02 - Medium Supports.ini index 687dcce..4abdf3e 100644 --- a/PrusaSlicer/sla_print/Universal 0.02 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.02 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:50:13 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:11 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.2 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.03 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.03 - Heavy Supports.ini index 328c178..a742d6e 100644 --- a/PrusaSlicer/sla_print/Universal 0.03 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.03 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:05 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:16 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.03 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.03 - Light Supports.ini index 02c00f7..d4ecc3c 100644 --- a/PrusaSlicer/sla_print/Universal 0.03 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.03 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:09:40 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:20 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.03 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.03 - Medium Supports.ini index 0d6956f..f76de22 100644 --- a/PrusaSlicer/sla_print/Universal 0.03 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.03 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:52:15 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:32 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.2 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.04 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.04 - Heavy Supports.ini index 083e3d8..0b95e6a 100644 --- a/PrusaSlicer/sla_print/Universal 0.04 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.04 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:53:43 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:36 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.04 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.04 - Light Supports.ini index fdb07f3..8cb802c 100644 --- a/PrusaSlicer/sla_print/Universal 0.04 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.04 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:10:03 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:38 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.04 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.04 - Medium Supports.ini index ffcc1ff..f85f2bb 100644 --- a/PrusaSlicer/sla_print/Universal 0.04 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.04 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:53:55 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:41 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.2 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.05 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.05 - Heavy Supports.ini index 8acc0c9..51f9874 100644 --- a/PrusaSlicer/sla_print/Universal 0.05 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.05 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:54:04 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:44 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.05 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.05 - Light Supports.ini index 698b7a2..42c4012 100644 --- a/PrusaSlicer/sla_print/Universal 0.05 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.05 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:10:30 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:47 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.05 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.05 - Medium Supports.ini index 8db1a15..e73f429 100644 --- a/PrusaSlicer/sla_print/Universal 0.05 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.05 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:54:10 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:51 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.2 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.10 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.10 - Heavy Supports.ini index 99826a8..ce007b3 100644 --- a/PrusaSlicer/sla_print/Universal 0.10 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.10 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:55:43 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:55 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.10 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.10 - Light Supports.ini index b3fab88..3d85901 100644 --- a/PrusaSlicer/sla_print/Universal 0.10 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.10 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:11:26 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:06:58 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.3 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.10 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.10 - Medium Supports.ini index 675a61b..86cc2f4 100644 --- a/PrusaSlicer/sla_print/Universal 0.10 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.10 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:55:50 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:07:01 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.3 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.15 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.15 - Heavy Supports.ini index acdf018..87c1089 100644 --- a/PrusaSlicer/sla_print/Universal 0.15 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.15 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:57:42 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:07:03 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.15 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.15 - Light Supports.ini index e1dbed6..befb278 100644 --- a/PrusaSlicer/sla_print/Universal 0.15 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.15 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:12:14 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:07:06 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.3 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.15 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.15 - Medium Supports.ini index 5a6b036..40e5b19 100644 --- a/PrusaSlicer/sla_print/Universal 0.15 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.15 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:57:49 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:07:09 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.3 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.20 - Heavy Supports.ini b/PrusaSlicer/sla_print/Universal 0.20 - Heavy Supports.ini index bd5f3b4..f0600c1 100644 --- a/PrusaSlicer/sla_print/Universal 0.20 - Heavy Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.20 - Heavy Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:58:16 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:07:12 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.5 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.20 - Light Supports.ini b/PrusaSlicer/sla_print/Universal 0.20 - Light Supports.ini index cab31df..f9d51d3 100644 --- a/PrusaSlicer/sla_print/Universal 0.20 - Light Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.20 - Light Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2021-01-07 at 02:12:28 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:07:15 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.3 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/PrusaSlicer/sla_print/Universal 0.20 - Medium Supports.ini b/PrusaSlicer/sla_print/Universal 0.20 - Medium Supports.ini index 4996e9f..92593d0 100644 --- a/PrusaSlicer/sla_print/Universal 0.20 - Medium Supports.ini +++ b/PrusaSlicer/sla_print/Universal 0.20 - Medium Supports.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-11-29 at 22:58:26 UTC +# generated by PrusaSlicer 2.3.0+win64 on 2021-01-13 at 23:07:18 UTC compatible_printers = compatible_printers_condition = default_sla_print_profile = @@ -41,4 +41,5 @@ support_pillar_diameter = 1.3 support_pillar_widening_factor = 0 support_points_density_relative = 100 support_points_minimal_distance = 1 +support_small_pillar_diameter_percent = 60% supports_enable = 1 diff --git a/UVtools.Cmd/Program.cs b/UVtools.Cmd/Program.cs index e19e5ef..8f1a004 100644 --- a/UVtools.Cmd/Program.cs +++ b/UVtools.Cmd/Program.cs @@ -119,7 +119,7 @@ namespace UVtools.Cmd sw.Stop(); Console.WriteLine($", in {sw.ElapsedMilliseconds}ms"); Console.WriteLine("----------------------"); - Console.WriteLine($"Layers: {fileFormat.LayerCount} x {fileFormat.LayerHeight}mm = {fileFormat.TotalHeight}mm"); + Console.WriteLine($"Layers: {fileFormat.LayerCount} x {fileFormat.LayerHeight}mm = {fileFormat.PrintHeight}mm"); Console.WriteLine($"Resolution: {new Size((int) fileFormat.ResolutionX, (int) fileFormat.ResolutionY)}"); Console.WriteLine($"AntiAlias: {fileFormat.ValidateAntiAliasingLevel()}"); diff --git a/UVtools.Core/Extensions/PathExtensions.cs b/UVtools.Core/Extensions/PathExtensions.cs new file mode 100644 index 0000000..846c4e1 --- /dev/null +++ b/UVtools.Core/Extensions/PathExtensions.cs @@ -0,0 +1,23 @@ +/* + * GNU AFFERO GENERAL PUBLIC LICENSE + * Version 3, 19 November 2007 + * Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + * Everyone is permitted to copy and distribute verbatim copies + * of this license document, but changing it is not allowed. + */ +using System; +using System.IO; + +namespace UVtools.Core.Extensions +{ + public static class PathExtensions + { + public static string GetFileNameStripAllExtensions(string path) + { + path = Path.GetFileName(path); + if(string.IsNullOrEmpty(path)) return string.Empty; + var splitPath = path.Split('.', 2, StringSplitOptions.TrimEntries); + return splitPath.Length == 0 ? string.Empty : splitPath[0]; + } + } +} diff --git a/UVtools.Core/FileFormats/CWSFile.cs b/UVtools.Core/FileFormats/CWSFile.cs index 6ac5a7c..0578202 100644 --- a/UVtools.Core/FileFormats/CWSFile.cs +++ b/UVtools.Core/FileFormats/CWSFile.cs @@ -304,14 +304,9 @@ namespace UVtools.Core.FileFormats public PrinterType Printer { get; set; } = PrinterType.Unknown; public override FileExtension[] FileExtensions { get; } = { - new FileExtension("cws", "NovaMaker CWS"), - new FileExtension("rgb.cws", "NovaMaker Bene4 Mono / Elfin2 Mono SE (CWS)"), - new FileExtension("xml.cws", "Creation Workshop X (CWS)"), - }; - - public override Type[] ConvertToFormats { get; } = - { - typeof(UVJFile) + new ("cws", "NovaMaker CWS"), + new ("rgb.cws", "NovaMaker Bene4 Mono / Elfin2 Mono SE (CWS)"), + new ("xml.cws", "Creation Workshop X (CWS)"), }; public override PrintParameterModifier[] PrintParameterModifiers { get; } = { @@ -331,7 +326,6 @@ namespace UVtools.Core.FileFormats public override PrintParameterModifier[] PrintParameterPerLayerModifiers { get; } = { PrintParameterModifier.ExposureSeconds, - //PrintParameterModifier.LayerOffTime, PrintParameterModifier.LiftHeight, PrintParameterModifier.LiftSpeed, PrintParameterModifier.RetractSpeed, @@ -371,7 +365,7 @@ namespace UVtools.Core.FileFormats get => OutputSettings.PlatformXSize; set { - OutputSettings.PlatformXSize = value; + OutputSettings.PlatformXSize = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -381,19 +375,49 @@ namespace UVtools.Core.FileFormats get => OutputSettings.PlatformYSize; set { - OutputSettings.PlatformYSize = value; + OutputSettings.PlatformYSize = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float MaxPrintHeight + { + get => OutputSettings.PlatformZSize; + set + { + OutputSettings.PlatformZSize = (float) Math.Round(value, 2); RaisePropertyChanged(); } } - public override byte AntiAliasing => (byte) OutputSettings.AntiAliasingValue; + public override bool MirrorDisplay + { + get => OutputSettings.FlipX; + set + { + OutputSettings.FlipX = value; + OutputSettings.FlipY = false; + RaisePropertyChanged(); + } + } + + public override byte AntiAliasing + { + get => (byte) OutputSettings.AntiAliasingValue; + set + { + OutputSettings.AntiAliasingValue = value.Clamp(1, 16); + OutputSettings.AntiAliasing = OutputSettings.AntiAliasingValue > 1; + RaisePropertyChanged(); + } + } public override float LayerHeight { get => SliceSettings.Thickness > 0 ? SliceSettings.Thickness : OutputSettings.LayerThickness; set { - OutputSettings.LayerThickness = SliceSettings.Thickness = value; + OutputSettings.LayerThickness = SliceSettings.Thickness = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -446,7 +470,7 @@ namespace UVtools.Core.FileFormats get => OutputSettings.ZBottomLiftFeedRate; set { - OutputSettings.ZBottomLiftFeedRate = value; + OutputSettings.ZBottomLiftFeedRate = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -457,7 +481,7 @@ namespace UVtools.Core.FileFormats set { OutputSettings.LiftDistance = - SliceSettings.LiftDistance = value; + SliceSettings.LiftDistance = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -469,7 +493,7 @@ namespace UVtools.Core.FileFormats { OutputSettings.ZLiftFeedRate = SliceSettings.LiftUpSpeed = - SliceSettings.LiftDownSpeed = value; + SliceSettings.LiftDownSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -479,7 +503,7 @@ namespace UVtools.Core.FileFormats get => OutputSettings.ZLiftRetractRate; set { - OutputSettings.ZLiftRetractRate = value; + OutputSettings.ZLiftRetractRate = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -505,16 +529,6 @@ namespace UVtools.Core.FileFormats } - /*public override float PrintTime => 0; - - public override float UsedMaterial => 0; - - public override float MaterialCost => 0; - - public override string MaterialName => string.Empty; - - public override string MachineName => "Unknown";*/ - public override object[] Configs => Printer == PrinterType.Wanhao ? new object[] { SliceBuildConfig, OutputSettings } : new object[] { SliceSettings, OutputSettings}; #endregion @@ -528,6 +542,8 @@ namespace UVtools.Core.FileFormats public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); //var filename = fileFullPath.EndsWith(TemporaryFileAppend) ? Path.GetFileNameWithoutExtension(Path.GetFileNameWithoutExtension(fileFullPath)) : Path.GetFileNameWithoutExtension(fileFullPath); @@ -822,7 +838,7 @@ namespace UVtools.Core.FileFormats float liftHeight = 0; float liftSpeed = GetInitialLayerValueOrNormal(layerIndex, BottomLiftSpeed, LiftSpeed); float retractSpeed = RetractSpeed; - float lightOffDelay = GetInitialLayerValueOrNormal(layerIndex, BottomLayerOffTime, LayerOffTime); + float lightOffDelay = GetInitialLayerValueOrNormal(layerIndex, BottomLightOffDelay, LightOffDelay); byte pwm = GetInitialLayerValueOrNormal(layerIndex, BottomLightPWM, LightPWM); ; float exposureTime = GetInitialLayerValueOrNormal(layerIndex, BottomExposureTime, ExposureTime); @@ -926,7 +942,7 @@ namespace UVtools.Core.FileFormats LiftHeight = liftHeight, LiftSpeed = liftSpeed, RetractSpeed = retractSpeed, - LayerOffTime = lightOffDelay, + LightOffDelay = lightOffDelay, LightPWM = pwm, }; } @@ -941,7 +957,7 @@ namespace UVtools.Core.FileFormats LiftHeight = liftHeight, LiftSpeed = liftSpeed, RetractSpeed = retractSpeed, - LayerOffTime = lightOffDelay, + LightOffDelay = lightOffDelay, LightPWM = pwm, }; } @@ -1118,64 +1134,6 @@ namespace UVtools.Core.FileFormats //Decode(FileFullPath, progress); } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (to == typeof(UVJFile)) - { - UVJFile defaultFormat = (UVJFile)FindByType(typeof(UVJFile)); - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - X = OutputSettings.PlatformXSize, - Y = OutputSettings.PlatformYSize, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = SliceSettings.LiftDistance, - LiftSpeed = SliceSettings.LiftUpSpeed, - LightOnTime = BottomExposureTime, - //LightOffTime = SliceSettings.BottomLightOffDelay, - LightPWM = OutputSettings.BottomLightPWM, - RetractSpeed = OutputSettings.ZBottomLiftFeedRate, - Count = BottomLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = SliceSettings.LiftDistance, - LiftSpeed = SliceSettings.LiftUpSpeed, - LightOnTime = BottomExposureTime, - //LightOffTime = SliceSettings.BottomLightOffDelay, - LightPWM = OutputSettings.BottomLightPWM, - RetractSpeed = SliceSettings.LiftDownSpeed, - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } - #endregion } } diff --git a/UVtools.Core/FileFormats/ChituboxFile.cs b/UVtools.Core/FileFormats/ChituboxFile.cs index 276b59b..a9f6faa 100644 --- a/UVtools.Core/FileFormats/ChituboxFile.cs +++ b/UVtools.Core/FileFormats/ChituboxFile.cs @@ -73,7 +73,7 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets the height of the model described by this file, in millimeters. /// </summary> - [FieldOrder(7)] public float OverallHeightMilimeter { get; set; } + [FieldOrder(7)] public float TotalHeightMilimeter { get; set; } /// <summary> /// Gets the layer height setting used at slicing, in millimeters. Actual height used by the machine is in the layer table. @@ -93,7 +93,7 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets the light off time setting used at slicing, for normal layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. /// </summary> - [FieldOrder(11)] public float LayerOffTime { get; set; } = 1; + [FieldOrder(11)] public float LightOffDelay { get; set; } = 1; /// <summary> /// Gets number of layers configured as "bottom." Note that this field appears in both the file header and ExtConfig.. @@ -187,7 +187,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(Magic)}: {Magic}, {nameof(Version)}: {Version}, {nameof(BedSizeX)}: {BedSizeX}, {nameof(BedSizeY)}: {BedSizeY}, {nameof(BedSizeZ)}: {BedSizeZ}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(OverallHeightMilimeter)}: {OverallHeightMilimeter}, {nameof(LayerHeightMilimeter)}: {LayerHeightMilimeter}, {nameof(LayerExposureSeconds)}: {LayerExposureSeconds}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(LayerOffTime)}: {LayerOffTime}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(PreviewLargeOffsetAddress)}: {PreviewLargeOffsetAddress}, {nameof(LayersDefinitionOffsetAddress)}: {LayersDefinitionOffsetAddress}, {nameof(LayerCount)}: {LayerCount}, {nameof(PreviewSmallOffsetAddress)}: {PreviewSmallOffsetAddress}, {nameof(PrintTime)}: {PrintTime}, {nameof(ProjectorType)}: {ProjectorType}, {nameof(PrintParametersOffsetAddress)}: {PrintParametersOffsetAddress}, {nameof(PrintParametersSize)}: {PrintParametersSize}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(LightPWM)}: {LightPWM}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(EncryptionKey)}: {EncryptionKey}, {nameof(SlicerOffset)}: {SlicerOffset}, {nameof(SlicerSize)}: {SlicerSize}"; + return $"{nameof(Magic)}: {Magic}, {nameof(Version)}: {Version}, {nameof(BedSizeX)}: {BedSizeX}, {nameof(BedSizeY)}: {BedSizeY}, {nameof(BedSizeZ)}: {BedSizeZ}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(TotalHeightMilimeter)}: {TotalHeightMilimeter}, {nameof(LayerHeightMilimeter)}: {LayerHeightMilimeter}, {nameof(LayerExposureSeconds)}: {LayerExposureSeconds}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(PreviewLargeOffsetAddress)}: {PreviewLargeOffsetAddress}, {nameof(LayersDefinitionOffsetAddress)}: {LayersDefinitionOffsetAddress}, {nameof(LayerCount)}: {LayerCount}, {nameof(PreviewSmallOffsetAddress)}: {PreviewSmallOffsetAddress}, {nameof(PrintTime)}: {PrintTime}, {nameof(ProjectorType)}: {ProjectorType}, {nameof(PrintParametersOffsetAddress)}: {PrintParametersOffsetAddress}, {nameof(PrintParametersSize)}: {PrintParametersSize}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(LightPWM)}: {LightPWM}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(EncryptionKey)}: {EncryptionKey}, {nameof(SlicerOffset)}: {SlicerOffset}, {nameof(SlicerSize)}: {SlicerSize}"; } } #endregion @@ -265,6 +265,7 @@ namespace UVtools.Core.FileFormats public class SlicerInfo { + private string _machineName; [FieldOrder(0)] public uint Padding1 { get; set; } [FieldOrder(1)] public uint Padding2 { get; set; } [FieldOrder(2)] public uint Padding3 { get; set; } @@ -317,8 +318,18 @@ namespace UVtools.Core.FileFormats /// The character encoding is currently unknown — all observed files in the wild use 7-bit ASCII characters only. /// Note that the machine type here is set in the software profile, and is not the name the user assigned to the machine. /// </summary> - [FieldOrder(19)] [FieldLength(nameof(MachineNameSize))] - public string MachineName { get; set; } + [FieldOrder(19)] + [FieldLength(nameof(MachineNameSize))] + public string MachineName + { + get => _machineName; + set + { + _machineName = value; + MachineNameSize = string.IsNullOrEmpty(_machineName) ? 0 : (uint)_machineName.Length; + } + + } public override string ToString() { @@ -482,7 +493,7 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets how long to keep the light off after exposing this layer, in seconds. /// </summary> - [FieldOrder(2)] public float LayerOffSeconds { get; set; } + [FieldOrder(2)] public float LightOffSeconds { get; set; } /// <summary> /// Gets the layer image offset to encoded layer data, and its length in bytes. @@ -523,7 +534,7 @@ namespace UVtools.Core.FileFormats { LayerPositionZ = parent[layerIndex].PositionZ; LayerExposure = parent[layerIndex].ExposureTime; - LayerOffSeconds = parent[layerIndex].LayerOffTime; + LightOffSeconds = parent[layerIndex].LightOffDelay; } @@ -831,7 +842,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(LayerPositionZ)}: {LayerPositionZ}, {nameof(LayerExposure)}: {LayerExposure}, {nameof(LayerOffSeconds)}: {LayerOffSeconds}, {nameof(DataAddress)}: {DataAddress}, {nameof(DataSize)}: {DataSize}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(Unknown3)}: {Unknown3}, {nameof(Unknown4)}: {Unknown4}"; + return $"{nameof(LayerPositionZ)}: {LayerPositionZ}, {nameof(LayerExposure)}: {LayerExposure}, {nameof(LightOffSeconds)}: {LightOffSeconds}, {nameof(DataAddress)}: {DataAddress}, {nameof(DataSize)}: {DataSize}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(Unknown3)}: {Unknown3}, {nameof(Unknown4)}: {Unknown4}"; } @@ -962,26 +973,14 @@ namespace UVtools.Core.FileFormats new("photon", "Chitubox Photon"), }; - public override Type[] ConvertToFormats { get; } = - { - typeof(ChituboxFile), - typeof(ChituboxZipFile), - typeof(PHZFile), - typeof(FDGFile), - typeof(PhotonWorkshopFile), - typeof(ZCodexFile), - typeof(CWSFile), - typeof(UVJFile), - }; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.BottomLiftHeight, PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -1003,7 +1002,7 @@ namespace UVtools.Core.FileFormats PrintParameterModifier.LiftHeight, PrintParameterModifier.LiftSpeed, PrintParameterModifier.RetractSpeed, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.LightPWM, }; } @@ -1013,7 +1012,7 @@ namespace UVtools.Core.FileFormats return new[] { PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.LightOffDelay, }; } @@ -1052,7 +1051,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BedSizeX; set { - HeaderSettings.BedSizeX = value; + HeaderSettings.BedSizeX = (float) Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1062,19 +1061,65 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BedSizeY; set { - HeaderSettings.BedSizeY = value; + HeaderSettings.BedSizeY = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override byte AntiAliasing => (byte) (IsCbtFile ? SlicerInfoSettings.AntiAliasLevel : HeaderSettings.AntiAliasLevel); + public override float MaxPrintHeight + { + get => HeaderSettings.BedSizeZ > 0 ? HeaderSettings.BedSizeZ : base.MaxPrintHeight; + set + { + HeaderSettings.BedSizeZ = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override bool MirrorDisplay + { + get => HeaderSettings.ProjectorType > 0; + set + { + HeaderSettings.ProjectorType = value ? 1 : 0; + RaisePropertyChanged(); + } + } + + public override byte AntiAliasing + { + get => (byte) (IsCbtFile ? SlicerInfoSettings.AntiAliasLevel : HeaderSettings.AntiAliasLevel); + set + { + if (IsCbtFile) + { + SlicerInfoSettings.AntiAliasLevel = value; + } + else + { + HeaderSettings.AntiAliasLevel = value.Clamp(1, 16); + ValidateAntiAliasingLevel(); + } + RaisePropertyChanged(); + } + } public override float LayerHeight { get => HeaderSettings.LayerHeightMilimeter; set { - HeaderSettings.LayerHeightMilimeter = value; + HeaderSettings.LayerHeightMilimeter = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float PrintHeight + { + get => base.PrintHeight; + set + { + HeaderSettings.TotalHeightMilimeter = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1086,7 +1131,6 @@ namespace UVtools.Core.FileFormats HeaderSettings.LayerCount = LayerCount; RaisePropertyChanged(); RaisePropertyChanged(nameof(NormalLayerCount)); - HeaderSettings.OverallHeightMilimeter = TotalHeight; } } @@ -1105,7 +1149,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomExposureSeconds; set { - HeaderSettings.BottomExposureSeconds = value; + HeaderSettings.BottomExposureSeconds = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1115,27 +1159,27 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LayerExposureSeconds; set { - HeaderSettings.LayerExposureSeconds = value; + HeaderSettings.LayerExposureSeconds = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float BottomLayerOffTime + public override float BottomLightOffDelay { get => PrintParametersSettings.BottomLightOffDelay; set { - PrintParametersSettings.BottomLightOffDelay = value; + PrintParametersSettings.BottomLightOffDelay = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float LayerOffTime + public override float LightOffDelay { get => PrintParametersSettings.LightOffDelay; set { - HeaderSettings.LayerOffTime = PrintParametersSettings.LightOffDelay = value; + HeaderSettings.LightOffDelay = PrintParametersSettings.LightOffDelay = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1145,7 +1189,7 @@ namespace UVtools.Core.FileFormats get => PrintParametersSettings.BottomLiftHeight; set { - PrintParametersSettings.BottomLiftHeight = value; + PrintParametersSettings.BottomLiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1155,7 +1199,7 @@ namespace UVtools.Core.FileFormats get => PrintParametersSettings.LiftHeight; set { - PrintParametersSettings.LiftHeight = value; + PrintParametersSettings.LiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1165,7 +1209,7 @@ namespace UVtools.Core.FileFormats get => PrintParametersSettings.BottomLiftSpeed; set { - PrintParametersSettings.BottomLiftSpeed = value; + PrintParametersSettings.BottomLiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1175,7 +1219,7 @@ namespace UVtools.Core.FileFormats get => PrintParametersSettings.LiftSpeed; set { - PrintParametersSettings.LiftSpeed = value; + PrintParametersSettings.LiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1185,7 +1229,7 @@ namespace UVtools.Core.FileFormats get => PrintParametersSettings.RetractSpeed; set { - PrintParametersSettings.RetractSpeed = value; + PrintParametersSettings.RetractSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -1220,7 +1264,7 @@ namespace UVtools.Core.FileFormats } } - public override float UsedMaterial + public override float MaterialMilliliters { get => (float) Math.Round(PrintParametersSettings.VolumeMl, 2); set @@ -1230,6 +1274,16 @@ namespace UVtools.Core.FileFormats } } + public override float MaterialGrams + { + get => PrintParametersSettings.WeightG; + set + { + PrintParametersSettings.WeightG = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + public override float MaterialCost { get => (float) Math.Round(PrintParametersSettings.CostDollars, 2); @@ -1280,6 +1334,8 @@ namespace UVtools.Core.FileFormats public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); LayersHash.Clear(); @@ -1598,7 +1654,7 @@ namespace UVtools.Core.FileFormats { PositionZ = LayerDefinitions[0, layerIndex].LayerPositionZ, ExposureTime = LayerDefinitions[0, layerIndex].LayerExposure, - LayerOffTime = LayerDefinitions[0, layerIndex].LayerOffSeconds, + LightOffDelay = LayerDefinitions[0, layerIndex].LightOffSeconds, }; if (LayerDefinitionsEx is not null) @@ -1682,429 +1738,6 @@ namespace UVtools.Core.FileFormats } } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (to == typeof(ChituboxFile)) - { - if (Path.GetExtension(FileFullPath).Equals(Path.GetExtension(fileFullPath))) - { - return false; - } - ChituboxFile file = new ChituboxFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - ProjectorType = HeaderSettings.ProjectorType, - LayerCount = LayerCount, - AntiAliasLevel = ValidateAntiAliasingLevel(), - BottomLightPWM = (byte) HeaderSettings.BottomLightPWM, - LightPWM = (byte) HeaderSettings.LightPWM, - LayerOffTime = HeaderSettings.LayerOffTime, - PrintTime = HeaderSettings.PrintTime, - BottomExposureSeconds = HeaderSettings.BottomExposureSeconds, - BottomLayersCount = HeaderSettings.BottomLayersCount, - //EncryptionKey = HeaderSettings.EncryptionKey, - LayerExposureSeconds = HeaderSettings.LayerExposureSeconds, - LayerHeightMilimeter = HeaderSettings.LayerHeightMilimeter, - OverallHeightMilimeter = HeaderSettings.OverallHeightMilimeter, - }, - PrintParametersSettings = - { - LiftSpeed = PrintParametersSettings.LiftSpeed, - LiftHeight = PrintParametersSettings.LiftHeight, - BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed, - RetractSpeed = PrintParametersSettings.RetractSpeed, - BottomLightOffDelay = PrintParametersSettings.BottomLightOffDelay, - LightOffDelay = PrintParametersSettings.BottomLightOffDelay, - BottomLayerCount = PrintParametersSettings.BottomLayerCount, - VolumeMl = PrintParametersSettings.VolumeMl, - BottomLiftHeight = PrintParametersSettings.BottomLiftHeight, - CostDollars = PrintParametersSettings.CostDollars, - WeightG = PrintParametersSettings.WeightG - }, - SlicerInfoSettings = - { - AntiAliasLevel = SlicerInfoSettings.AntiAliasLevel, - MachineName = SlicerInfoSettings.MachineName, - //EncryptionMode = SlicerInfoSettings.EncryptionMode, - MachineNameSize = SlicerInfoSettings.MachineNameSize, - }, - Thumbnails = Thumbnails, - }; - - //file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ChituboxZipFile)) - { - ChituboxZipFile file = new ChituboxZipFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Filename = Path.GetFileName(FileFullPath), - - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - MachineX = HeaderSettings.BedSizeX, - MachineY = HeaderSettings.BedSizeY, - MachineZ = HeaderSettings.BedSizeZ, - MachineType = MachineName, - ProjectType = HeaderSettings.ProjectorType == 0 ? "Normal" : "LCD_mirror", - - Resin = MaterialName, - Price = MaterialCost, - Weight = PrintParametersSettings.WeightG, - Volume = UsedMaterial, - Mirror = (byte) (HeaderSettings.ProjectorType == 0 ? 0 : 1), - - - BottomLiftHeight = PrintParametersSettings.BottomLiftHeight, - LiftHeight = PrintParametersSettings.LiftHeight, - BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed, - LiftSpeed = PrintParametersSettings.LiftSpeed, - RetractSpeed = PrintParametersSettings.RetractSpeed, - BottomLayCount = BottomLayerCount, - BottomLayerCount = BottomLayerCount, - BottomLightOffTime = PrintParametersSettings.BottomLightOffDelay, - LightOffTime = PrintParametersSettings.LightOffDelay, - BottomLayExposureTime = BottomExposureTime, - BottomLayerExposureTime = BottomExposureTime, - LayerExposureTime = ExposureTime, - LayerHeight = LayerHeight, - LayerCount = LayerCount, - AntiAliasing = ValidateAntiAliasingLevel(), - BottomLightPWM = (byte) HeaderSettings.BottomLightPWM, - LightPWM = (byte) HeaderSettings.LightPWM, - - EstimatedPrintTime = PrintTime - }, - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PhotonWorkshopFile)) - { - PhotonWorkshopFile file = new PhotonWorkshopFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = ExposureTime, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed / 60, - RetractSpeed = RetractSpeed / 60, - LayerOffTime = HeaderSettings.LayerOffTime, - BottomLayersCount = BottomLayerCount, - BottomExposureSeconds = BottomExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = PrintParametersSettings.WeightG, - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PHZFile)) - { - PHZFile file = new PHZFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Version = 2, - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LayerOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = HeaderSettings.PrintTime, - ProjectorType = HeaderSettings.ProjectorType, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = PrintParametersSettings.BottomLiftHeight, - BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed, - BottomLightOffDelay = PrintParametersSettings.BottomLightOffDelay, - CostDollars = MaterialCost, - LiftHeight = PrintParametersSettings.LiftHeight, - LiftSpeed = PrintParametersSettings.LiftSpeed, - RetractSpeed = PrintParametersSettings.RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = PrintParametersSettings.WeightG, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(FDGFile)) - { - FDGFile file = new FDGFile - { - LayerManager = LayerManager, - HeaderSettings = - { - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LayerOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = HeaderSettings.PrintTime, - ProjectorType = HeaderSettings.ProjectorType, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = PrintParametersSettings.BottomLiftHeight, - BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed, - BottomLightOffDelay = PrintParametersSettings.BottomLightOffDelay, - CostDollars = MaterialCost, - LiftHeight = PrintParametersSettings.LiftHeight, - LiftSpeed = PrintParametersSettings.LiftSpeed, - RetractSpeed = PrintParametersSettings.RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = PrintParametersSettings.WeightG, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = BottomLayerCount, - BottomLayersTime = (uint)(BottomExposureTime * 1000), - LayerTime = (uint)(ExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = BottomLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(ExposureTime * 1000), - BottomLayerExposureTime = (uint)(BottomExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = (byte)(ValidateAntiAliasingLevel() > 1 ? 1 : 0), - CrossSupportEnabled = 1, - ExposureOffTime = (uint) HeaderSettings.LayerOffTime, - HollowEnabled = 0, - HollowThickness = 0, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount - 1, - ModelLiftEnabled = 0, - ModelLiftHeight = 0, - RaftEnabled = 0, - RaftHeight = 0, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = 0, - YCorrection = 0, - ZLiftDistance = PrintParametersSettings.LiftHeight, - ZLiftFeedRate = PrintParametersSettings.LiftSpeed, - ZLiftRetractRate = PrintParametersSettings.RetractSpeed, - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile { LayerManager = LayerManager }; - - file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = (float)Math.Round(ResolutionX / HeaderSettings.BedSizeX, 3); - file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float)Math.Round(ResolutionY / HeaderSettings.BedSizeY, 3); - file.ResolutionX = (ushort)ResolutionX; - file.ResolutionY = (ushort)ResolutionY; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = BottomLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint)ExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint)BottomExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = (uint)(PrintParametersSettings.LightOffDelay * 1000); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = LiftHeight; - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = LiftSpeed; - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = RetractSpeed; - file.SliceSettings.LiftWhenFinished = defaultFormat.SliceSettings.LiftWhenFinished; - - file.OutputSettings.BlankingLayerTime = (uint) (PrintParametersSettings.LightOffDelay * 1000); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - file.OutputSettings.FlipX = HeaderSettings.ProjectorType != 0; - file.OutputSettings.FlipY = file.OutputSettings.FlipX; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - /*file.Printer = MachineName.Contains("Bene4 Mono") || - FileFullPath.Contains("bene4_mono") - ? CWSFile.PrinterType.BeneMono : CWSFile.PrinterType.Unknown;*/ - - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(UVJFile)) - { - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - X = HeaderSettings.BedSizeX, - Y = HeaderSettings.BedSizeY, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = PrintParametersSettings.BottomLiftHeight, - LiftSpeed = PrintParametersSettings.BottomLiftSpeed, - LightOnTime = BottomExposureTime, - LightOffTime = PrintParametersSettings.BottomLightOffDelay, - LightPWM = (byte) HeaderSettings.BottomLightPWM, - RetractSpeed = PrintParametersSettings.RetractSpeed, - Count = BottomLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = PrintParametersSettings.LiftHeight, - LiftSpeed = PrintParametersSettings.LiftSpeed, - LightOnTime = ExposureTime, - LightOffTime = PrintParametersSettings.LightOffDelay, - LightPWM = (byte) HeaderSettings.LightPWM, - RetractSpeed = PrintParametersSettings.RetractSpeed, - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } - #endregion } } diff --git a/UVtools.Core/FileFormats/ChituboxZipFile.cs b/UVtools.Core/FileFormats/ChituboxZipFile.cs index ba0527c..d9cf337 100644 --- a/UVtools.Core/FileFormats/ChituboxZipFile.cs +++ b/UVtools.Core/FileFormats/ChituboxZipFile.cs @@ -7,7 +7,6 @@ */ using System; -using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Globalization; @@ -56,7 +55,7 @@ namespace UVtools.Core.FileFormats [DisplayName("estimatedPrintTime")] public float EstimatedPrintTime { get; set; } [DisplayName("volume")] public float Volume { get; set; } [DisplayName("resin")] public string Resin { get; set; } = "Normal"; - [DisplayName("weight")] public float Weight { get; set; } + [DisplayName("weight")] public float WeightG { get; set; } [DisplayName("price")] public float Price { get; set; } [DisplayName("layerHeight")] public float LayerHeight { get; set; } [DisplayName("resolutionX")] public uint ResolutionX { get; set; } @@ -93,17 +92,7 @@ namespace UVtools.Core.FileFormats public override FileFormatType FileType => FileFormatType.Archive; public override FileExtension[] FileExtensions { get; } = { - new FileExtension("zip", "Chitubox Zip") - }; - - public override Type[] ConvertToFormats { get; } = { - typeof(ChituboxFile), - typeof(PHZFile), - typeof(FDGFile), - typeof(PhotonWorkshopFile), - typeof(CWSFile), - typeof(ZCodexFile), - typeof(UVJFile) + new("zip", "Chitubox Zip") }; public override PrintParameterModifier[] PrintParameterModifiers { get; } = { @@ -111,8 +100,8 @@ namespace UVtools.Core.FileFormats PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.BottomLiftHeight, PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -125,7 +114,7 @@ namespace UVtools.Core.FileFormats public override PrintParameterModifier[] PrintParameterPerLayerModifiers { get; } = { PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.LiftHeight, PrintParameterModifier.LiftSpeed, PrintParameterModifier.RetractSpeed, @@ -171,19 +160,48 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.MachineY; set { - HeaderSettings.MachineX = value; + HeaderSettings.MachineY = value; RaisePropertyChanged(); } } - public override byte AntiAliasing => HeaderSettings.AntiAliasing; + public override float MaxPrintHeight + { + get => HeaderSettings.MachineZ > 0 ? HeaderSettings.MachineZ : base.MaxPrintHeight; + set + { + HeaderSettings.MachineZ = value; + RaisePropertyChanged(); + } + } + + public override bool MirrorDisplay + { + get => HeaderSettings.Mirror > 0; + set + { + HeaderSettings.ProjectType = value ? "LCD_mirror" : "Normal"; + HeaderSettings.Mirror = value ? 1 : 0; + RaisePropertyChanged(); + } + } + + public override byte AntiAliasing + { + get => HeaderSettings.AntiAliasing; + set + { + HeaderSettings.AntiAliasing = value.Clamp(1, 16); + RaisePropertyChanged(); + } + } public override float LayerHeight { get => HeaderSettings.LayerHeight; set { - HeaderSettings.LayerHeight = value; + HeaderSettings.LayerHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -213,7 +231,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomLayerExposureTime; set { - HeaderSettings.BottomLayerExposureTime = HeaderSettings.BottomLayExposureTime = value; + HeaderSettings.BottomLayerExposureTime = HeaderSettings.BottomLayExposureTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -223,27 +241,27 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LayerExposureTime; set { - HeaderSettings.LayerExposureTime = value; + HeaderSettings.LayerExposureTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float BottomLayerOffTime + public override float BottomLightOffDelay { get => HeaderSettings.BottomLightOffTime; set { - HeaderSettings.BottomLightOffTime = value; + HeaderSettings.BottomLightOffTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float LayerOffTime + public override float LightOffDelay { get => HeaderSettings.LightOffTime; set { - HeaderSettings.LightOffTime = value; + HeaderSettings.LightOffTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -253,7 +271,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomLiftHeight; set { - HeaderSettings.BottomLiftHeight = value; + HeaderSettings.BottomLiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -263,7 +281,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LiftHeight; set { - HeaderSettings.LiftHeight = value; + HeaderSettings.LiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -273,7 +291,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomLiftSpeed; set { - HeaderSettings.BottomLiftSpeed = value; + HeaderSettings.BottomLiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -283,7 +301,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LiftSpeed; set { - HeaderSettings.LiftSpeed = value; + HeaderSettings.LiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -293,7 +311,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.RetractSpeed; set { - HeaderSettings.RetractSpeed = value; + HeaderSettings.RetractSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -321,15 +339,25 @@ namespace UVtools.Core.FileFormats public override float PrintTime { get => HeaderSettings.EstimatedPrintTime; - set => base.PrintTime = HeaderSettings.EstimatedPrintTime = value; + set => base.PrintTime = HeaderSettings.EstimatedPrintTime = (float)Math.Round(value, 2); } - public override float UsedMaterial + public override float MaterialMilliliters { - get => HeaderSettings.Weight; + get => HeaderSettings.Volume; set { - HeaderSettings.Weight = value; + HeaderSettings.Volume = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float MaterialGrams + { + get => HeaderSettings.WeightG; + set + { + HeaderSettings.WeightG = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -339,7 +367,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.Price; set { - HeaderSettings.Price = value; + HeaderSettings.Price = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -367,13 +395,15 @@ namespace UVtools.Core.FileFormats public override object[] Configs => new object[] { HeaderSettings }; - public bool IsPHZZip = false; + public bool IsPHZZip; #endregion #region Methods public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); using (ZipArchive outputFile = ZipFile.Open(fileFullPath, ZipArchiveMode.Create)) { @@ -577,7 +607,7 @@ namespace UVtools.Core.FileFormats } else // Only one match, meaning light off delay is not present { - lightOffDelay = GetInitialLayerValueOrNormal(layerIndex, BottomLayerOffTime, LayerOffTime); + lightOffDelay = GetInitialLayerValueOrNormal(layerIndex, BottomLightOffDelay, LightOffDelay); } } @@ -588,7 +618,7 @@ namespace UVtools.Core.FileFormats LiftHeight = liftHeight, LiftSpeed = liftSpeed, RetractSpeed = retractSpeed, - LayerOffTime = lightOffDelay, + LightOffDelay = lightOffDelay, LightPWM = pwm, }; progress++; @@ -654,7 +684,7 @@ namespace UVtools.Core.FileFormats var liftZHeight = Math.Round(liftHeight + layer.PositionZ, 2); var liftSpeed = layer.LiftSpeed; var retractSpeed = layer.RetractSpeed; - var lightOffDelay = layer.LayerOffTime * 1000; + var lightOffDelay = layer.LightOffDelay * 1000; var pwmValue = layer.LightPWM; GCode.AppendLine($";LAYER_START:{layerIndex}"); @@ -728,366 +758,6 @@ namespace UVtools.Core.FileFormats //Decode(FileFullPath, progress); } - - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (to == typeof(ChituboxFile)) - { - ChituboxFile file = new ChituboxFile - { - - LayerManager = LayerManager, - HeaderSettings - = - { - BedSizeX = HeaderSettings.MachineX, - BedSizeY = HeaderSettings.MachineY, - BedSizeZ = HeaderSettings.MachineZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LightOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = (uint) HeaderSettings.EstimatedPrintTime, - ProjectorType = HeaderSettings.Mirror, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - AntiAliasLevel = ValidateAntiAliasingLevel() - }, - PrintParametersSettings = - { - BottomLayerCount = BottomLayerCount, - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - BottomLightOffDelay = HeaderSettings.BottomLightOffTime, - CostDollars = MaterialCost, - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOffDelay = HeaderSettings.LightOffTime, - RetractSpeed = HeaderSettings.RetractSpeed, - VolumeMl = UsedMaterial, - WeightG = HeaderSettings.Weight - }, - SlicerInfoSettings = { MachineName = MachineName, MachineNameSize = (uint)MachineName.Length } - }; - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PHZFile)) - { - PHZFile file = new PHZFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Version = 2, - BedSizeX = HeaderSettings.MachineX, - BedSizeY = HeaderSettings.MachineY, - BedSizeZ = HeaderSettings.MachineZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LightOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = (uint) HeaderSettings.EstimatedPrintTime, - ProjectorType = HeaderSettings.Mirror, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - BottomLightOffDelay = HeaderSettings.BottomLightOffTime, - CostDollars = MaterialCost, - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - RetractSpeed = HeaderSettings.RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = HeaderSettings.Weight, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(FDGFile)) - { - FDGFile file = new FDGFile - { - LayerManager = LayerManager, - HeaderSettings = - { - BedSizeX = HeaderSettings.MachineX, - BedSizeY = HeaderSettings.MachineY, - BedSizeZ = HeaderSettings.MachineZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LightOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = (uint) HeaderSettings.EstimatedPrintTime, - ProjectorType = HeaderSettings.Mirror, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - BottomLightOffDelay = HeaderSettings.BottomLightOffTime, - CostDollars = MaterialCost, - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - RetractSpeed = HeaderSettings.RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = HeaderSettings.Weight, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PhotonWorkshopFile)) - { - PhotonWorkshopFile file = new PhotonWorkshopFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = ExposureTime, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed / 60, - RetractSpeed = RetractSpeed / 60, - LayerOffTime = HeaderSettings.LightOffTime, - BottomLayersCount = BottomLayerCount, - BottomExposureSeconds = BottomExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = HeaderSettings.Weight, - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = BottomLayerCount, - BottomLayersTime = (uint)(BottomExposureTime * 1000), - LayerTime = (uint)(ExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = BottomLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(ExposureTime * 1000), - BottomLayerExposureTime = (uint)(BottomExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = (byte)(AntiAliasing > 1 ? 1 : 0), - CrossSupportEnabled = 1, - ExposureOffTime = (uint)HeaderSettings.LightOffTime, - HollowEnabled = 0, - HollowThickness = 0, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount - 1, - ModelLiftEnabled = 0, - ModelLiftHeight = 0, - RaftEnabled = 0, - RaftHeight = 0, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = 0, - YCorrection = 0, - ZLiftDistance = HeaderSettings.LiftHeight, - ZLiftFeedRate = HeaderSettings.LiftSpeed, - ZLiftRetractRate = HeaderSettings.RetractSpeed, - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile { LayerManager = LayerManager }; - - file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = (float)Math.Round(ResolutionX / HeaderSettings.MachineX, 3); - file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float)Math.Round(ResolutionY / HeaderSettings.MachineY, 3); - file.ResolutionX = (ushort)ResolutionX; - file.ResolutionY = (ushort)ResolutionY; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = BottomLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint)ExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint)BottomExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = (uint)(HeaderSettings.LightOffTime * 1000); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = LiftHeight; - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = LiftSpeed; - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = RetractSpeed; - file.SliceSettings.LiftWhenFinished = defaultFormat.SliceSettings.LiftWhenFinished; - - file.OutputSettings.BlankingLayerTime = (uint)(HeaderSettings.LightOffTime * 1000); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - file.OutputSettings.FlipX = HeaderSettings.Mirror != 0; - file.OutputSettings.FlipY = file.OutputSettings.FlipX; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - /*file.Printer = MachineName.Contains("Bene4 Mono") || - FileFullPath.Contains("bene4_mono") - ? CWSFile.PrinterType.BeneMono : CWSFile.PrinterType.Elfin;*/ - - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(UVJFile)) - { - UVJFile defaultFormat = (UVJFile)FindByType(typeof(UVJFile)); - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - X = HeaderSettings.MachineX, - Y = HeaderSettings.MachineY, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = HeaderSettings.BottomLiftHeight, - LiftSpeed = HeaderSettings.BottomLiftSpeed, - LightOnTime = BottomExposureTime, - LightOffTime = HeaderSettings.BottomLightOffTime, - LightPWM = HeaderSettings.BottomLightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - Count = BottomLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOnTime = ExposureTime, - LightOffTime = HeaderSettings.LightOffTime, - LightPWM = HeaderSettings.LightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } - #endregion } } diff --git a/UVtools.Core/FileFormats/FDGFile.cs b/UVtools.Core/FileFormats/FDGFile.cs index 40ad1cd..d2ed39d 100644 --- a/UVtools.Core/FileFormats/FDGFile.cs +++ b/UVtools.Core/FileFormats/FDGFile.cs @@ -37,6 +37,7 @@ namespace UVtools.Core.FileFormats #region Header public class Header { + private string _machineName; /// <summary> /// Gets a magic number identifying the file type. @@ -189,7 +190,16 @@ namespace UVtools.Core.FileFormats /// The character encoding is currently unknown — all observed files in the wild use 7-bit ASCII characters only. /// Note that the machine type here is set in the software profile, and is not the name the user assigned to the machine. /// </summary> - [Ignore] public string MachineName { get; set; } + [Ignore] + public string MachineName + { + get => _machineName; + set + { + _machineName = value; + MachineNameSize = string.IsNullOrEmpty(_machineName) ? 0 : (uint)_machineName.Length; + } + } /// <summary> /// Gets the light off time setting used at slicing, for bottom layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. @@ -199,7 +209,7 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets the light off time setting used at slicing, for normal layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. /// </summary> - [FieldOrder(33)] public float LayerOffTime { get; set; } = 1; + [FieldOrder(33)] public float LightOffDelay { get; set; } = 1; [FieldOrder(34)] public uint Padding4 { get; set; } @@ -252,7 +262,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(Magic)}: {Magic}, {nameof(Version)}: {Version}, {nameof(LayerCount)}: {LayerCount}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(ProjectorType)}: {ProjectorType}, {nameof(BottomLayersCount2)}: {BottomLayersCount2}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(LayerHeightMilimeter)}: {LayerHeightMilimeter}, {nameof(LayerExposureSeconds)}: {LayerExposureSeconds}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(PreviewLargeOffsetAddress)}: {PreviewLargeOffsetAddress}, {nameof(PreviewSmallOffsetAddress)}: {PreviewSmallOffsetAddress}, {nameof(LayersDefinitionOffsetAddress)}: {LayersDefinitionOffsetAddress}, {nameof(PrintTime)}: {PrintTime}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(LightPWM)}: {LightPWM}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(Padding1)}: {Padding1}, {nameof(Padding2)}: {Padding2}, {nameof(OverallHeightMilimeter)}: {OverallHeightMilimeter}, {nameof(BedSizeX)}: {BedSizeX}, {nameof(BedSizeY)}: {BedSizeY}, {nameof(BedSizeZ)}: {BedSizeZ}, {nameof(EncryptionKey)}: {EncryptionKey}, {nameof(AntiAliasLevelInfo)}: {AntiAliasLevelInfo}, {nameof(EncryptionMode)}: {EncryptionMode}, {nameof(VolumeMl)}: {VolumeMl}, {nameof(WeightG)}: {WeightG}, {nameof(CostDollars)}: {CostDollars}, {nameof(MachineNameAddress)}: {MachineNameAddress}, {nameof(MachineNameSize)}: {MachineNameSize}, {nameof(MachineName)}: {MachineName}, {nameof(BottomLightOffDelay)}: {BottomLightOffDelay}, {nameof(LayerOffTime)}: {LayerOffTime}, {nameof(Padding4)}: {Padding4}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(Padding5)}: {Padding5}, {nameof(Padding6)}: {Padding6}, {nameof(Padding7)}: {Padding7}, {nameof(Padding8)}: {Padding8}, {nameof(Padding9)}: {Padding9}, {nameof(Padding10)}: {Padding10}, {nameof(Padding11)}: {Padding11}, {nameof(Timestamp)}: {Timestamp}, {nameof(SoftwareVersion)}: {SoftwareVersion}, {nameof(Padding12)}: {Padding12}, {nameof(Padding13)}: {Padding13}, {nameof(Padding14)}: {Padding14}, {nameof(Padding15)}: {Padding15}, {nameof(Padding16)}: {Padding16}, {nameof(Padding17)}: {Padding17}"; + return $"{nameof(Magic)}: {Magic}, {nameof(Version)}: {Version}, {nameof(LayerCount)}: {LayerCount}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(ProjectorType)}: {ProjectorType}, {nameof(BottomLayersCount2)}: {BottomLayersCount2}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(LayerHeightMilimeter)}: {LayerHeightMilimeter}, {nameof(LayerExposureSeconds)}: {LayerExposureSeconds}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(PreviewLargeOffsetAddress)}: {PreviewLargeOffsetAddress}, {nameof(PreviewSmallOffsetAddress)}: {PreviewSmallOffsetAddress}, {nameof(LayersDefinitionOffsetAddress)}: {LayersDefinitionOffsetAddress}, {nameof(PrintTime)}: {PrintTime}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(LightPWM)}: {LightPWM}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(Padding1)}: {Padding1}, {nameof(Padding2)}: {Padding2}, {nameof(OverallHeightMilimeter)}: {OverallHeightMilimeter}, {nameof(BedSizeX)}: {BedSizeX}, {nameof(BedSizeY)}: {BedSizeY}, {nameof(BedSizeZ)}: {BedSizeZ}, {nameof(EncryptionKey)}: {EncryptionKey}, {nameof(AntiAliasLevelInfo)}: {AntiAliasLevelInfo}, {nameof(EncryptionMode)}: {EncryptionMode}, {nameof(VolumeMl)}: {VolumeMl}, {nameof(WeightG)}: {WeightG}, {nameof(CostDollars)}: {CostDollars}, {nameof(MachineNameAddress)}: {MachineNameAddress}, {nameof(MachineNameSize)}: {MachineNameSize}, {nameof(MachineName)}: {MachineName}, {nameof(BottomLightOffDelay)}: {BottomLightOffDelay}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(Padding4)}: {Padding4}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(Padding5)}: {Padding5}, {nameof(Padding6)}: {Padding6}, {nameof(Padding7)}: {Padding7}, {nameof(Padding8)}: {Padding8}, {nameof(Padding9)}: {Padding9}, {nameof(Padding10)}: {Padding10}, {nameof(Padding11)}: {Padding11}, {nameof(Timestamp)}: {Timestamp}, {nameof(SoftwareVersion)}: {SoftwareVersion}, {nameof(Padding12)}: {Padding12}, {nameof(Padding13)}: {Padding13}, {nameof(Padding14)}: {Padding14}, {nameof(Padding15)}: {Padding15}, {nameof(Padding16)}: {Padding16}, {nameof(Padding17)}: {Padding17}"; } } #endregion @@ -410,7 +420,7 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets how long to keep the light off after exposing this layer, in seconds. /// </summary> - [FieldOrder(2)] public float LayerOffTimeSeconds { get; set; } + [FieldOrder(2)] public float LightOffDelay { get; set; } /// <summary> /// Gets the layer image offset to encoded layer data, and its length in bytes. @@ -444,7 +454,7 @@ namespace UVtools.Core.FileFormats { LayerPositionZ = Parent[layerIndex].PositionZ; LayerExposure = Parent[layerIndex].ExposureTime; - LayerOffTimeSeconds = Parent[layerIndex].LayerOffTime; + LightOffDelay = Parent[layerIndex].LightOffDelay; } public unsafe Mat Decode(uint layerIndex, bool consumeData = true) @@ -592,7 +602,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(LayerPositionZ)}: {LayerPositionZ}, {nameof(LayerExposure)}: {LayerExposure}, {nameof(LayerOffTimeSeconds)}: {LayerOffTimeSeconds}, {nameof(DataAddress)}: {DataAddress}, {nameof(DataSize)}: {DataSize}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(Unknown3)}: {Unknown3}, {nameof(Unknown4)}: {Unknown4}"; + return $"{nameof(LayerPositionZ)}: {LayerPositionZ}, {nameof(LayerExposure)}: {LayerExposure}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(DataAddress)}: {DataAddress}, {nameof(DataSize)}: {DataSize}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(Unknown3)}: {Unknown3}, {nameof(Unknown4)}: {Unknown4}"; } } #endregion @@ -664,25 +674,14 @@ namespace UVtools.Core.FileFormats new("fdg", "Voxelab FDG"), }; - public override Type[] ConvertToFormats { get; } = - { - typeof(ChituboxFile), - typeof(ChituboxZipFile), - typeof(PHZFile), - typeof(PhotonWorkshopFile), - typeof(ZCodexFile), - typeof(CWSFile), - typeof(UVJFile), - }; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.BottomLiftHeight, PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -695,7 +694,7 @@ namespace UVtools.Core.FileFormats public override PrintParameterModifier[] PrintParameterPerLayerModifiers { get; } = { PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.LightOffDelay, }; public override byte ThumbnailsCount { get; } = 2; @@ -727,7 +726,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BedSizeX; set { - HeaderSettings.BedSizeX = value; + HeaderSettings.BedSizeX = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -738,19 +737,57 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BedSizeY; set { - HeaderSettings.BedSizeY = value; + HeaderSettings.BedSizeY = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float MaxPrintHeight + { + get => HeaderSettings.BedSizeZ; + set + { + HeaderSettings.BedSizeZ = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override byte AntiAliasing => (byte) HeaderSettings.AntiAliasLevelInfo; + public override bool MirrorDisplay + { + get => HeaderSettings.ProjectorType > 0; + set + { + HeaderSettings.ProjectorType = value ? 1 : 0; + RaisePropertyChanged(); + } + } + + public override byte AntiAliasing + { + get => (byte) HeaderSettings.AntiAliasLevelInfo; + set + { + HeaderSettings.AntiAliasLevelInfo = value.Clamp(1, 16); + RaisePropertyChanged(); + } + } public override float LayerHeight { get => HeaderSettings.LayerHeightMilimeter; set { - HeaderSettings.LayerHeightMilimeter = value; + HeaderSettings.LayerHeightMilimeter = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float PrintHeight + { + get => base.PrintHeight; + set + { + HeaderSettings.OverallHeightMilimeter = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -762,7 +799,7 @@ namespace UVtools.Core.FileFormats HeaderSettings.LayerCount = LayerCount; RaisePropertyChanged(); RaisePropertyChanged(nameof(NormalLayerCount)); - HeaderSettings.OverallHeightMilimeter = TotalHeight; + HeaderSettings.OverallHeightMilimeter = PrintHeight; } } @@ -791,27 +828,27 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LayerExposureSeconds; set { - HeaderSettings.LayerExposureSeconds = value; + HeaderSettings.LayerExposureSeconds = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float BottomLayerOffTime + public override float BottomLightOffDelay { get => HeaderSettings.BottomLightOffDelay; set { - HeaderSettings.BottomLightOffDelay = value; + HeaderSettings.BottomLightOffDelay = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float LayerOffTime + public override float LightOffDelay { - get => HeaderSettings.LayerOffTime; + get => HeaderSettings.LightOffDelay; set { - HeaderSettings.LayerOffTime = value; + HeaderSettings.LightOffDelay = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -821,7 +858,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomLiftHeight; set { - HeaderSettings.BottomLiftHeight = value; + HeaderSettings.BottomLiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -831,7 +868,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LiftHeight; set { - HeaderSettings.LiftHeight = value; + HeaderSettings.LiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -841,7 +878,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomLiftSpeed; set { - HeaderSettings.BottomLiftSpeed = value; + HeaderSettings.BottomLiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -851,7 +888,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LiftSpeed; set { - HeaderSettings.LiftSpeed = value; + HeaderSettings.LiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -861,7 +898,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.RetractSpeed; set { - HeaderSettings.RetractSpeed = value; + HeaderSettings.RetractSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -896,7 +933,7 @@ namespace UVtools.Core.FileFormats } } - public override float UsedMaterial + public override float MaterialMilliliters { get => (float) Math.Round(HeaderSettings.VolumeMl, 2); set @@ -906,6 +943,16 @@ namespace UVtools.Core.FileFormats } } + public override float MaterialGrams + { + get => HeaderSettings.WeightG; + set + { + HeaderSettings.WeightG = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + public override float MaterialCost { get => (float) Math.Round(HeaderSettings.CostDollars, 2); @@ -954,6 +1001,8 @@ namespace UVtools.Core.FileFormats public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); LayersHash.Clear(); @@ -1176,7 +1225,7 @@ namespace UVtools.Core.FileFormats { PositionZ = LayersDefinitions[layerIndex].LayerPositionZ, ExposureTime = LayersDefinitions[layerIndex].LayerExposure, - LayerOffTime = LayersDefinitions[layerIndex].LayerOffTimeSeconds, + LightOffDelay = LayersDefinitions[layerIndex].LightOffDelay, }; } @@ -1231,373 +1280,6 @@ namespace UVtools.Core.FileFormats } } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (to == typeof(ChituboxFile)) - { - ChituboxFile file = new ChituboxFile - { - LayerManager = LayerManager, - HeaderSettings - = - { - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LayerOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = HeaderSettings.PrintTime, - ProjectorType = HeaderSettings.ProjectorType, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - AntiAliasLevel = ValidateAntiAliasingLevel() - }, - PrintParametersSettings = - { - BottomLayerCount = BottomLayerCount, - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - BottomLightOffDelay = HeaderSettings.BottomLightOffDelay, - CostDollars = MaterialCost, - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOffDelay = HeaderSettings.LayerOffTime, - RetractSpeed = HeaderSettings.RetractSpeed, - VolumeMl = UsedMaterial, - WeightG = HeaderSettings.WeightG - }, - SlicerInfoSettings = {MachineName = MachineName, MachineNameSize = (uint) MachineName.Length} - }; - - - - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ChituboxZipFile)) - { - ChituboxZipFile file = new ChituboxZipFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Filename = Path.GetFileName(FileFullPath), - - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - MachineX = HeaderSettings.BedSizeX, - MachineY = HeaderSettings.BedSizeY, - MachineZ = HeaderSettings.BedSizeZ, - MachineType = MachineName, - ProjectType = HeaderSettings.ProjectorType == 0 ? "Normal" : "LCD_mirror", - - Resin = MaterialName, - Price = MaterialCost, - Weight = HeaderSettings.WeightG, - Volume = UsedMaterial, - Mirror = (byte) (HeaderSettings.ProjectorType == 0 ? 0 : 1), - - - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - LiftHeight = HeaderSettings.LiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - LiftSpeed = HeaderSettings.LiftSpeed, - RetractSpeed = HeaderSettings.RetractSpeed, - BottomLayCount = BottomLayerCount, - BottomLayerCount = BottomLayerCount, - BottomLightOffTime = HeaderSettings.BottomLightOffDelay, - LightOffTime = HeaderSettings.LayerOffTime, - BottomLayExposureTime = BottomExposureTime, - BottomLayerExposureTime = BottomExposureTime, - LayerExposureTime = ExposureTime, - LayerHeight = LayerHeight, - LayerCount = LayerCount, - AntiAliasing = ValidateAntiAliasingLevel(), - BottomLightPWM = (byte) HeaderSettings.BottomLightPWM, - LightPWM = (byte) HeaderSettings.LightPWM, - - EstimatedPrintTime = PrintTime - }, - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PHZFile)) - { - PHZFile file = new PHZFile - { - LayerManager = LayerManager, - HeaderSettings = - { - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LayerOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = HeaderSettings.PrintTime, - ProjectorType = HeaderSettings.ProjectorType, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - BottomLightOffDelay = HeaderSettings.BottomLightOffDelay, - CostDollars = MaterialCost, - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - RetractSpeed = HeaderSettings.RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = HeaderSettings.WeightG, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PhotonWorkshopFile)) - { - PhotonWorkshopFile file = new PhotonWorkshopFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = ExposureTime, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed / 60, - RetractSpeed = RetractSpeed / 60, - LayerOffTime = HeaderSettings.LayerOffTime, - BottomLayersCount = BottomLayerCount, - BottomExposureSeconds = BottomExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = HeaderSettings.WeightG, - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = BottomLayerCount, - BottomLayersTime = (uint)(BottomExposureTime * 1000), - LayerTime = (uint)(ExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = BottomLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(ExposureTime * 1000), - BottomLayerExposureTime = (uint)(BottomExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = (byte) (AntiAliasing > 1 ? 1 : 0), - CrossSupportEnabled = 1, - ExposureOffTime = (uint)HeaderSettings.LayerOffTime, - HollowEnabled = 0, - HollowThickness = 0, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount - 1, - ModelLiftEnabled = 0, - ModelLiftHeight = 0, - RaftEnabled = 0, - RaftHeight = 0, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = 0, - YCorrection = 0, - ZLiftDistance = HeaderSettings.LiftHeight, - ZLiftFeedRate = HeaderSettings.LiftSpeed, - ZLiftRetractRate = HeaderSettings.RetractSpeed, - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile { LayerManager = LayerManager }; - - file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = (float)Math.Round(ResolutionX / HeaderSettings.BedSizeX, 3); - file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float)Math.Round(ResolutionY / HeaderSettings.BedSizeY, 3); - file.ResolutionX = (ushort)ResolutionX; - file.ResolutionY = (ushort)ResolutionY; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = BottomLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint)ExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint)BottomExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = (uint)(HeaderSettings.LayerOffTime * 1000); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = LiftHeight; - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = LiftSpeed; - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = RetractSpeed; - file.SliceSettings.LiftWhenFinished = defaultFormat.SliceSettings.LiftWhenFinished; - - file.OutputSettings.BlankingLayerTime = (uint)(HeaderSettings.LayerOffTime * 1000); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - file.OutputSettings.FlipX = HeaderSettings.ProjectorType != 0; - file.OutputSettings.FlipY = file.OutputSettings.FlipX; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - /*file.Printer = MachineName.Contains("Bene4 Mono") || - FileFullPath.Contains("bene4_mono") - ? CWSFile.PrinterType.BeneMono : CWSFile.PrinterType.Elfin;*/ - - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(UVJFile)) - { - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - X = HeaderSettings.BedSizeX, - Y = HeaderSettings.BedSizeY, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = HeaderSettings.BottomLiftHeight, - LiftSpeed = HeaderSettings.BottomLiftSpeed, - LightOnTime = BottomExposureTime, - LightOffTime = HeaderSettings.BottomLightOffDelay, - LightPWM = (byte)HeaderSettings.BottomLightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - Count = BottomLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOnTime = ExposureTime, - LightOffTime = HeaderSettings.LayerOffTime, - LightPWM = (byte)HeaderSettings.LightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } - #endregion + #endregion } } diff --git a/UVtools.Core/FileFormats/FileExtension.cs b/UVtools.Core/FileFormats/FileExtension.cs index cc605f1..39d4ff5 100644 --- a/UVtools.Core/FileFormats/FileExtension.cs +++ b/UVtools.Core/FileFormats/FileExtension.cs @@ -63,12 +63,12 @@ namespace UVtools.Core.FileFormats public bool Equals(FileExtension other) { - return Extension == other.Extension; + return Extension.Equals(other.Extension, StringComparison.InvariantCultureIgnoreCase); } public bool Equals(string other) { - return Extension == other; + return Extension.Equals(other, StringComparison.InvariantCultureIgnoreCase); } public override bool Equals(object obj) diff --git a/UVtools.Core/FileFormats/FileFormat.cs b/UVtools.Core/FileFormats/FileFormat.cs index f0951ef..7fd6cff 100644 --- a/UVtools.Core/FileFormats/FileFormat.cs +++ b/UVtools.Core/FileFormats/FileFormat.cs @@ -10,7 +10,6 @@ using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; -using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; @@ -29,8 +28,24 @@ namespace UVtools.Core.FileFormats /// </summary> public abstract class FileFormat : BindableBase, IFileFormat, IDisposable, IEquatable<FileFormat>, IEnumerable<Layer> { + #region Constants public const string TemporaryFileAppend = ".tmp"; public const ushort ExtraPrintTime = 300; + + private const string ExtractConfigFileName = "Configuration"; + private const string ExtractConfigFileExtension = "ini"; + + public const float DefaultBottomLiftHeight = 5; + public const float DefaultLiftHeight = 5; + public const float DefaultBottomLiftSpeed = 100; + public const float DefaultLiftSpeed = 100; + public const float DefaultRetractSpeed = 100; + public const float DefaultBottomLightOffDelay = 0; + public const float DefaultLightOffDelay = 0; + public const byte DefaultBottomLightPWM = 255; + public const byte DefaultLightPWM = 255; + #endregion + #region Enums /// <summary> @@ -64,8 +79,8 @@ namespace UVtools.Core.FileFormats public static PrintParameterModifier BottomExposureSeconds { get; } = new PrintParameterModifier("Bottom exposure time", null, "s", 0.1M, 1000, 2); public static PrintParameterModifier ExposureSeconds { get; } = new PrintParameterModifier("Exposure time", null, "s", 0.1M, 1000, 2); - public static PrintParameterModifier BottomLayerOffTime { get; } = new PrintParameterModifier("Bottom layer off seconds", null, "s"); - public static PrintParameterModifier LayerOffTime { get; } = new PrintParameterModifier("Layer off seconds", null, "s"); + public static PrintParameterModifier BottomLightOffDelay { get; } = new PrintParameterModifier("Bottom light-off seconds", null, "s"); + public static PrintParameterModifier LightOffDelay { get; } = new PrintParameterModifier("Light-off seconds", null, "s"); public static PrintParameterModifier BottomLiftHeight { get; } = new PrintParameterModifier("Bottom lift height", @"Modify 'Bottom lift height' millimeters between bottom layers", "mm", 1); public static PrintParameterModifier LiftHeight { get; } = new PrintParameterModifier("Lift height", @"Modify 'Lift height' millimeters between layers", "mm", 1); public static PrintParameterModifier BottomLiftSpeed { get; } = new PrintParameterModifier("Bottom lift Speed", @"Modify 'Bottom lift Speed' mm/min between bottom layers", "mm/min", 10); @@ -80,8 +95,8 @@ namespace UVtools.Core.FileFormats BottomExposureSeconds, ExposureSeconds, - BottomLayerOffTime, - LayerOffTime, + BottomLightOffDelay, + LightOffDelay, BottomLiftHeight, BottomLiftSpeed, LiftHeight, @@ -168,26 +183,11 @@ namespace UVtools.Core.FileFormats } #endregion - #region Constants - private const string ExtractConfigFileName = "Configuration"; - private const string ExtractConfigFileExtension = "ini"; - - public const float DefaultBottomLiftHeight = 5; - public const float DefaultLiftHeight = 5; - public const float DefaultBottomLiftSpeed = 100; - public const float DefaultLiftSpeed = 100; - public const float DefaultRetractSpeed = 100; - public const float DefaultBottomLightOffDelay = 0; - public const float DefaultLightOffDelay = 0; - public const byte DefaultBottomLightPWM = 255; - public const byte DefaultLightPWM = 255; - #endregion - #region Static Methods /// <summary> /// Gets the available formats to process /// </summary> - public static FileFormat[] AvaliableFormats { get; } = + public static FileFormat[] AvailableFormats { get; } = { new SL1File(), // Prusa SL1 new ChituboxZipFile(), // Zip @@ -204,7 +204,7 @@ namespace UVtools.Core.FileFormats new ImageFile(), // images }; - public static string AllSlicerFiles => AvaliableFormats.Aggregate("All slicer files|", + public static string AllSlicerFiles => AvailableFormats.Aggregate("All slicer files|", (current, fileFormat) => current.EndsWith("|") ? $"{current}{fileFormat.FileFilterExtensionsOnly}" : $"{current}; {fileFormat.FileFilterExtensionsOnly}"); @@ -215,7 +215,7 @@ namespace UVtools.Core.FileFormats public static string AllFileFilters => AllSlicerFiles + - AvaliableFormats.Aggregate(string.Empty, + AvailableFormats.Aggregate(string.Empty, (current, fileFormat) => $"{current}|" + fileFormat.FileFilter); public static List<KeyValuePair<string, List<string>>> AllFileFiltersAvalonia @@ -227,9 +227,9 @@ namespace UVtools.Core.FileFormats new KeyValuePair<string, List<string>>("All slicer files", new List<string>()) }; - for (int i = 0; i < AvaliableFormats.Length; i++) + for (int i = 0; i < AvailableFormats.Length; i++) { - foreach (var fileExtension in AvaliableFormats[i].FileExtensions) + foreach (var fileExtension in AvailableFormats[i].FileExtensions) { result[0].Value.Add(fileExtension.Extension); result.Add(new KeyValuePair<string, List<string>>(fileExtension.Description, new List<string> @@ -252,7 +252,7 @@ namespace UVtools.Core.FileFormats { get { - return AvaliableFormats.Aggregate<FileFormat, byte>(0, (current, fileFormat) => (byte) (current + fileFormat.FileExtensions.Length)); + return AvailableFormats.Aggregate<FileFormat, byte>(0, (current, fileFormat) => (byte) (current + fileFormat.FileExtensions.Length)); } } @@ -265,12 +265,12 @@ namespace UVtools.Core.FileFormats /// <returns><see cref="FileFormat"/> object or null if not found</returns> public static FileFormat FindByExtension(string extension, bool isFilePath = false, bool createNewInstance = false) { - return (from fileFormat in AvaliableFormats where fileFormat.IsExtensionValid(extension, isFilePath) select createNewInstance ? (FileFormat) Activator.CreateInstance(fileFormat.GetType()) : fileFormat).FirstOrDefault(); + return (from fileFormat in AvailableFormats where fileFormat.IsExtensionValid(extension, isFilePath) select createNewInstance ? (FileFormat) Activator.CreateInstance(fileFormat.GetType()) : fileFormat).FirstOrDefault(); } public static FileExtension FindExtension(string extension, bool isFilePath = false, bool createNewInstance = false) { - return AvaliableFormats.SelectMany(format => format.FileExtensions).FirstOrDefault(ext => ext.Equals(extension)); + return AvailableFormats.SelectMany(format => format.FileExtensions).FirstOrDefault(ext => ext.Equals(extension)); } /// <summary> @@ -281,7 +281,7 @@ namespace UVtools.Core.FileFormats /// <returns><see cref="FileFormat"/> object or null if not found</returns> public static FileFormat FindByType(Type type, bool createNewInstance = false) { - return (from t in AvaliableFormats where type == t.GetType() select createNewInstance ? (FileFormat) Activator.CreateInstance(type) : t).FirstOrDefault(); + return (from t in AvailableFormats where type == t.GetType() select createNewInstance ? (FileFormat) Activator.CreateInstance(type) : t).FirstOrDefault(); } #endregion @@ -290,8 +290,6 @@ namespace UVtools.Core.FileFormats public abstract FileFormatType FileType { get; } public abstract FileExtension[] FileExtensions { get; } - public abstract Type[] ConvertToFormats { get; } - public abstract PrintParameterModifier[] PrintParameterModifiers { get; } public virtual PrintParameterModifier[] PrintParameterPerLayerModifiers { get; } = null; @@ -378,6 +376,7 @@ namespace UVtools.Core.FileFormats private bool _haveModifiedLayers; private LayerManager _layerManager; private float _printTime; + private float _maxPrintHeight; /// <summary> /// Gets or sets if modifications require a full encode to save @@ -390,7 +389,7 @@ namespace UVtools.Core.FileFormats public Size Resolution { - get => new Size((int)ResolutionX, (int)ResolutionY); + get => new((int)ResolutionX, (int)ResolutionY); set { ResolutionX = (uint) value.Width; @@ -405,7 +404,7 @@ namespace UVtools.Core.FileFormats public SizeF Display { - get => new SizeF(DisplayWidth, DisplayHeight); + get => new(DisplayWidth, DisplayHeight); set { DisplayWidth = value.Width; @@ -416,8 +415,15 @@ namespace UVtools.Core.FileFormats public abstract float DisplayWidth { get; set; } public abstract float DisplayHeight { get; set; } + public abstract bool MirrorDisplay { get; set; } - public float Xppmm + public virtual float MaxPrintHeight + { + get => _maxPrintHeight > 0 ? _maxPrintHeight : PrintHeight; + set => RaiseAndSetIfChanged(ref _maxPrintHeight, value); + } + + public virtual float Xppmm { get => DisplayWidth > 0 ? ResolutionX / DisplayWidth : 0; set @@ -427,7 +433,7 @@ namespace UVtools.Core.FileFormats } } - public float Yppmm + public virtual float Yppmm { get => DisplayHeight > 0 ? ResolutionY / DisplayHeight : 0; set @@ -439,7 +445,7 @@ namespace UVtools.Core.FileFormats public SizeF Ppmm { - get => new SizeF(Xppmm, Yppmm); + get => new(Xppmm, Yppmm); set { Xppmm = value.Width; @@ -448,12 +454,33 @@ namespace UVtools.Core.FileFormats } + public decimal XYResolution => DisplayWidth > 0 || DisplayHeight > 0 ? + (decimal) Math.Round(Math.Max( + DisplayWidth / ResolutionX, + DisplayHeight / ResolutionY + ), 3) + : 0; + + public decimal XYResolutionUm => DisplayWidth > 0 || DisplayHeight > 0 ? + (decimal)Math.Round(Math.Max( + DisplayWidth / ResolutionX, + DisplayHeight / ResolutionY + ), 3) * 1000 + : 0; + public bool HaveAntiAliasing => AntiAliasing > 1; - public abstract byte AntiAliasing { get; } + public abstract byte AntiAliasing { get; set; } public abstract float LayerHeight { get; set; } - public float TotalHeight => LayerCount == 0 ? 0 : this[LayerCount - 1].PositionZ; //(float)Math.Round(LayerCount * LayerHeight, 2); + public virtual float PrintHeight + { + get => LayerCount == 0 ? 0 : this[LayerCount - 1]?.PositionZ ?? 0; + set + { + RaisePropertyChanged(); + } + } public uint LastLayerIndex => LayerCount - 1; public virtual bool SupportPerLayerSettings => !(PrintParameterPerLayerModifiers is null || PrintParameterPerLayerModifiers.Length == 0); @@ -468,8 +495,8 @@ namespace UVtools.Core.FileFormats public uint NormalLayerCount => LayerCount - BottomLayerCount; public virtual float BottomExposureTime { get; set; } public virtual float ExposureTime { get; set; } - public virtual float BottomLayerOffTime { get; set; } = DefaultBottomLightOffDelay; - public virtual float LayerOffTime { get; set; } = DefaultLightOffDelay; + public virtual float BottomLightOffDelay { get; set; } = DefaultBottomLightOffDelay; + public virtual float LightOffDelay { get; set; } = DefaultLightOffDelay; public virtual float BottomLiftHeight { get; set; } = DefaultBottomLiftHeight; public virtual float LiftHeight { get; set; } = DefaultLiftHeight; public virtual float BottomLiftSpeed { get; set; } = DefaultBottomLiftSpeed; @@ -513,20 +540,20 @@ namespace UVtools.Core.FileFormats break; } - var layerOff = OperationCalculator.LightOffDelayC.CalculateSeconds(layer.LiftHeight, layer.LiftSpeed, layer.RetractSpeed); + var lightOffDelay = OperationCalculator.LightOffDelayC.CalculateSeconds(layer.LiftHeight, layer.LiftSpeed, layer.RetractSpeed); time += layer.ExposureTime; - if (layerOff >= layer.LayerOffTime) - time += layerOff; + if (lightOffDelay >= layer.LightOffDelay) + time += lightOffDelay; else - time += layer.LayerOffTime; + time += layer.LightOffDelay; } } if (computeGeneral) { time = ExtraPrintTime + - BottomLayerOffTime * BottomLayerCount + - LayerOffTime * NormalLayerCount + + BottomLightOffDelay * BottomLayerCount + + LightOffDelay * NormalLayerCount + OperationCalculator.LightOffDelayC.CalculateSeconds(BottomLiftHeight, BottomLiftSpeed, RetractSpeed) * BottomLayerCount + OperationCalculator.LightOffDelayC.CalculateSeconds(LiftHeight, LiftSpeed, RetractSpeed) * NormalLayerCount; } @@ -539,7 +566,8 @@ namespace UVtools.Core.FileFormats public string PrintTimeString => TimeSpan.FromSeconds(PrintTimeOrComputed).ToString("hh\\hmm\\m"); - public virtual float UsedMaterial { get; set; } + public virtual float MaterialMilliliters { get; set; } + public virtual float MaterialGrams { get; set; } public virtual float MaterialCost { get; set; } @@ -566,6 +594,11 @@ namespace UVtools.Core.FileFormats private void OnPropertyChanged(object sender, PropertyChangedEventArgs e) { + if (e.PropertyName == nameof(LayerCount)) + { + PrintHeight = PrintHeight; + } + if (SuppressRebuildProperties) return; if (e.PropertyName == nameof(LayerCount)) { @@ -579,8 +612,8 @@ namespace UVtools.Core.FileFormats e.PropertyName == nameof(BottomLayerCount) || e.PropertyName == nameof(BottomExposureTime) || e.PropertyName == nameof(ExposureTime) || - e.PropertyName == nameof(BottomLayerOffTime) || - e.PropertyName == nameof(LayerOffTime) || + e.PropertyName == nameof(BottomLightOffDelay) || + e.PropertyName == nameof(LightOffDelay) || e.PropertyName == nameof(BottomLiftHeight) || e.PropertyName == nameof(LiftHeight) || e.PropertyName == nameof(BottomLiftSpeed) || @@ -789,9 +822,6 @@ namespace UVtools.Core.FileFormats if(Thumbnails[i].Size == ThumbnailsOriginalSize[i]) continue; CvInvoke.Resize(Thumbnails[i], Thumbnails[i], new Size(ThumbnailsOriginalSize[i].Width, ThumbnailsOriginalSize[i].Height)); } - - progress ??= new OperationProgress(); - progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); } public void AfterEncode() @@ -953,14 +983,14 @@ namespace UVtools.Core.FileFormats PrintParameterModifier.ExposureSeconds.OldValue = (decimal)ExposureTime; } - if (PrintParameterModifiers.Contains(PrintParameterModifier.BottomLayerOffTime)) + if (PrintParameterModifiers.Contains(PrintParameterModifier.BottomLightOffDelay)) { - PrintParameterModifier.BottomLayerOffTime.OldValue = (decimal)BottomLayerOffTime; + PrintParameterModifier.BottomLightOffDelay.OldValue = (decimal)BottomLightOffDelay; } - if (PrintParameterModifiers.Contains(PrintParameterModifier.LayerOffTime)) + if (PrintParameterModifiers.Contains(PrintParameterModifier.LightOffDelay)) { - PrintParameterModifier.LayerOffTime.OldValue = (decimal)LayerOffTime; + PrintParameterModifier.LightOffDelay.OldValue = (decimal)LightOffDelay; } if (PrintParameterModifiers.Contains(PrintParameterModifier.BottomLiftHeight)) @@ -1009,9 +1039,9 @@ namespace UVtools.Core.FileFormats PrintParameterModifier.ExposureSeconds.OldValue = (decimal)layer.ExposureTime; } - if (PrintParameterPerLayerModifiers.Contains(PrintParameterModifier.LayerOffTime)) + if (PrintParameterPerLayerModifiers.Contains(PrintParameterModifier.LightOffDelay)) { - PrintParameterModifier.LayerOffTime.OldValue = (decimal)layer.LayerOffTime; + PrintParameterModifier.LightOffDelay.OldValue = (decimal)layer.LightOffDelay; } if (PrintParameterPerLayerModifiers.Contains(PrintParameterModifier.LiftHeight)) @@ -1044,10 +1074,10 @@ namespace UVtools.Core.FileFormats if (ReferenceEquals(modifier, PrintParameterModifier.ExposureSeconds)) return ExposureTime; - if (ReferenceEquals(modifier, PrintParameterModifier.BottomLayerOffTime)) - return BottomLayerOffTime; - if (ReferenceEquals(modifier, PrintParameterModifier.LayerOffTime)) - return LayerOffTime; + if (ReferenceEquals(modifier, PrintParameterModifier.BottomLightOffDelay)) + return BottomLightOffDelay; + if (ReferenceEquals(modifier, PrintParameterModifier.LightOffDelay)) + return LightOffDelay; if (ReferenceEquals(modifier, PrintParameterModifier.BottomLiftHeight)) return BottomLiftHeight; @@ -1086,14 +1116,14 @@ namespace UVtools.Core.FileFormats return true; } - if (ReferenceEquals(modifier, PrintParameterModifier.BottomLayerOffTime)) + if (ReferenceEquals(modifier, PrintParameterModifier.BottomLightOffDelay)) { - BottomLayerOffTime = (float) value; + BottomLightOffDelay = (float) value; return true; } - if (ReferenceEquals(modifier, PrintParameterModifier.LayerOffTime)) + if (ReferenceEquals(modifier, PrintParameterModifier.LightOffDelay)) { - LayerOffTime = (float) value; + LightOffDelay = (float) value; return true; } @@ -1182,8 +1212,65 @@ namespace UVtools.Core.FileFormats public abstract void SaveAs(string filePath = null, OperationProgress progress = null); - public abstract bool Convert(Type to, string fileFullPath, OperationProgress progress = null); - public bool Convert(FileFormat to, string fileFullPath, OperationProgress progress = null) + public virtual FileFormat Convert(Type to, string fileFullPath, OperationProgress progress = null) + { + if (!IsValid) return null; + var found = AvailableFormats.Any(format => to == format.GetType()); + if (!found) return null; + + progress ??= new OperationProgress("Converting"); + + var slicerFile = (FileFormat)Activator.CreateInstance(to); + if (slicerFile is null) return null; + + slicerFile.SuppressRebuildProperties = true; + + slicerFile.LayerManager = LayerManager; + slicerFile.AntiAliasing = ValidateAntiAliasingLevel(); + slicerFile.LayerCount = LayerManager.Count; + slicerFile.BottomLayerCount = BottomLayerCount; + slicerFile.LayerHeight = LayerHeight; + slicerFile.ResolutionX = ResolutionX; + slicerFile.ResolutionY = ResolutionY; + slicerFile.DisplayWidth = DisplayWidth; + slicerFile.DisplayHeight = DisplayHeight; + slicerFile.MaxPrintHeight = MaxPrintHeight; + slicerFile.MirrorDisplay = MirrorDisplay; + slicerFile.BottomExposureTime = BottomExposureTime; + slicerFile.ExposureTime = ExposureTime; + + slicerFile.BottomLiftHeight = BottomLiftHeight; + slicerFile.LiftHeight = LiftHeight; + + slicerFile.BottomLiftSpeed = BottomLiftSpeed; + slicerFile.LiftSpeed = LiftSpeed; + slicerFile.RetractSpeed = RetractSpeed; + + slicerFile.BottomLightOffDelay = BottomLightOffDelay; + slicerFile.LightOffDelay = LightOffDelay; + + slicerFile.BottomLightPWM = BottomLightPWM; + slicerFile.LightPWM = LightPWM; + + slicerFile.MachineName = MachineName; + slicerFile.MaterialName = MaterialName; + slicerFile.MaterialMilliliters = MaterialMilliliters; + slicerFile.MaterialGrams = MaterialGrams; + slicerFile.MaterialCost = MaterialCost; + slicerFile.Xppmm = Xppmm; + slicerFile.Yppmm = Yppmm; + slicerFile.PrintTime = PrintTimeOrComputed; + slicerFile.PrintHeight = PrintHeight; + + + + slicerFile.SuppressRebuildProperties = false; + slicerFile.SetThumbnails(Thumbnails); + slicerFile.Encode(fileFullPath, progress); + + return slicerFile; + } + public FileFormat Convert(FileFormat to, string fileFullPath, OperationProgress progress = null) => Convert(to.GetType(), fileFullPath, progress); public byte ValidateAntiAliasingLevel() diff --git a/UVtools.Core/FileFormats/IFileFormat.cs b/UVtools.Core/FileFormats/IFileFormat.cs index 6b46b4f..e96bb0a 100644 --- a/UVtools.Core/FileFormats/IFileFormat.cs +++ b/UVtools.Core/FileFormats/IFileFormat.cs @@ -31,11 +31,6 @@ namespace UVtools.Core.FileFormats FileExtension[] FileExtensions { get; } /// <summary> - /// Gets the implemented file formats able to convert to - /// </summary> - Type[] ConvertToFormats { get; } - - /// <summary> /// Gets the available <see cref="FileFormat.PrintParameterModifier"/> /// </summary> FileFormat.PrintParameterModifier[] PrintParameterModifiers { get; } @@ -91,7 +86,7 @@ namespace UVtools.Core.FileFormats /// </summary> LayerManager LayerManager { get; set; } - Size Resolution { get; } + Size Resolution { get; set; } /// <summary> /// Gets the image width resolution @@ -117,6 +112,16 @@ namespace UVtools.Core.FileFormats /// Gets or sets the display height in millimeters /// </summary> float DisplayHeight { get; set; } + + /// <summary> + /// Gets or sets if images need to be mirrored on lcd to print on the correct orientation + /// </summary> + bool MirrorDisplay { get; set; } + + /// <summary> + /// Gets or sets the maximum printer build Z volume + /// </summary> + float MaxPrintHeight { get; set; } /// <summary> /// Gets or sets the pixels per mm on X direction @@ -133,12 +138,22 @@ namespace UVtools.Core.FileFormats /// </summary> SizeF Ppmm { get; set; } + /// <summary> + /// Gets the printer XY pixel resolution + /// </summary> + decimal XYResolution { get; } + + /// <summary> + /// Gets the printer XY pixel resolution in microns + /// </summary> + decimal XYResolutionUm { get; } + bool HaveAntiAliasing { get; } /// <summary> - /// Gets the AntiAliasing level + /// Gets or sets the AntiAliasing level /// </summary> - byte AntiAliasing { get; } + byte AntiAliasing { get; set; } /// <summary> /// Gets Layer Height in mm @@ -146,9 +161,9 @@ namespace UVtools.Core.FileFormats float LayerHeight { get; set; } /// <summary> - /// Gets Total Height in mm + /// Gets or sets the print height in mm /// </summary> - float TotalHeight { get; } + float PrintHeight { get; set; } /// <summary> /// Gets the last layer index @@ -190,12 +205,12 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets or sets the bottom layer off time in seconds /// </summary> - float BottomLayerOffTime { get; set; } + float BottomLightOffDelay { get; set; } /// <summary> /// Gets or sets the layer off time in seconds /// </summary> - float LayerOffTime { get; set; } + float LightOffDelay { get; set; } /// <summary> /// Gets or sets the bottom lift height in mm @@ -261,7 +276,12 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets the estimate used material in ml /// </summary> - float UsedMaterial { get; set; } + float MaterialMilliliters { get; set; } + + /// <summary> + /// Gets the estimate material in grams + /// </summary> + float MaterialGrams { get; set; } /// <summary> /// Gets the estimate material cost @@ -468,8 +488,8 @@ namespace UVtools.Core.FileFormats /// <param name="to">Target file format</param> /// <param name="fileFullPath">Output path file</param> /// <param name="progress"></param> - /// <returns>True if convert succeed, otherwise false</returns> - bool Convert(Type to, string fileFullPath, OperationProgress progress = null); + /// <returns>The converted file if successful, otherwise null</returns> + FileFormat Convert(Type to, string fileFullPath, OperationProgress progress = null); /// <summary> /// Converts this file type to another file type @@ -477,8 +497,8 @@ namespace UVtools.Core.FileFormats /// <param name="to">Target file format</param> /// <param name="fileFullPath">Output path file</param> /// <param name="progress"></param> - /// <returns>True if convert succeed, otherwise false</returns> - bool Convert(FileFormat to, string fileFullPath, OperationProgress progress = null); + /// <returns>TThe converted file if successful, otherwise null</returns> + FileFormat Convert(FileFormat to, string fileFullPath, OperationProgress progress = null); /// <summary> /// Validate AntiAlias Level diff --git a/UVtools.Core/FileFormats/ImageFile.cs b/UVtools.Core/FileFormats/ImageFile.cs index 3331d44..490b286 100644 --- a/UVtools.Core/FileFormats/ImageFile.cs +++ b/UVtools.Core/FileFormats/ImageFile.cs @@ -12,15 +12,13 @@ namespace UVtools.Core.FileFormats public override FileExtension[] FileExtensions { get; } = { - new FileExtension("jpg", "JPG"), - new FileExtension("jpeg", "JPEG"), - new FileExtension("png", "PNG"), - new FileExtension("bmp", "BMP"), - new FileExtension("gif", "GIF"), - new FileExtension("tga", "TGA"), + new ("jpg", "JPG"), + new ("jpeg", "JPEG"), + new ("png", "PNG"), + new ("bmp", "BMP"), + new ("gif", "GIF"), + new ("tga", "TGA"), }; - - public override Type[] ConvertToFormats { get; } = null; public override PrintParameterModifier[] PrintParameterModifiers { get; } = null; public override byte ThumbnailsCount { get; } = 4; public override Size[] ThumbnailsOriginalSize { get; } = null; @@ -56,7 +54,18 @@ namespace UVtools.Core.FileFormats } } - public override byte AntiAliasing { get; } = 1; + public override bool MirrorDisplay + { + get => false; + set { } + } + + public override byte AntiAliasing + { + get => 1; + set { } + } + public override float LayerHeight { get; set; } = 0; /*public override float PrintTime { get; } = 0; public override float UsedMaterial { get; } = 0; @@ -95,7 +104,7 @@ namespace UVtools.Core.FileFormats this[0].LayerMat.Save(filePath ?? FileFullPath); } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) + public override FileFormat Convert(Type to, string fileFullPath, OperationProgress progress = null) { throw new NotImplementedException(); } diff --git a/UVtools.Core/FileFormats/LGSFile.cs b/UVtools.Core/FileFormats/LGSFile.cs index cf98191..84806fc 100644 --- a/UVtools.Core/FileFormats/LGSFile.cs +++ b/UVtools.Core/FileFormats/LGSFile.cs @@ -42,8 +42,8 @@ namespace UVtools.Core.FileFormats [FieldOrder(3)] public uint Uint_10 { get; set; } = 30; // 0x10: 30 ? [FieldOrder(4)] public uint Uint_14 { get; set; } = 0; // 0x14: 0 ? [FieldOrder(5)] public uint Uint_18 { get; set; } = 34; // 0x18: 34 ? - [FieldOrder(6)] public float PixelPerMmX { get; set; } - [FieldOrder(7)] public float PixelPerMmY { get; set; } + [FieldOrder(6)] public float PixelPerMmX { get; set; } = 15.404f; + [FieldOrder(7)] public float PixelPerMmY { get; set; } = 4.866f; [FieldOrder(8)] public float ResolutionX { get; set; } [FieldOrder(9)] public float ResolutionY { get; set; } [FieldOrder(10)] public float LayerHeight { get; set; } @@ -211,19 +211,14 @@ namespace UVtools.Core.FileFormats new FileExtension("lgs30", "Longer Orange 30"), }; - public override Type[] ConvertToFormats { get; } = - { - //typeof(UVJFile), - }; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.BottomLiftHeight, PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -254,6 +249,26 @@ namespace UVtools.Core.FileFormats } } + public override float Xppmm + { + get => HeaderSettings.PixelPerMmX > 0 ? HeaderSettings.PixelPerMmX : base.Xppmm; + set + { + HeaderSettings.PixelPerMmX = value; + base.Xppmm = value; + } + } + + public override float Yppmm + { + get => HeaderSettings.PixelPerMmY > 0 ? HeaderSettings.PixelPerMmY : base.Yppmm; + set + { + HeaderSettings.PixelPerMmY = value; + base.Yppmm = value; + } + } + public override float DisplayWidth { get => ResolutionX / HeaderSettings.PixelPerMmX; @@ -266,7 +281,17 @@ namespace UVtools.Core.FileFormats set { } } - public override byte AntiAliasing => 4; + public override bool MirrorDisplay + { + get => true; + set { } + } + + public override byte AntiAliasing + { + get => 4; + set { } + } public override float LayerHeight { @@ -318,7 +343,7 @@ namespace UVtools.Core.FileFormats } } - public override float BottomLayerOffTime + public override float BottomLightOffDelay { get => HeaderSettings.BottomLightOffDelayMs; set @@ -328,7 +353,7 @@ namespace UVtools.Core.FileFormats } } - public override float LayerOffTime + public override float LightOffDelay { get => HeaderSettings.LightOffDelayMs; set @@ -427,6 +452,8 @@ namespace UVtools.Core.FileFormats } public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); if (ResolutionY >= 2560) // Longer Orange 30 @@ -590,11 +617,7 @@ namespace UVtools.Core.FileFormats Helpers.SerializeWriteFileStream(outputFile, HeaderSettings); } } - - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - return false; - } + #endregion } } diff --git a/UVtools.Core/FileFormats/MakerbaseFile.cs b/UVtools.Core/FileFormats/MakerbaseFile.cs index a74d1ed..218e54e 100644 --- a/UVtools.Core/FileFormats/MakerbaseFile.cs +++ b/UVtools.Core/FileFormats/MakerbaseFile.cs @@ -61,19 +61,14 @@ namespace UVtools.Core.FileFormats new FileExtension("gr1", "GR1 Workshop GR1 Files"), }; - public override Type[] ConvertToFormats { get; } = - { - typeof(UVJFile), - }; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.BottomLiftHeight, PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -102,8 +97,13 @@ namespace UVtools.Core.FileFormats public override float DisplayWidth { get; set; } public override float DisplayHeight { get; set; } + public override bool MirrorDisplay { get; set; } - public override byte AntiAliasing => 1; + public override byte AntiAliasing + { + get => 1; + set { } + } public override float LayerHeight { @@ -132,7 +132,7 @@ namespace UVtools.Core.FileFormats public override float PrintTime => 0; - public override float UsedMaterial => 0; + public override float MaterialMilliliters => 0; public override float MaterialCost => 0; @@ -241,377 +241,6 @@ namespace UVtools.Core.FileFormats //Decode(FileFullPath, progress); } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - /*if (to == typeof(ChituboxFile)) - { - if (Path.GetExtension(FileFullPath).Equals(Path.GetExtension(fileFullPath))) - { - return false; - } - ChituboxFile file = new ChituboxFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - ProjectorType = HeaderSettings.ProjectorType, - LayerCount = LayerCount, - AntiAliasLevel = ValidateAntiAliasingLevel(), - BottomLightPWM = (byte) HeaderSettings.BottomLightPWM, - LightPWM = (byte) HeaderSettings.LightPWM, - LayerOffTime = HeaderSettings.LayerOffTime, - PrintTime = HeaderSettings.PrintTime, - BottomExposureSeconds = HeaderSettings.BottomExposureSeconds, - BottomLayersCount = HeaderSettings.BottomLayersCount, - //EncryptionKey = HeaderSettings.EncryptionKey, - LayerExposureSeconds = HeaderSettings.LayerExposureSeconds, - LayerHeightMilimeter = HeaderSettings.LayerHeightMilimeter, - OverallHeightMilimeter = HeaderSettings.OverallHeightMilimeter, - }, - PrintParametersSettings = - { - LiftSpeed = PrintParametersSettings.LiftSpeed, - LiftHeight = PrintParametersSettings.LiftHeight, - BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed, - RetractSpeed = PrintParametersSettings.RetractSpeed, - BottomLightOffDelay = PrintParametersSettings.BottomLightOffDelay, - LightOffDelay = PrintParametersSettings.BottomLightOffDelay, - BottomLayerCount = PrintParametersSettings.BottomLayerCount, - VolumeMl = PrintParametersSettings.VolumeMl, - BottomLiftHeight = PrintParametersSettings.BottomLiftHeight, - CostDollars = PrintParametersSettings.CostDollars, - WeightG = PrintParametersSettings.WeightG - }, - SlicerInfoSettings = - { - AntiAliasLevel = SlicerInfoSettings.AntiAliasLevel, - MachineName = SlicerInfoSettings.MachineName, - //EncryptionMode = SlicerInfoSettings.EncryptionMode, - MachineNameSize = SlicerInfoSettings.MachineNameSize, - }, - Thumbnails = Thumbnails, - }; - - //file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ChituboxZipFile)) - { - ChituboxZipFile file = new ChituboxZipFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Filename = Path.GetFileName(FileFullPath), - - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - MachineX = HeaderSettings.BedSizeX, - MachineY = HeaderSettings.BedSizeY, - MachineZ = HeaderSettings.BedSizeZ, - MachineType = MachineName, - ProjectType = HeaderSettings.ProjectorType == 0 ? "Normal" : "LCD_mirror", - - Resin = MaterialName, - Price = MaterialCost, - Weight = PrintParametersSettings.WeightG, - Volume = UsedMaterial, - Mirror = (byte) (HeaderSettings.ProjectorType == 0 ? 0 : 1), - - - BottomLiftHeight = PrintParametersSettings.BottomLiftHeight, - LiftHeight = PrintParametersSettings.LiftHeight, - BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed, - LiftSpeed = PrintParametersSettings.LiftSpeed, - RetractSpeed = PrintParametersSettings.RetractSpeed, - BottomLayCount = InitialLayerCount, - BottomLayerCount = InitialLayerCount, - BottomLightOffTime = PrintParametersSettings.BottomLightOffDelay, - LightOffTime = PrintParametersSettings.LightOffDelay, - BottomLayExposureTime = InitialExposureTime, - BottomLayerExposureTime = InitialExposureTime, - LayerExposureTime = LayerExposureTime, - LayerHeight = LayerHeight, - LayerCount = LayerCount, - AntiAliasing = ValidateAntiAliasingLevel(), - BottomLightPWM = (byte) HeaderSettings.BottomLightPWM, - LayerLightPWM = (byte) HeaderSettings.LightPWM, - - EstimatedPrintTime = PrintTime - }, - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PWSFile)) - { - PWSFile file = new PWSFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = LayerExposureTime, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed / 60, - RetractSpeed = RetractSpeed / 60, - LayerOffTime = HeaderSettings.LayerOffTime, - BottomLayersCount = InitialLayerCount, - BottomExposureSeconds = InitialExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = PrintParametersSettings.WeightG, - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PHZFile)) - { - PHZFile file = new PHZFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Version = 2, - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = InitialExposureTime, - BottomLayersCount = InitialLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = LayerExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LayerOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = HeaderSettings.PrintTime, - ProjectorType = HeaderSettings.ProjectorType, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayerCount = InitialLayerCount, - BottomLiftHeight = PrintParametersSettings.BottomLiftHeight, - BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed, - BottomLightOffDelay = PrintParametersSettings.BottomLightOffDelay, - CostDollars = MaterialCost, - LiftHeight = PrintParametersSettings.LiftHeight, - LiftSpeed = PrintParametersSettings.LiftSpeed, - RetractSpeed = PrintParametersSettings.RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = PrintParametersSettings.WeightG, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = InitialLayerCount, - BottomLayersTime = (uint)(InitialExposureTime * 1000), - LayerTime = (uint)(LayerExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = InitialLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(LayerExposureTime * 1000), - BottomLayerExposureTime = (uint)(InitialExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = (byte)(ValidateAntiAliasingLevel() > 1 ? 1 : 0), - CrossSupportEnabled = 1, - ExposureOffTime = (uint) HeaderSettings.LayerOffTime, - HollowEnabled = 0, - HollowThickness = 0, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount - 1, - ModelLiftEnabled = 0, - ModelLiftHeight = 0, - RaftEnabled = 0, - RaftHeight = 0, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = 0, - YCorrection = 0, - ZLiftDistance = PrintParametersSettings.LiftHeight, - ZLiftFeedRate = PrintParametersSettings.LiftSpeed, - ZLiftRetractRate = PrintParametersSettings.RetractSpeed, - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile { LayerManager = LayerManager }; - - file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = (float)Math.Round(ResolutionX / HeaderSettings.BedSizeX, 3); - file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float)Math.Round(ResolutionY / HeaderSettings.BedSizeY, 3); - file.SliceSettings.Xres = file.OutputSettings.XResolution = (ushort)ResolutionX; - file.SliceSettings.Yres = file.OutputSettings.YResolution = (ushort)ResolutionY; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = InitialLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint)LayerExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint)InitialExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = (uint)(PrintParametersSettings.LightOffDelay * 1000); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = LiftHeight; - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = LiftSpeed; - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = RetractSpeed; - file.SliceSettings.LiftWhenFinished = defaultFormat.SliceSettings.LiftWhenFinished; - - file.OutputSettings.BlankingLayerTime = (uint) (PrintParametersSettings.LightOffDelay * 1000); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - file.OutputSettings.FlipX = HeaderSettings.ProjectorType != 0; - file.OutputSettings.FlipY = file.OutputSettings.FlipX; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - file.Encode(fileFullPath, progress); - - return true; - } - - /*if (to == typeof(UVJFile)) - { - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - X = HeaderSettings.BedSizeX, - Y = HeaderSettings.BedSizeY, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = PrintParametersSettings.BottomLiftHeight, - LiftSpeed = PrintParametersSettings.BottomLiftSpeed, - LightOnTime = InitialExposureTime, - LightOffTime = PrintParametersSettings.BottomLightOffDelay, - LightPWM = (byte) HeaderSettings.BottomLightPWM, - RetractSpeed = PrintParametersSettings.RetractSpeed, - Count = InitialLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = PrintParametersSettings.LiftHeight, - LiftSpeed = PrintParametersSettings.LiftSpeed, - LightOnTime = LayerExposureTime, - LightOffTime = PrintParametersSettings.LightOffDelay, - LightPWM = (byte) HeaderSettings.LightPWM, - RetractSpeed = PrintParametersSettings.RetractSpeed, - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - }*/ - - return false; - } #endregion } } diff --git a/UVtools.Core/FileFormats/PHZFile.cs b/UVtools.Core/FileFormats/PHZFile.cs index 83c7783..2555786 100644 --- a/UVtools.Core/FileFormats/PHZFile.cs +++ b/UVtools.Core/FileFormats/PHZFile.cs @@ -37,6 +37,7 @@ namespace UVtools.Core.FileFormats #region Header public class Header { + private string _machineName; /// <summary> /// Gets a magic number identifying the file type. @@ -167,7 +168,7 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets the light off time setting used at slicing, for normal layers, in seconds. Actual time used by the machine is in the layer table. Note that light_off_time_s appears in both the file header and ExtConfig. /// </summary> - [FieldOrder(25)] public float LayerOffTime { get; set; } = 1; + [FieldOrder(25)] public float LightOffDelay { get; set; } = 1; /// <summary> /// Gets number of layers configured as "bottom." Note that this field appears in both the file header and ExtConfig. @@ -233,7 +234,16 @@ namespace UVtools.Core.FileFormats /// The character encoding is currently unknown — all observed files in the wild use 7-bit ASCII characters only. /// Note that the machine type here is set in the software profile, and is not the name the user assigned to the machine. /// </summary> - [Ignore] public string MachineName { get; set; } + [Ignore] + public string MachineName + { + get => _machineName; + set + { + _machineName = value; + MachineNameSize = string.IsNullOrEmpty(_machineName) ? 0 : (uint)_machineName.Length; + } + } [FieldOrder(39)] public uint Padding5 { get; set; } [FieldOrder(40)] public uint Padding6 { get; set; } @@ -269,7 +279,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(Magic)}: {Magic}, {nameof(Version)}: {Version}, {nameof(LayerHeightMilimeter)}: {LayerHeightMilimeter}, {nameof(LayerExposureSeconds)}: {LayerExposureSeconds}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(PreviewLargeOffsetAddress)}: {PreviewLargeOffsetAddress}, {nameof(LayersDefinitionOffsetAddress)}: {LayersDefinitionOffsetAddress}, {nameof(LayerCount)}: {LayerCount}, {nameof(PreviewSmallOffsetAddress)}: {PreviewSmallOffsetAddress}, {nameof(PrintTime)}: {PrintTime}, {nameof(ProjectorType)}: {ProjectorType}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(LightPWM)}: {LightPWM}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(Padding1)}: {Padding1}, {nameof(Padding2)}: {Padding2}, {nameof(OverallHeightMilimeter)}: {OverallHeightMilimeter}, {nameof(BedSizeX)}: {BedSizeX}, {nameof(BedSizeY)}: {BedSizeY}, {nameof(BedSizeZ)}: {BedSizeZ}, {nameof(EncryptionKey)}: {EncryptionKey}, {nameof(BottomLightOffDelay)}: {BottomLightOffDelay}, {nameof(LayerOffTime)}: {LayerOffTime}, {nameof(BottomLayersCount2)}: {BottomLayersCount2}, {nameof(Padding3)}: {Padding3}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(VolumeMl)}: {VolumeMl}, {nameof(WeightG)}: {WeightG}, {nameof(CostDollars)}: {CostDollars}, {nameof(Padding4)}: {Padding4}, {nameof(MachineNameAddress)}: {MachineNameAddress}, {nameof(MachineNameSize)}: {MachineNameSize}, {nameof(MachineName)}: {MachineName}, {nameof(Padding5)}: {Padding5}, {nameof(Padding6)}: {Padding6}, {nameof(Padding7)}: {Padding7}, {nameof(Padding8)}: {Padding8}, {nameof(Padding9)}: {Padding9}, {nameof(Padding10)}: {Padding10}, {nameof(EncryptionMode)}: {EncryptionMode}, {nameof(MysteriousId)}: {MysteriousId}, {nameof(AntiAliasLevelInfo)}: {AntiAliasLevelInfo}, {nameof(SoftwareVersion)}: {SoftwareVersion}, {nameof(Padding11)}: {Padding11}, {nameof(Padding12)}: {Padding12}, {nameof(Padding13)}: {Padding13}, {nameof(Padding14)}: {Padding14}, {nameof(Padding15)}: {Padding15}, {nameof(Padding16)}: {Padding16}"; + return $"{nameof(Magic)}: {Magic}, {nameof(Version)}: {Version}, {nameof(LayerHeightMilimeter)}: {LayerHeightMilimeter}, {nameof(LayerExposureSeconds)}: {LayerExposureSeconds}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(PreviewLargeOffsetAddress)}: {PreviewLargeOffsetAddress}, {nameof(LayersDefinitionOffsetAddress)}: {LayersDefinitionOffsetAddress}, {nameof(LayerCount)}: {LayerCount}, {nameof(PreviewSmallOffsetAddress)}: {PreviewSmallOffsetAddress}, {nameof(PrintTime)}: {PrintTime}, {nameof(ProjectorType)}: {ProjectorType}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(LightPWM)}: {LightPWM}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(Padding1)}: {Padding1}, {nameof(Padding2)}: {Padding2}, {nameof(OverallHeightMilimeter)}: {OverallHeightMilimeter}, {nameof(BedSizeX)}: {BedSizeX}, {nameof(BedSizeY)}: {BedSizeY}, {nameof(BedSizeZ)}: {BedSizeZ}, {nameof(EncryptionKey)}: {EncryptionKey}, {nameof(BottomLightOffDelay)}: {BottomLightOffDelay}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(BottomLayersCount2)}: {BottomLayersCount2}, {nameof(Padding3)}: {Padding3}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(VolumeMl)}: {VolumeMl}, {nameof(WeightG)}: {WeightG}, {nameof(CostDollars)}: {CostDollars}, {nameof(Padding4)}: {Padding4}, {nameof(MachineNameAddress)}: {MachineNameAddress}, {nameof(MachineNameSize)}: {MachineNameSize}, {nameof(MachineName)}: {MachineName}, {nameof(Padding5)}: {Padding5}, {nameof(Padding6)}: {Padding6}, {nameof(Padding7)}: {Padding7}, {nameof(Padding8)}: {Padding8}, {nameof(Padding9)}: {Padding9}, {nameof(Padding10)}: {Padding10}, {nameof(EncryptionMode)}: {EncryptionMode}, {nameof(MysteriousId)}: {MysteriousId}, {nameof(AntiAliasLevelInfo)}: {AntiAliasLevelInfo}, {nameof(SoftwareVersion)}: {SoftwareVersion}, {nameof(Padding11)}: {Padding11}, {nameof(Padding12)}: {Padding12}, {nameof(Padding13)}: {Padding13}, {nameof(Padding14)}: {Padding14}, {nameof(Padding15)}: {Padding15}, {nameof(Padding16)}: {Padding16}"; } } #endregion @@ -427,7 +437,7 @@ namespace UVtools.Core.FileFormats /// <summary> /// Gets how long to keep the light off after exposing this layer, in seconds. /// </summary> - [FieldOrder(2)] public float LayerOffTimeSeconds { get; set; } + [FieldOrder(2)] public float LightOffDelay { get; set; } /// <summary> /// Gets the layer image offset to encoded layer data, and its length in bytes. @@ -461,7 +471,7 @@ namespace UVtools.Core.FileFormats { LayerPositionZ = Parent[layerIndex].PositionZ; LayerExposure = Parent[layerIndex].ExposureTime; - LayerOffTimeSeconds = Parent[layerIndex].LayerOffTime; + LightOffDelay = Parent[layerIndex].LightOffDelay; } public unsafe Mat Decode(uint layerIndex, bool consumeData = true) @@ -609,7 +619,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(LayerPositionZ)}: {LayerPositionZ}, {nameof(LayerExposure)}: {LayerExposure}, {nameof(LayerOffTimeSeconds)}: {LayerOffTimeSeconds}, {nameof(DataAddress)}: {DataAddress}, {nameof(DataSize)}: {DataSize}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(Unknown3)}: {Unknown3}, {nameof(Unknown4)}: {Unknown4}"; + return $"{nameof(LayerPositionZ)}: {LayerPositionZ}, {nameof(LayerExposure)}: {LayerExposure}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(DataAddress)}: {DataAddress}, {nameof(DataSize)}: {DataSize}, {nameof(Unknown1)}: {Unknown1}, {nameof(Unknown2)}: {Unknown2}, {nameof(Unknown3)}: {Unknown3}, {nameof(Unknown4)}: {Unknown4}"; } } #endregion @@ -682,25 +692,14 @@ namespace UVtools.Core.FileFormats new FileExtension("phz", "Chitubox PHZ"), }; - public override Type[] ConvertToFormats { get; } = - { - typeof(ChituboxFile), - typeof(ChituboxZipFile), - typeof(FDGFile), - typeof(PhotonWorkshopFile), - typeof(ZCodexFile), - typeof(CWSFile), - typeof(UVJFile), - }; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.BottomLiftHeight, PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -713,7 +712,7 @@ namespace UVtools.Core.FileFormats public override PrintParameterModifier[] PrintParameterPerLayerModifiers { get; } = { PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.LightOffDelay, }; public override byte ThumbnailsCount { get; } = 2; @@ -745,7 +744,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BedSizeX; set { - HeaderSettings.BedSizeX = value; + HeaderSettings.BedSizeX = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -756,19 +755,57 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BedSizeY; set { - HeaderSettings.BedSizeY = value; + HeaderSettings.BedSizeY = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float MaxPrintHeight + { + get => HeaderSettings.BedSizeZ > 0 ? HeaderSettings.BedSizeZ : base.MaxPrintHeight; + set + { + HeaderSettings.BedSizeZ = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override byte AntiAliasing => (byte) HeaderSettings.AntiAliasLevelInfo; + public override bool MirrorDisplay + { + get => HeaderSettings.ProjectorType > 0; + set + { + HeaderSettings.ProjectorType = value ? 1 : 0; + RaisePropertyChanged(); + } + } + + public override byte AntiAliasing + { + get => (byte) HeaderSettings.AntiAliasLevelInfo; + set + { + HeaderSettings.AntiAliasLevelInfo = value.Clamp(1, 16); + RaisePropertyChanged(); + } + } public override float LayerHeight { get => HeaderSettings.LayerHeightMilimeter; set { - HeaderSettings.LayerHeightMilimeter = value; + HeaderSettings.LayerHeightMilimeter = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float PrintHeight + { + get => base.PrintHeight; + set + { + HeaderSettings.OverallHeightMilimeter = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -780,7 +817,7 @@ namespace UVtools.Core.FileFormats HeaderSettings.LayerCount = LayerCount; RaisePropertyChanged(); RaisePropertyChanged(nameof(NormalLayerCount)); - HeaderSettings.OverallHeightMilimeter = TotalHeight; + HeaderSettings.OverallHeightMilimeter = PrintHeight; } } @@ -799,7 +836,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomExposureSeconds; set { - HeaderSettings.BottomExposureSeconds = value; + HeaderSettings.BottomExposureSeconds = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -809,27 +846,27 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LayerExposureSeconds; set { - HeaderSettings.LayerExposureSeconds = value; + HeaderSettings.LayerExposureSeconds = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float BottomLayerOffTime + public override float BottomLightOffDelay { get => HeaderSettings.BottomLightOffDelay; set { - HeaderSettings.BottomLightOffDelay = value; + HeaderSettings.BottomLightOffDelay = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float LayerOffTime + public override float LightOffDelay { - get => HeaderSettings.LayerOffTime; + get => HeaderSettings.LightOffDelay; set { - HeaderSettings.LayerOffTime = value; + HeaderSettings.LightOffDelay = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -839,7 +876,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomLiftHeight; set { - HeaderSettings.BottomLiftHeight = value; + HeaderSettings.BottomLiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -849,7 +886,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LiftHeight; set { - HeaderSettings.LiftHeight = value; + HeaderSettings.LiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -859,7 +896,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomLiftSpeed; set { - HeaderSettings.BottomLiftSpeed = value; + HeaderSettings.BottomLiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -869,7 +906,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LiftSpeed; set { - HeaderSettings.LiftSpeed = value; + HeaderSettings.LiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -879,7 +916,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.RetractSpeed; set { - HeaderSettings.RetractSpeed = value; + HeaderSettings.RetractSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -914,7 +951,7 @@ namespace UVtools.Core.FileFormats } } - public override float UsedMaterial + public override float MaterialMilliliters { get => (float) Math.Round(HeaderSettings.VolumeMl, 2); set @@ -924,6 +961,16 @@ namespace UVtools.Core.FileFormats } } + public override float MaterialGrams + { + get => HeaderSettings.WeightG; + set + { + HeaderSettings.WeightG = (float) Math.Round(value, 2); + RaisePropertyChanged(); + } + } + public override float MaterialCost { get => (float) Math.Round(HeaderSettings.CostDollars, 2); @@ -972,6 +1019,8 @@ namespace UVtools.Core.FileFormats public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); LayersHash.Clear(); @@ -1197,7 +1246,7 @@ namespace UVtools.Core.FileFormats { PositionZ = LayersDefinitions[layerIndex].LayerPositionZ, ExposureTime = LayersDefinitions[layerIndex].LayerExposure, - LayerOffTime = LayersDefinitions[layerIndex].LayerOffTimeSeconds, + LightOffDelay = LayersDefinitions[layerIndex].LightOffDelay, }; } @@ -1252,373 +1301,6 @@ namespace UVtools.Core.FileFormats } } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (to == typeof(ChituboxFile)) - { - ChituboxFile file = new ChituboxFile - { - LayerManager = LayerManager, - HeaderSettings - = - { - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LayerOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = HeaderSettings.PrintTime, - ProjectorType = HeaderSettings.ProjectorType, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - AntiAliasLevel = ValidateAntiAliasingLevel() - }, - PrintParametersSettings = - { - BottomLayerCount = BottomLayerCount, - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - BottomLightOffDelay = HeaderSettings.BottomLightOffDelay, - CostDollars = MaterialCost, - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOffDelay = HeaderSettings.LayerOffTime, - RetractSpeed = HeaderSettings.RetractSpeed, - VolumeMl = UsedMaterial, - WeightG = HeaderSettings.WeightG - }, - SlicerInfoSettings = {MachineName = MachineName, MachineNameSize = (uint) MachineName.Length} - }; - - - - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ChituboxZipFile)) - { - ChituboxZipFile file = new ChituboxZipFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Filename = Path.GetFileName(FileFullPath), - - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - MachineX = HeaderSettings.BedSizeX, - MachineY = HeaderSettings.BedSizeY, - MachineZ = HeaderSettings.BedSizeZ, - MachineType = MachineName, - ProjectType = HeaderSettings.ProjectorType == 0 ? "Normal" : "LCD_mirror", - - Resin = MaterialName, - Price = MaterialCost, - Weight = HeaderSettings.WeightG, - Volume = UsedMaterial, - Mirror = (byte) (HeaderSettings.ProjectorType == 0 ? 0 : 1), - - - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - LiftHeight = HeaderSettings.LiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - LiftSpeed = HeaderSettings.LiftSpeed, - RetractSpeed = HeaderSettings.RetractSpeed, - BottomLayCount = BottomLayerCount, - BottomLayerCount = BottomLayerCount, - BottomLightOffTime = HeaderSettings.BottomLightOffDelay, - LightOffTime = HeaderSettings.LayerOffTime, - BottomLayExposureTime = BottomExposureTime, - BottomLayerExposureTime = BottomExposureTime, - LayerExposureTime = ExposureTime, - LayerHeight = LayerHeight, - LayerCount = LayerCount, - AntiAliasing = ValidateAntiAliasingLevel(), - BottomLightPWM = (byte) HeaderSettings.BottomLightPWM, - LightPWM = (byte) HeaderSettings.LightPWM, - - EstimatedPrintTime = PrintTime - }, - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(FDGFile)) - { - FDGFile file = new FDGFile - { - LayerManager = LayerManager, - HeaderSettings = - { - BedSizeX = HeaderSettings.BedSizeX, - BedSizeY = HeaderSettings.BedSizeY, - BedSizeZ = HeaderSettings.BedSizeZ, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = HeaderSettings.BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = HeaderSettings.LayerOffTime, - LightPWM = HeaderSettings.LightPWM, - PrintTime = HeaderSettings.PrintTime, - ProjectorType = HeaderSettings.ProjectorType, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = HeaderSettings.BottomLiftHeight, - BottomLiftSpeed = HeaderSettings.BottomLiftSpeed, - BottomLightOffDelay = HeaderSettings.BottomLightOffDelay, - CostDollars = MaterialCost, - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - RetractSpeed = HeaderSettings.RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = HeaderSettings.WeightG, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PhotonWorkshopFile)) - { - PhotonWorkshopFile file = new PhotonWorkshopFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = ExposureTime, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed / 60, - RetractSpeed = RetractSpeed / 60, - LayerOffTime = HeaderSettings.LayerOffTime, - BottomLayersCount = BottomLayerCount, - BottomExposureSeconds = BottomExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = HeaderSettings.WeightG, - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = BottomLayerCount, - BottomLayersTime = (uint)(BottomExposureTime * 1000), - LayerTime = (uint)(ExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = BottomLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(ExposureTime * 1000), - BottomLayerExposureTime = (uint)(BottomExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = (byte) (AntiAliasing > 1 ? 1 : 0), - CrossSupportEnabled = 1, - ExposureOffTime = (uint)HeaderSettings.LayerOffTime, - HollowEnabled = 0, - HollowThickness = 0, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount - 1, - ModelLiftEnabled = 0, - ModelLiftHeight = 0, - RaftEnabled = 0, - RaftHeight = 0, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = 0, - YCorrection = 0, - ZLiftDistance = HeaderSettings.LiftHeight, - ZLiftFeedRate = HeaderSettings.LiftSpeed, - ZLiftRetractRate = HeaderSettings.RetractSpeed, - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile { LayerManager = LayerManager }; - - file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = (float)Math.Round(ResolutionX / HeaderSettings.BedSizeX, 3); - file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float)Math.Round(ResolutionY / HeaderSettings.BedSizeY, 3); - file.ResolutionX = (ushort)ResolutionX; - file.ResolutionY = (ushort)ResolutionY; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = BottomLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint)ExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint)BottomExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = (uint)(HeaderSettings.LayerOffTime * 1000); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = LiftHeight; - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = LiftSpeed; - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = RetractSpeed; - file.SliceSettings.LiftWhenFinished = defaultFormat.SliceSettings.LiftWhenFinished; - - file.OutputSettings.BlankingLayerTime = (uint)(HeaderSettings.LayerOffTime * 1000); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - file.OutputSettings.FlipX = HeaderSettings.ProjectorType != 0; - file.OutputSettings.FlipY = file.OutputSettings.FlipX; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - /*file.Printer = MachineName.Contains("Bene4 Mono") || - FileFullPath.Contains("bene4_mono") - ? CWSFile.PrinterType.BeneMono : CWSFile.PrinterType.Elfin;*/ - - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(UVJFile)) - { - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - X = HeaderSettings.BedSizeX, - Y = HeaderSettings.BedSizeY, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = HeaderSettings.BottomLiftHeight, - LiftSpeed = HeaderSettings.BottomLiftSpeed, - LightOnTime = BottomExposureTime, - LightOffTime = HeaderSettings.BottomLightOffDelay, - LightPWM = (byte)HeaderSettings.BottomLightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - Count = BottomLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOnTime = ExposureTime, - LightOffTime = HeaderSettings.LayerOffTime, - LightPWM = (byte)HeaderSettings.LightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } #endregion } } diff --git a/UVtools.Core/FileFormats/PhotonSFile.cs b/UVtools.Core/FileFormats/PhotonSFile.cs index e77b200..4b14faf 100644 --- a/UVtools.Core/FileFormats/PhotonSFile.cs +++ b/UVtools.Core/FileFormats/PhotonSFile.cs @@ -48,7 +48,7 @@ namespace UVtools.Core.FileFormats [FieldOrder(2)] [FieldEndianness(Endianness.Big)] public double XYPixelSize { get; set; } = 0.04725; // 0.04725 [FieldOrder(3)] [FieldEndianness(Endianness.Big)] public double LayerHeight { get; set; } [FieldOrder(4)] [FieldEndianness(Endianness.Big)] public double ExposureSeconds { get; set; } - [FieldOrder(5)] [FieldEndianness(Endianness.Big)] public double LayerOffSeconds { get; set; } + [FieldOrder(5)] [FieldEndianness(Endianness.Big)] public double LightOffDelay { get; set; } [FieldOrder(6)] [FieldEndianness(Endianness.Big)] public double BottomExposureSeconds { get; set; } [FieldOrder(7)] [FieldEndianness(Endianness.Big)] public uint BottomLayerCount { get; set; } [FieldOrder(8)] [FieldEndianness(Endianness.Big)] public double LiftHeight { get; set; } // mm @@ -62,7 +62,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(Tag1)}: {Tag1}, {nameof(Tag2)}: {Tag2}, {nameof(XYPixelSize)}: {XYPixelSize}, {nameof(LayerHeight)}: {LayerHeight}, {nameof(ExposureSeconds)}: {ExposureSeconds}, {nameof(LayerOffSeconds)}: {LayerOffSeconds}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(BottomLayerCount)}: {BottomLayerCount}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(Volume)}: {Volume}, {nameof(PreviewResolutionX)}: {PreviewResolutionX}, {nameof(Unknown2)}: {Unknown2}, {nameof(PreviewResolutionY)}: {PreviewResolutionY}, {nameof(Unknown4)}: {Unknown4}"; + return $"{nameof(Tag1)}: {Tag1}, {nameof(Tag2)}: {Tag2}, {nameof(XYPixelSize)}: {XYPixelSize}, {nameof(LayerHeight)}: {LayerHeight}, {nameof(ExposureSeconds)}: {ExposureSeconds}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(BottomLayerCount)}: {BottomLayerCount}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(Volume)}: {Volume}, {nameof(PreviewResolutionX)}: {PreviewResolutionX}, {nameof(Unknown2)}: {Unknown2}, {nameof(PreviewResolutionY)}: {PreviewResolutionY}, {nameof(Unknown4)}: {Unknown4}"; } } @@ -201,12 +201,7 @@ namespace UVtools.Core.FileFormats public override FileFormatType FileType => FileFormatType.Binary; public override FileExtension[] FileExtensions { get; } = { - new FileExtension("photons", "Chitubox PhotonS"), - }; - - public override Type[] ConvertToFormats { get; } = - { - //typeof(UVJFile), + new("photons", "Chitubox PhotonS"), }; public override PrintParameterModifier[] PrintParameterModifiers { get; } = @@ -215,8 +210,8 @@ namespace UVtools.Core.FileFormats PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - //PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + //PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, //PrintParameterModifier.BottomLiftHeight, //PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -231,18 +226,13 @@ namespace UVtools.Core.FileFormats public override uint ResolutionX { get => Header.ResolutionX; - set - { - - } + set { } } public override uint ResolutionY { get => Header.ResolutionY; - set - { - } + set { } } public override float DisplayWidth @@ -257,14 +247,24 @@ namespace UVtools.Core.FileFormats set { } } - public override byte AntiAliasing => 1; + public override bool MirrorDisplay + { + get => true; + set { } + } + + public override byte AntiAliasing + { + get => 1; + set { } + } public override float LayerHeight { get => (float) Math.Round(HeaderSettings.LayerHeight); set { - HeaderSettings.LayerHeight = value; + HeaderSettings.LayerHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -304,27 +304,17 @@ namespace UVtools.Core.FileFormats get => (float)HeaderSettings.ExposureSeconds; set { - HeaderSettings.ExposureSeconds = value; + HeaderSettings.ExposureSeconds = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - /*public override float BottomLayerOffTime - { - get => HeaderSettings.BottomLightOffDelayMs; - set - { - HeaderSettings.BottomLightOffDelayMs = value; - RaisePropertyChanged(); - } - }*/ - - public override float LayerOffTime + public override float LightOffDelay { - get => (float) HeaderSettings.LayerOffSeconds; + get => (float) HeaderSettings.LightOffDelay; set { - HeaderSettings.LayerOffSeconds = value; + HeaderSettings.LightOffDelay = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -344,7 +334,7 @@ namespace UVtools.Core.FileFormats get => (float) HeaderSettings.LiftHeight; set { - HeaderSettings.LiftHeight = value; + HeaderSettings.LiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -361,26 +351,26 @@ namespace UVtools.Core.FileFormats public override float LiftSpeed { - get => (float) Math.Round(HeaderSettings.LiftSpeed * 60.0); + get => (float) Math.Round(HeaderSettings.LiftSpeed * 60.0, 2); set { - HeaderSettings.LiftSpeed = Math.Round(value / 60.0); + HeaderSettings.LiftSpeed = Math.Round(value / 60.0, 2); RaisePropertyChanged(); } } public override float RetractSpeed { - get => (float)Math.Round(HeaderSettings.RetractSpeed * 60.0); + get => (float)Math.Round(HeaderSettings.RetractSpeed * 60.0, 2); set { - HeaderSettings.RetractSpeed = Math.Round(value / 60.0); + HeaderSettings.RetractSpeed = Math.Round(value / 60.0, 2); RaisePropertyChanged(); } } - public override float UsedMaterial + public override float MaterialMilliliters { get => (float) HeaderSettings.Volume; set @@ -432,6 +422,8 @@ namespace UVtools.Core.FileFormats } public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); //uint currentOffset = (uint)Helpers.Serializer.SizeOf(HeaderSettings); @@ -601,10 +593,6 @@ namespace UVtools.Core.FileFormats } } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - return false; - } #endregion } } diff --git a/UVtools.Core/FileFormats/PhotonWorkshopFile.cs b/UVtools.Core/FileFormats/PhotonWorkshopFile.cs index 0fbaee3..c4b9edc 100644 --- a/UVtools.Core/FileFormats/PhotonWorkshopFile.cs +++ b/UVtools.Core/FileFormats/PhotonWorkshopFile.cs @@ -198,10 +198,10 @@ namespace UVtools.Core.FileFormats public const string SectionMark = "HEADER"; [FieldOrder(0)] public SectionHeader Section { get; set; } - [FieldOrder(1)] public float PixelSize { get; set; } + [FieldOrder(1)] public float PixelSize { get; set; } = 0.04725f; [FieldOrder(2)] public float LayerHeight { get; set; } [FieldOrder(3)] public float LayerExposureTime { get; set; } - [FieldOrder(4)] public float LayerOffTime { get; set; } = 1; + [FieldOrder(4)] public float LightOffDelay { get; set; } = 1; [FieldOrder(5)] public float BottomExposureSeconds { get; set; } [FieldOrder(6)] public float BottomLayersCount { get; set; } [FieldOrder(7)] public float LiftHeight { get; set; } = 6; @@ -218,10 +218,10 @@ namespace UVtools.Core.FileFormats [FieldOrder(11)] public uint AntiAliasing { get; set; } = 1; [FieldOrder(12)] public uint ResolutionX { get; set; } [FieldOrder(13)] public uint ResolutionY { get; set; } - [FieldOrder(14)] public float Weight { get; set; } + [FieldOrder(14)] public float WeightG { get; set; } [FieldOrder(15)] public float Price { get; set; } [FieldOrder(16)] public uint ResinType { get; set; } // 0x24 ? - [FieldOrder(17)] public uint PerLayerOverride { get; set; } // bool + [FieldOrder(17)] public uint PerLayerOverride { get; set; } = 1; // bool [FieldOrder(18)] public uint Offset1 { get; set; } [FieldOrder(19)] public uint Offset2 { get; set; } [FieldOrder(20)] public uint Offset3 { get; set; } @@ -231,7 +231,7 @@ namespace UVtools.Core.FileFormats Section = new SectionHeader(SectionMark, this); } - public override string ToString() => $"{nameof(Section)}: {Section}, {nameof(PixelSize)}: {PixelSize}, {nameof(LayerHeight)}: {LayerHeight}, {nameof(LayerExposureTime)}: {LayerExposureTime}, {nameof(LayerOffTime)}: {LayerOffTime}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(Volume)}: {Volume}, {nameof(AntiAliasing)}: {AntiAliasing}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(Weight)}: {Weight}, {nameof(Price)}: {Price}, {nameof(ResinType)}: {ResinType}, {nameof(PerLayerOverride)}: {PerLayerOverride}, {nameof(Offset1)}: {Offset1}, {nameof(Offset2)}: {Offset2}, {nameof(Offset3)}: {Offset3}"; + public override string ToString() => $"{nameof(Section)}: {Section}, {nameof(PixelSize)}: {PixelSize}, {nameof(LayerHeight)}: {LayerHeight}, {nameof(LayerExposureTime)}: {LayerExposureTime}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(BottomExposureSeconds)}: {BottomExposureSeconds}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(Volume)}: {Volume}, {nameof(AntiAliasing)}: {AntiAliasing}, {nameof(ResolutionX)}: {ResolutionX}, {nameof(ResolutionY)}: {ResolutionY}, {nameof(WeightG)}: {WeightG}, {nameof(Price)}: {Price}, {nameof(ResinType)}: {ResinType}, {nameof(PerLayerOverride)}: {PerLayerOverride}, {nameof(Offset1)}: {Offset1}, {nameof(Offset2)}: {Offset2}, {nameof(Offset3)}: {Offset3}"; public void Validate() { @@ -781,23 +781,14 @@ namespace UVtools.Core.FileFormats }; - public override Type[] ConvertToFormats { get; } = - { - //typeof(ChituboxZipFile) - //typeof(PHZFile), - typeof(PhotonWorkshopFile), - typeof(CWSFile), - typeof(UVJFile), - }; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - //PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + //PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, //PrintParameterModifier.BottomLiftHeight, //PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -846,14 +837,24 @@ namespace UVtools.Core.FileFormats set { } } - public override byte AntiAliasing => (byte) HeaderSettings.AntiAliasing; + public override bool MirrorDisplay + { + get => true; + set {} + } + + public override byte AntiAliasing + { + get => 4; + set { } + } public override float LayerHeight { get => HeaderSettings.LayerHeight; set { - HeaderSettings.LayerHeight = value; + HeaderSettings.LayerHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -883,7 +884,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.BottomExposureSeconds; set { - HeaderSettings.BottomExposureSeconds = value; + HeaderSettings.BottomExposureSeconds = (float) Math.Round(value, 2); RaisePropertyChanged(); } } @@ -893,23 +894,23 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LayerExposureTime; set { - HeaderSettings.LayerExposureTime = value; + HeaderSettings.LayerExposureTime = (float) Math.Round(value, 2); RaisePropertyChanged(); } } - public override float BottomLayerOffTime + public override float BottomLightOffDelay { - get => LayerOffTime; - set => LayerOffTime = value; + get => LightOffDelay; + set => LightOffDelay = value; } - public override float LayerOffTime + public override float LightOffDelay { - get => HeaderSettings.LayerOffTime; + get => HeaderSettings.LightOffDelay; set { - HeaderSettings.LayerOffTime = value; + HeaderSettings.LightOffDelay = (float) Math.Round(value, 2); RaisePropertyChanged(); } } @@ -925,7 +926,7 @@ namespace UVtools.Core.FileFormats get => HeaderSettings.LiftHeight; set { - HeaderSettings.LiftHeight = value; + HeaderSettings.LiftHeight = (float) Math.Round(value, 2); RaisePropertyChanged(); } } @@ -956,7 +957,7 @@ namespace UVtools.Core.FileFormats } } - public override float UsedMaterial + public override float MaterialMilliliters { get => (float) Math.Round(HeaderSettings.Volume, 2); set @@ -966,6 +967,16 @@ namespace UVtools.Core.FileFormats } } + public override float MaterialGrams + { + get => HeaderSettings.WeightG; + set + { + HeaderSettings.WeightG = (float) Math.Round(value, 2); + RaisePropertyChanged(); + } + } + public override float MaterialCost { get => (float) Math.Round(HeaderSettings.Price, 2); @@ -1039,6 +1050,8 @@ namespace UVtools.Core.FileFormats public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); LayersHash.Clear(); @@ -1260,273 +1273,6 @@ namespace UVtools.Core.FileFormats } } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (to == typeof(PhotonWorkshopFile)) - { - if (Path.GetExtension(FileFullPath).Equals(Path.GetExtension(fileFullPath))) - { - return false; - } - PhotonWorkshopFile file = new PhotonWorkshopFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = ExposureTime, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed, - RetractSpeed = RetractSpeed, - LayerOffTime = HeaderSettings.LayerOffTime, - BottomLayersCount = BottomLayerCount, - BottomExposureSeconds = BottomExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = HeaderSettings.Weight, - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - /*if (to == typeof(PHZFile)) - { - PHZFile file = new PHZFile - { - LayerManager = LayerManager - }; - - - file.HeaderSettings.Version = 2; - file.HeaderSettings.BedSizeX = HeaderSettings.BedSizeX; - file.HeaderSettings.BedSizeY = HeaderSettings.BedSizeY; - file.HeaderSettings.BedSizeZ = HeaderSettings.BedSizeZ; - file.HeaderSettings.OverallHeightMilimeter = TotalHeight; - file.HeaderSettings.BottomExposureSeconds = InitialExposureTime; - file.HeaderSettings.BottomLayersCount = InitialLayerCount; - file.HeaderSettings.BottomLightPWM = HeaderSettings.BottomLightPWM; - file.HeaderSettings.LayerCount = LayerCount; - file.HeaderSettings.LayerExposureSeconds = LayerExposureTime; - file.HeaderSettings.LayerHeightMilimeter = LayerHeight; - file.HeaderSettings.LayerOffTime = HeaderSettings.LayerOffTime; - file.HeaderSettings.LightPWM = HeaderSettings.LightPWM; - file.HeaderSettings.PrintTime = HeaderSettings.PrintTime; - file.HeaderSettings.ProjectorType = HeaderSettings.ProjectorType; - file.HeaderSettings.ResolutionX = ResolutionX; - file.HeaderSettings.ResolutionY = ResolutionY; - - file.HeaderSettings.BottomLayerCount = InitialLayerCount; - file.HeaderSettings.BottomLiftHeight = PrintParametersSettings.BottomLiftHeight; - file.HeaderSettings.BottomLiftSpeed = PrintParametersSettings.BottomLiftSpeed; - file.HeaderSettings.BottomLightOffDelay = PrintParametersSettings.BottomLightOffDelay; - file.HeaderSettings.CostDollars = MaterialCost; - file.HeaderSettings.LiftHeight = PrintParametersSettings.LiftHeight; - file.HeaderSettings.LiftingSpeed = PrintParametersSettings.LiftingSpeed; - file.HeaderSettings.LayerOffTime = HeaderSettings.LayerOffTime; - file.HeaderSettings.RetractSpeed = PrintParametersSettings.RetractSpeed; - file.HeaderSettings.VolumeMl = UsedMaterial; - file.HeaderSettings.WeightG = PrintParametersSettings.WeightG; - - file.HeaderSettings.MachineName = MachineName; - file.HeaderSettings.MachineNameSize = (uint) MachineName.Length; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = InitialLayerCount, - BottomLayersTime = (uint)(InitialExposureTime * 1000), - LayerTime = (uint)(LayerExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = InitialLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(LayerExposureTime * 1000), - BottomLayerExposureTime = (uint)(InitialExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = 0, - CrossSupportEnabled = 1, - ExposureOffTime = (uint) HeaderSettings.LayerOffTime, - HollowEnabled = 0, - HollowThickness = 0, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount - 1, - ModelLiftEnabled = 0, - ModelLiftHeight = 0, - RaftEnabled = 0, - RaftHeight = 0, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = 0, - YCorrection = 0, - ZLiftDistance = PrintParametersSettings.LiftHeight, - ZLiftFeedRate = PrintParametersSettings.LiftingSpeed, - ZLiftRetractRate = PrintParametersSettings.RetractSpeed, - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - */ - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile { LayerManager = LayerManager }; - - //file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = defaultFormat.OutputSettings. - //file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float)Math.Round(ResolutionY / HeaderSettings.BedSizeY, 3); - file.ResolutionX = (ushort)ResolutionX; - file.ResolutionY = (ushort)ResolutionY; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = BottomLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint)ExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint)BottomExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = (uint)(HeaderSettings.LayerOffTime * 1000); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = LiftHeight; - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = LiftSpeed; - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = RetractSpeed; - file.SliceSettings.LiftWhenFinished = defaultFormat.SliceSettings.LiftWhenFinished; - - file.OutputSettings.BlankingLayerTime = (uint)(HeaderSettings.LayerOffTime * 1000); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - //file.OutputSettings.FlipX = HeaderSettings. != 0; - //file.OutputSettings.FlipY = file.OutputSettings.FlipX; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - /*file.Printer = MachineName.Contains("Bene4 Mono") || - FileFullPath.Contains("bene4_mono") - ? CWSFile.PrinterType.BeneMono : CWSFile.PrinterType.Elfin;*/ - - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(UVJFile)) - { - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - //X = HeaderSettings.BedSizeX, - //Y = HeaderSettings.BedSizeY, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOnTime = BottomExposureTime, - LightOffTime = HeaderSettings.LayerOffTime, - //LightPWM = (byte)HeaderSettings.LightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - Count = BottomLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = HeaderSettings.LiftHeight, - LiftSpeed = HeaderSettings.LiftSpeed, - LightOnTime = ExposureTime, - LightOffTime = HeaderSettings.LayerOffTime, - //LightPWM = (byte)HeaderSettings.LightPWM, - RetractSpeed = HeaderSettings.RetractSpeed, - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } - #endregion } } diff --git a/UVtools.Core/FileFormats/SL1File.cs b/UVtools.Core/FileFormats/SL1File.cs index e8e2230..cb7997c 100644 --- a/UVtools.Core/FileFormats/SL1File.cs +++ b/UVtools.Core/FileFormats/SL1File.cs @@ -25,9 +25,9 @@ namespace UVtools.Core.FileFormats { #region Constants - public const string Keyword_AntiAliasing = "AntiAliasing"; + public const string Keyword_FileFormat = "FILEFORMAT"; + public const string Keyword_BottomLightOffDelay = "BottomLightOffDelay"; - public const string Keyword_LayerOffTime = "LayerOffTime"; public const string Keyword_LightOffDelay = "LightOffDelay"; public const string Keyword_BottomLiftHeight = "BottomLiftHeight"; public const string Keyword_BottomLiftSpeed = "BottomLiftSpeed"; @@ -45,6 +45,8 @@ namespace UVtools.Core.FileFormats { #region Printer public string InheritsCummulative { get; set; } + public string HostType { get; set; } + public string PhysicalPrinterSettingsId { get; set; } public string PrinterSettingsId { get; set; } public string PrinterTechnology { get; set; } public string PrinterModel { get; set; } @@ -177,6 +179,7 @@ namespace UVtools.Core.FileFormats public byte SupportPillarWideningFactor { set; get; } public float SupportPillarDiameter { get; set; } + public string SupportSmallPillarDiameterPercent { get; set; } public float SupportMaxBridgesOnPillar { get; set; } public string SupportPillarConnectionMode { get; set; } public bool SupportBuildplateOnly { get; set; } @@ -235,7 +238,7 @@ namespace UVtools.Core.FileFormats #region Overrides public override string ToString() { - return $"{nameof(SlaPrintSettingsId)}: {SlaPrintSettingsId}, {nameof(LayerHeight)}: {LayerHeight}, {nameof(FadedLayers)}: {FadedLayers}, {nameof(SupportsEnable)}: {SupportsEnable}, {nameof(SupportHeadFrontDiameter)}: {SupportHeadFrontDiameter}, {nameof(SupportHeadPenetration)}: {SupportHeadPenetration}, {nameof(SupportHeadWidth)}: {SupportHeadWidth}, {nameof(SupportPillarWideningFactor)}: {SupportPillarWideningFactor}, {nameof(SupportPillarDiameter)}: {SupportPillarDiameter}, {nameof(SupportMaxBridgesOnPillar)}: {SupportMaxBridgesOnPillar}, {nameof(SupportPillarConnectionMode)}: {SupportPillarConnectionMode}, {nameof(SupportBuildplateOnly)}: {SupportBuildplateOnly}, {nameof(SupportBaseDiameter)}: {SupportBaseDiameter}, {nameof(SupportBaseHeight)}: {SupportBaseHeight}, {nameof(SupportBaseSafetyDistance)}: {SupportBaseSafetyDistance}, {nameof(PadAroundObject)}: {PadAroundObject}, {nameof(SupportObjectElevation)}: {SupportObjectElevation}, {nameof(SupportCriticalAngle)}: {SupportCriticalAngle}, {nameof(SupportMaxBridgeLength)}: {SupportMaxBridgeLength}, {nameof(SupportMaxPillarLinkDistance)}: {SupportMaxPillarLinkDistance}, {nameof(SupportPointsDensityRelative)}: {SupportPointsDensityRelative}, {nameof(SupportPointsMinimalDistance)}: {SupportPointsMinimalDistance}, {nameof(PadEnable)}: {PadEnable}, {nameof(PadWallThickness)}: {PadWallThickness}, {nameof(PadWallHeight)}: {PadWallHeight}, {nameof(PadBrimSize)}: {PadBrimSize}, {nameof(PadMaxMergeDistance)}: {PadMaxMergeDistance}, {nameof(PadWallSlope)}: {PadWallSlope}, {nameof(PadAroundObjectEverywhere)}: {PadAroundObjectEverywhere}, {nameof(PadObjectGap)}: {PadObjectGap}, {nameof(PadObjectConnectorStride)}: {PadObjectConnectorStride}, {nameof(PadObjectConnectorWidth)}: {PadObjectConnectorWidth}, {nameof(PadObjectConnectorPenetration)}: {PadObjectConnectorPenetration}, {nameof(HollowingEnable)}: {HollowingEnable}, {nameof(HollowingMinThickness)}: {HollowingMinThickness}, {nameof(HollowingQuality)}: {HollowingQuality}, {nameof(HollowingClosingDistance)}: {HollowingClosingDistance}, {nameof(SliceClosingRadius)}: {SliceClosingRadius}, {nameof(OutputFilenameFormat)}: {OutputFilenameFormat}, {nameof(CompatiblePrintsCondition)}: {CompatiblePrintsCondition}"; + return $"{nameof(SlaPrintSettingsId)}: {SlaPrintSettingsId}, {nameof(LayerHeight)}: {LayerHeight}, {nameof(FadedLayers)}: {FadedLayers}, {nameof(SupportsEnable)}: {SupportsEnable}, {nameof(SupportHeadFrontDiameter)}: {SupportHeadFrontDiameter}, {nameof(SupportHeadPenetration)}: {SupportHeadPenetration}, {nameof(SupportHeadWidth)}: {SupportHeadWidth}, {nameof(SupportPillarWideningFactor)}: {SupportPillarWideningFactor}, {nameof(SupportPillarDiameter)}: {SupportPillarDiameter}, {nameof(SupportSmallPillarDiameterPercent)}: {SupportSmallPillarDiameterPercent}, {nameof(SupportMaxBridgesOnPillar)}: {SupportMaxBridgesOnPillar}, {nameof(SupportPillarConnectionMode)}: {SupportPillarConnectionMode}, {nameof(SupportBuildplateOnly)}: {SupportBuildplateOnly}, {nameof(SupportBaseDiameter)}: {SupportBaseDiameter}, {nameof(SupportBaseHeight)}: {SupportBaseHeight}, {nameof(SupportBaseSafetyDistance)}: {SupportBaseSafetyDistance}, {nameof(PadAroundObject)}: {PadAroundObject}, {nameof(SupportObjectElevation)}: {SupportObjectElevation}, {nameof(SupportCriticalAngle)}: {SupportCriticalAngle}, {nameof(SupportMaxBridgeLength)}: {SupportMaxBridgeLength}, {nameof(SupportMaxPillarLinkDistance)}: {SupportMaxPillarLinkDistance}, {nameof(SupportPointsDensityRelative)}: {SupportPointsDensityRelative}, {nameof(SupportPointsMinimalDistance)}: {SupportPointsMinimalDistance}, {nameof(PadEnable)}: {PadEnable}, {nameof(PadWallThickness)}: {PadWallThickness}, {nameof(PadWallHeight)}: {PadWallHeight}, {nameof(PadBrimSize)}: {PadBrimSize}, {nameof(PadMaxMergeDistance)}: {PadMaxMergeDistance}, {nameof(PadWallSlope)}: {PadWallSlope}, {nameof(PadAroundObjectEverywhere)}: {PadAroundObjectEverywhere}, {nameof(PadObjectGap)}: {PadObjectGap}, {nameof(PadObjectConnectorStride)}: {PadObjectConnectorStride}, {nameof(PadObjectConnectorWidth)}: {PadObjectConnectorWidth}, {nameof(PadObjectConnectorPenetration)}: {PadObjectConnectorPenetration}, {nameof(HollowingEnable)}: {HollowingEnable}, {nameof(HollowingMinThickness)}: {HollowingMinThickness}, {nameof(HollowingQuality)}: {HollowingQuality}, {nameof(HollowingClosingDistance)}: {HollowingClosingDistance}, {nameof(SliceClosingRadius)}: {SliceClosingRadius}, {nameof(OutputFilenameFormat)}: {OutputFilenameFormat}, {nameof(CompatiblePrintsCondition)}: {CompatiblePrintsCondition}"; } #endregion } @@ -289,23 +292,8 @@ namespace UVtools.Core.FileFormats public override FileFormatType FileType => FileFormatType.Archive; public override FileExtension[] FileExtensions { get; } = { - new FileExtension("sl1", "PrusaSlicer SL1") + new("sl1", "PrusaSlicer SL1") }; - - public override Type[] ConvertToFormats { get; } = - { - typeof(ChituboxFile), - typeof(ChituboxZipFile), - typeof(PHZFile), - typeof(FDGFile), - typeof(PhotonSFile), - typeof(PhotonWorkshopFile), - typeof(ZCodexFile), - typeof(CWSFile), - typeof(LGSFile), - typeof(UVJFile), - }; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, @@ -342,7 +330,7 @@ namespace UVtools.Core.FileFormats get => PrinterSettings.DisplayWidth; set { - PrinterSettings.DisplayWidth = value; + PrinterSettings.DisplayWidth = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -352,19 +340,44 @@ namespace UVtools.Core.FileFormats get => PrinterSettings.DisplayHeight; set { - PrinterSettings.DisplayHeight = value; + PrinterSettings.DisplayHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override byte AntiAliasing => (byte) (PrinterSettings.GammaCorrection > 0 ? LookupCustomValue(Keyword_AntiAliasing, 4) : 1); + public override float MaxPrintHeight + { + get => PrinterSettings.MaxPrintHeight; + set + { + PrinterSettings.MaxPrintHeight = (float)Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override bool MirrorDisplay + { + get => PrinterSettings.DisplayMirrorX || PrinterSettings.DisplayMirrorY; + set + { + PrinterSettings.DisplayMirrorX = value; + PrinterSettings.DisplayMirrorY = false; + RaisePropertyChanged(); + } + } + + public override byte AntiAliasing + { + get => (byte)PrinterSettings.GammaCorrection > 0 ? 4 : 1; + set => PrinterSettings.GammaCorrection = value > 0 ? 1 : 0; + } public override float LayerHeight { get => OutputConfigSettings.LayerHeight; set { - OutputConfigSettings.LayerHeight = value; + OutputConfigSettings.LayerHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -394,7 +407,7 @@ namespace UVtools.Core.FileFormats get => OutputConfigSettings.ExpTimeFirst; set { - OutputConfigSettings.ExpTimeFirst = value; + OutputConfigSettings.ExpTimeFirst = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -404,7 +417,7 @@ namespace UVtools.Core.FileFormats get => OutputConfigSettings.ExpTime; set { - OutputConfigSettings.ExpTime = value; + OutputConfigSettings.ExpTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -412,20 +425,26 @@ namespace UVtools.Core.FileFormats public override float PrintTime { get => OutputConfigSettings.PrintTime; - set => base.PrintTime = OutputConfigSettings.PrintTime = value; + set => base.PrintTime = OutputConfigSettings.PrintTime = (float)Math.Round(value, 2); } - public override float UsedMaterial + public override float MaterialMilliliters { get => OutputConfigSettings.UsedMaterial; set { - OutputConfigSettings.UsedMaterial = value; + OutputConfigSettings.UsedMaterial = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float MaterialCost => (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.BottleCost / MaterialSettings.BottleVolume, 2); + public override float MaterialGrams + { + get => (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2); + set { } + } + + public override float MaterialCost => MaterialSettings.BottleVolume > 0 ? (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.BottleCost / MaterialSettings.BottleVolume, 2) : 0; public override string MaterialName { @@ -453,7 +472,7 @@ namespace UVtools.Core.FileFormats #region Overrides public override string ToString() { - return $"{nameof(FileFullPath)}: {FileFullPath}, {nameof(MaterialSettings)}: {MaterialSettings}, {nameof(PrintSettings)}: {PrintSettings}, {nameof(OutputConfigSettings)}: {OutputConfigSettings}, {nameof(Statistics)}: {Statistics}, {nameof(LayerCount)}: {LayerCount}, {nameof(TotalHeight)}: {TotalHeight}"; + return $"{nameof(FileFullPath)}: {FileFullPath}, {nameof(MaterialSettings)}: {MaterialSettings}, {nameof(PrintSettings)}: {PrintSettings}, {nameof(OutputConfigSettings)}: {OutputConfigSettings}, {nameof(Statistics)}: {Statistics}, {nameof(LayerCount)}: {LayerCount}, {nameof(PrintHeight)}: {PrintHeight}"; } #endregion @@ -604,6 +623,7 @@ namespace UVtools.Core.FileFormats { var attribute = obj.GetType().GetProperty(fieldName); if (ReferenceEquals(attribute, null)) continue; + //Debug.WriteLine(attribute.Name); Helpers.SetPropertyValue(attribute, obj, keyValue[1]); Statistics.ImplementedKeys.Add(keyValue[0]); @@ -620,15 +640,15 @@ namespace UVtools.Core.FileFormats } } - BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, 5); - BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, 100); - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, 5); - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, 100); - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, 100); - BottomLayerOffTime = LookupCustomValue<float>(Keyword_BottomLightOffDelay, 0); - LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, 0); - BottomLightPWM = LookupCustomValue<byte>(Keyword_BottomLightPWM, 255); - LightPWM = LookupCustomValue<byte>(Keyword_LightPWM, 255); + BottomLiftHeight = LookupCustomValue(Keyword_BottomLiftHeight, DefaultBottomLiftHeight); + BottomLiftSpeed = LookupCustomValue(Keyword_BottomLiftSpeed, DefaultBottomLiftSpeed); + LiftHeight = LookupCustomValue(Keyword_LiftHeight, DefaultLiftHeight); + LiftSpeed = LookupCustomValue(Keyword_LiftSpeed, DefaultLiftSpeed); + RetractSpeed = LookupCustomValue(Keyword_RetractSpeed, DefaultRetractSpeed); + BottomLightOffDelay = LookupCustomValue(Keyword_BottomLightOffDelay, DefaultBottomLightOffDelay); + LightOffDelay = LookupCustomValue(Keyword_LightOffDelay, DefaultLightOffDelay); + BottomLightPWM = LookupCustomValue(Keyword_BottomLightPWM, DefaultLightPWM); + LightPWM = LookupCustomValue(Keyword_LightPWM, DefaultBottomLightPWM); LayerManager = new LayerManager((uint) (OutputConfigSettings.NumSlow + OutputConfigSettings.NumFast), this); @@ -733,559 +753,6 @@ namespace UVtools.Core.FileFormats } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (!IsValid) return false; - - if (to == typeof(ChituboxFile)) - { - ChituboxFile defaultFormat = (ChituboxFile)FindByType(typeof(ChituboxFile)); - ChituboxFile file = new ChituboxFile - { - LayerManager = LayerManager, - HeaderSettings = - { - BedSizeX = PrinterSettings.DisplayWidth, - BedSizeY = PrinterSettings.DisplayHeight, - BedSizeZ = PrinterSettings.MaxPrintHeight, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = LookupCustomValue<ushort>(Keyword_BottomLightPWM, defaultFormat.HeaderSettings.BottomLightPWM), - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LayerOffTime), - LightPWM = LookupCustomValue<ushort>(Keyword_LightPWM, defaultFormat.HeaderSettings.LightPWM), - PrintTime = (uint) OutputConfigSettings.PrintTime, - ProjectorType = PrinterSettings.DisplayMirrorX || PrinterSettings.DisplayMirrorY ? 1u : 0u, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - AntiAliasLevel = ValidateAntiAliasingLevel() - }, - PrintParametersSettings = - { - BottomLayerCount = PrintSettings.FadedLayers, - BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, - defaultFormat.PrintParametersSettings.BottomLiftHeight), - BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, - defaultFormat.PrintParametersSettings.BottomLiftSpeed), - BottomLightOffDelay = LookupCustomValue<float>(Keyword_BottomLightOffDelay, - defaultFormat.PrintParametersSettings.BottomLightOffDelay), - CostDollars = MaterialCost, - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, - defaultFormat.PrintParametersSettings.LiftHeight), - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, - defaultFormat.PrintParametersSettings.LiftSpeed), - LightOffDelay = LookupCustomValue<float>(Keyword_LightOffDelay, - defaultFormat.PrintParametersSettings.LightOffDelay), - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, - defaultFormat.PrintParametersSettings.RetractSpeed), - VolumeMl = UsedMaterial, - WeightG = (float) Math.Round( - OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2) - }, - SlicerInfoSettings = {MachineName = MachineName, MachineNameSize = (uint) MachineName.Length} - }; - - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsY; - file.HeaderSettings.ResolutionY = PrinterSettings.DisplayPixelsX; - - file.HeaderSettings.BedSizeX = PrinterSettings.DisplayHeight; - file.HeaderSettings.BedSizeY = PrinterSettings.DisplayWidth; - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ChituboxZipFile)) - { - ChituboxZipFile defaultFormat = (ChituboxZipFile)FindByType(typeof(ChituboxZipFile)); - ChituboxZipFile file = new ChituboxZipFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Filename = Path.GetFileName(FileFullPath), - - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - MachineX = PrinterSettings.DisplayWidth, - MachineY = PrinterSettings.DisplayHeight, - MachineZ = PrinterSettings.MaxPrintHeight, - MachineType = MachineName, - ProjectType = PrinterSettings.DisplayMirrorX || PrinterSettings.DisplayMirrorY ? "LCD_mirror" : "Normal", - - Resin = MaterialName, - Price = MaterialCost, - Weight = (float) Math.Round(UsedMaterial * MaterialSettings.MaterialDensity, 2), - Volume = UsedMaterial, - Mirror = (byte) (PrinterSettings.DisplayMirrorX || PrinterSettings.DisplayMirrorY ? 1 : 0), - - - BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, defaultFormat.HeaderSettings.BottomLiftHeight), - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.HeaderSettings.LiftHeight), - BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, defaultFormat.HeaderSettings.BottomLiftSpeed), - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftSpeed), - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.HeaderSettings.RetractSpeed), - BottomLayCount = BottomLayerCount, - BottomLayerCount = BottomLayerCount, - BottomLightOffTime = LookupCustomValue<float>(Keyword_BottomLightOffDelay, defaultFormat.HeaderSettings.BottomLightOffTime), - LightOffTime = LookupCustomValue<float>(Keyword_LightOffDelay, defaultFormat.HeaderSettings.LightOffTime), - BottomLayExposureTime = BottomExposureTime, - BottomLayerExposureTime = BottomExposureTime, - LayerExposureTime = ExposureTime, - LayerHeight = LayerHeight, - LayerCount = LayerCount, - AntiAliasing = ValidateAntiAliasingLevel(), - BottomLightPWM = LookupCustomValue<byte>(Keyword_BottomLightPWM, defaultFormat.HeaderSettings.BottomLightPWM), - LightPWM = LookupCustomValue<byte>(Keyword_LightPWM, defaultFormat.HeaderSettings.LightPWM), - - EstimatedPrintTime = PrintTime - }, - }; - - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsY; - file.HeaderSettings.ResolutionY = PrinterSettings.DisplayPixelsX; - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PhotonWorkshopFile)) - { - PhotonWorkshopFile defaultFormat = (PhotonWorkshopFile)FindByType(typeof(PhotonWorkshopFile)); - PhotonWorkshopFile file = new PhotonWorkshopFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = ExposureTime, - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.HeaderSettings.LiftHeight), - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftSpeed) / 60, - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.HeaderSettings.RetractSpeed) / 60, - LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LayerOffTime), - BottomLayersCount = BottomLayerCount, - BottomExposureSeconds = BottomExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2), - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsY; - file.HeaderSettings.ResolutionY = PrinterSettings.DisplayPixelsX; - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PHZFile)) - { - PHZFile defaultFormat = (PHZFile)FindByType(typeof(PHZFile)); - PHZFile file = new PHZFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Version = 2, - BedSizeX = PrinterSettings.DisplayWidth, - BedSizeY = PrinterSettings.DisplayHeight, - BedSizeZ = PrinterSettings.MaxPrintHeight, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = MaterialSettings.InitialExposureTime, - BottomLayersCount = PrintSettings.FadedLayers, - BottomLightPWM = LookupCustomValue<ushort>(Keyword_BottomLightPWM, defaultFormat.HeaderSettings.BottomLightPWM), - LayerCount = LayerCount, - LayerExposureSeconds = MaterialSettings.ExposureTime, - LayerHeightMilimeter = PrintSettings.LayerHeight, - LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LayerOffTime), - LightPWM = LookupCustomValue<ushort>(Keyword_LightPWM, defaultFormat.HeaderSettings.LightPWM), - PrintTime = (uint) OutputConfigSettings.PrintTime, - ProjectorType = PrinterSettings.DisplayMirrorX || PrinterSettings.DisplayMirrorY ? 1u : 0u, - ResolutionX = PrinterSettings.DisplayPixelsX, - ResolutionY = PrinterSettings.DisplayPixelsY, - BottomLayersCount2 = PrintSettings.FadedLayers, - BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, defaultFormat.HeaderSettings.BottomLiftHeight), - BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, defaultFormat.HeaderSettings.BottomLiftSpeed), - BottomLightOffDelay = LookupCustomValue<float>(Keyword_BottomLightOffDelay, defaultFormat.HeaderSettings.BottomLightOffDelay), - CostDollars = MaterialCost, - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.HeaderSettings.LiftHeight), - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftSpeed), - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.HeaderSettings.RetractSpeed), - VolumeMl = OutputConfigSettings.UsedMaterial, - WeightG = (float)Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2), - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length, - AntiAliasLevelInfo = ValidateAntiAliasingLevel() - } - }; - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.HeaderSettings.ResolutionX = ResolutionY; - file.HeaderSettings.ResolutionY = ResolutionX; - - file.HeaderSettings.BedSizeX = PrinterSettings.DisplayHeight; - file.HeaderSettings.BedSizeY = PrinterSettings.DisplayWidth; - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(FDGFile)) - { - FDGFile defaultFormat = (FDGFile)FindByType(typeof(FDGFile)); - FDGFile file = new FDGFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Version = 2, - BedSizeX = PrinterSettings.DisplayWidth, - BedSizeY = PrinterSettings.DisplayHeight, - BedSizeZ = PrinterSettings.MaxPrintHeight, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = MaterialSettings.InitialExposureTime, - BottomLayersCount = PrintSettings.FadedLayers, - BottomLightPWM = LookupCustomValue<ushort>(Keyword_BottomLightPWM, defaultFormat.HeaderSettings.BottomLightPWM), - LayerCount = LayerCount, - LayerExposureSeconds = MaterialSettings.ExposureTime, - LayerHeightMilimeter = PrintSettings.LayerHeight, - LayerOffTime = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LayerOffTime), - LightPWM = LookupCustomValue<ushort>(Keyword_LightPWM, defaultFormat.HeaderSettings.LightPWM), - PrintTime = (uint) OutputConfigSettings.PrintTime, - ProjectorType = PrinterSettings.DisplayMirrorX || PrinterSettings.DisplayMirrorY ? 1u : 0u, - ResolutionX = PrinterSettings.DisplayPixelsX, - ResolutionY = PrinterSettings.DisplayPixelsY, - BottomLayersCount2 = PrintSettings.FadedLayers, - BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, defaultFormat.HeaderSettings.BottomLiftHeight), - BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, defaultFormat.HeaderSettings.BottomLiftSpeed), - BottomLightOffDelay = LookupCustomValue<float>(Keyword_BottomLightOffDelay, defaultFormat.HeaderSettings.BottomLightOffDelay), - CostDollars = MaterialCost, - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.HeaderSettings.LiftHeight), - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftSpeed), - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.HeaderSettings.RetractSpeed), - VolumeMl = OutputConfigSettings.UsedMaterial, - WeightG = (float)Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 2), - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length, - AntiAliasLevelInfo = ValidateAntiAliasingLevel() - } - }; - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.HeaderSettings.ResolutionX = ResolutionY; - file.HeaderSettings.ResolutionY = ResolutionX; - - file.HeaderSettings.BedSizeX = PrinterSettings.DisplayHeight; - file.HeaderSettings.BedSizeY = PrinterSettings.DisplayWidth; - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PhotonSFile)) - { - PhotonSFile defaultFormat = (PhotonSFile)FindByType(typeof(PhotonSFile)); - PhotonSFile file = new PhotonSFile - { - LayerManager = LayerManager, - HeaderSettings = - { - BottomExposureSeconds = MaterialSettings.InitialExposureTime, - BottomLayerCount = PrintSettings.FadedLayers, - ExposureSeconds = MaterialSettings.ExposureTime, - LayerHeight = PrintSettings.LayerHeight, - LayerOffSeconds = LookupCustomValue<double>(Keyword_LayerOffTime, DefaultLightOffDelay), - LiftHeight = LookupCustomValue<double>(Keyword_LiftHeight, DefaultLiftHeight), - LiftSpeed = LookupCustomValue<double>(Keyword_LiftSpeed, DefaultLiftSpeed), - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, DefaultRetractSpeed), - Volume = OutputConfigSettings.UsedMaterial, - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - ZCodexFile defaultFormat = (ZCodexFile)FindByType(typeof(ZCodexFile)); - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = BottomLayerCount, - BottomLayersTime = (uint)(BottomExposureTime*1000), - LayerTime = (uint)(ExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = BottomLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(ExposureTime * 1000), - BottomLayerExposureTime = (uint)(BottomExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = (byte) (ValidateAntiAliasingLevel() > 1 ? 1 : 0), - CrossSupportEnabled = 1, - ExposureOffTime = LookupCustomValue<uint>(Keyword_LayerOffTime, defaultFormat.UserSettings.ExposureOffTime) * 1000, - HollowEnabled = PrintSettings.HollowingEnable ? (byte)1 : (byte)0, - HollowThickness = PrintSettings.HollowingMinThickness, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount-1, - ModelLiftEnabled = PrintSettings.SupportObjectElevation > 0 ? (byte)1 : (byte)0, - ModelLiftHeight = PrintSettings.SupportObjectElevation, - RaftEnabled = PrintSettings.SupportBaseHeight > 0 ? (byte)1 : (byte)0, - RaftHeight = PrintSettings.SupportBaseHeight, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = PrinterSettings.AbsoluteCorrection, - YCorrection = PrinterSettings.AbsoluteCorrection, - ZLiftDistance = (float)Math.Round(LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.UserSettings.ZLiftDistance), 2), - ZLiftFeedRate = (float)Math.Round(LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.UserSettings.ZLiftFeedRate), 2), - ZLiftRetractRate = (float)Math.Round(LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.UserSettings.ZLiftRetractRate), 2), - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile {LayerManager = LayerManager}; - - file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = (float) Math.Round(LookupCustomValue<float>("Xppm", defaultFormat.SliceSettings.Xppm), 3); - file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float) Math.Round(LookupCustomValue<float>("Yppm", defaultFormat.SliceSettings.Xppm), 3); - file.ResolutionX = (ushort)ResolutionX; - file.ResolutionY = (ushort)ResolutionY; - file.OutputSettings.PlatformXSize = PrinterSettings.DisplayWidth; - file.OutputSettings.PlatformYSize = PrinterSettings.DisplayHeight; - file.OutputSettings.PlatformZSize = PrinterSettings.MaxPrintHeight; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = BottomLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint) ExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint) BottomExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = LookupCustomValue<uint>("WaitBeforeExpoMs", defaultFormat.SliceSettings.WaitBeforeExpoMs); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = (float) Math.Round(LookupCustomValue<float>(Keyword_LiftHeight, file.SliceSettings.LiftDistance), 2); - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = file.OutputSettings.ZBottomLiftFeedRate = (float) Math.Round(LookupCustomValue<float>(Keyword_LiftSpeed, file.SliceSettings.LiftUpSpeed), 2); - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = (float) Math.Round(LookupCustomValue<float>(Keyword_RetractSpeed, file.SliceSettings.LiftDownSpeed), 2); - file.SliceSettings.LiftWhenFinished = LookupCustomValue<byte>("LiftWhenFinished", defaultFormat.SliceSettings.LiftWhenFinished); - - file.OutputSettings.BlankingLayerTime = LookupCustomValue<uint>("BlankingLayerTime", defaultFormat.OutputSettings.BlankingLayerTime); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - file.OutputSettings.FlipX = PrinterSettings.DisplayMirrorX; - file.OutputSettings.FlipY = PrinterSettings.DisplayMirrorY; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.SliceSettings.Xres = file.OutputSettings.XResolution = (ushort) ResolutionY; - file.SliceSettings.Yres = file.OutputSettings.YResolution = (ushort) ResolutionX; - - file.OutputSettings.PlatformXSize = PrinterSettings.DisplayHeight; - file.OutputSettings.PlatformYSize = PrinterSettings.DisplayWidth; - } - - file.Printer = LookupCustomValue<bool>("NOVAMAKER_GRAY2RGB_ENCODE", false, true) || - MachineName.Contains("Bene4 Mono") || - FileFullPath.Contains("bene4_mono") - ? CWSFile.PrinterType.BeneMono : CWSFile.PrinterType.Unknown; - - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(LGSFile)) - { - LGSFile defaultFormat = (LGSFile)FindByType(typeof(LGSFile)); - LGSFile file = new LGSFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - ExposureTimeMs = ExposureTime * 1000, - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.HeaderSettings.LiftHeight), - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftSpeed), - LiftSpeed_ = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.HeaderSettings.LiftSpeed), - LightOffDelayMs = LookupCustomValue<float>(Keyword_LayerOffTime, defaultFormat.HeaderSettings.LightOffDelayMs) * 1000, - BottomHeight = BottomLayerCount * LayerHeight, - BottomExposureTimeMs = BottomExposureTime * 1000, - LayerCount = LayerCount, - BottomLiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, defaultFormat.HeaderSettings.BottomLiftSpeed), - BottomLiftSpeed_ = LookupCustomValue<float>(Keyword_BottomLiftSpeed, defaultFormat.HeaderSettings.BottomLiftSpeed_), - BottomLiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, defaultFormat.HeaderSettings.BottomLiftHeight), - BottomLightOffDelayMs = LookupCustomValue<float>(Keyword_BottomLightOffDelay, defaultFormat.HeaderSettings.BottomLightOffDelayMs) * 1000, - PixelPerMmX = (float) Math.Round(ResolutionY / PrinterSettings.DisplayWidth, 3), - PixelPerMmY = (float) Math.Round(ResolutionX / PrinterSettings.DisplayHeight, 3), - } - }; - - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.HeaderSettings.ResolutionX = PrinterSettings.DisplayPixelsY; - file.HeaderSettings.ResolutionY = PrinterSettings.DisplayPixelsX; - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(UVJFile)) - { - UVJFile defaultFormat = (UVJFile)FindByType(typeof(UVJFile)); - UVJFile file = new UVJFile - { - LayerManager = LayerManager, - JsonSettings = new UVJFile.Settings - { - Properties = new UVJFile.Properties - { - Size = new UVJFile.Size - { - X = (ushort)ResolutionX, - Y = (ushort)ResolutionY, - Millimeter = new UVJFile.Millimeter - { - X = PrinterSettings.DisplayWidth, - Y = PrinterSettings.DisplayHeight, - }, - LayerHeight = LayerHeight, - Layers = LayerCount - }, - Bottom = new UVJFile.Bottom - { - LiftHeight = LookupCustomValue<float>(Keyword_BottomLiftHeight, defaultFormat.JsonSettings.Properties.Bottom.LiftHeight), - LiftSpeed = LookupCustomValue<float>(Keyword_BottomLiftSpeed, defaultFormat.JsonSettings.Properties.Bottom.LiftSpeed), - LightOnTime = BottomExposureTime, - LightOffTime = LookupCustomValue<float>(Keyword_BottomLightOffDelay, defaultFormat.JsonSettings.Properties.Bottom.LightOffTime), - LightPWM = LookupCustomValue<byte>(Keyword_BottomLightPWM, defaultFormat.JsonSettings.Properties.Bottom.LightPWM), - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.JsonSettings.Properties.Bottom.RetractSpeed), - Count = BottomLayerCount - //RetractHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Bottom.RetractHeight), - }, - Exposure = new UVJFile.Exposure - { - LiftHeight = LookupCustomValue<float>(Keyword_LiftHeight, defaultFormat.JsonSettings.Properties.Exposure.LiftHeight), - LiftSpeed = LookupCustomValue<float>(Keyword_LiftSpeed, defaultFormat.JsonSettings.Properties.Exposure.LiftSpeed), - LightOnTime = ExposureTime, - LightOffTime = LookupCustomValue<float>(Keyword_LightOffDelay, defaultFormat.JsonSettings.Properties.Exposure.LightOffTime), - LightPWM = LookupCustomValue<byte>(Keyword_LightPWM, defaultFormat.JsonSettings.Properties.Exposure.LightPWM), - RetractSpeed = LookupCustomValue<float>(Keyword_RetractSpeed, defaultFormat.JsonSettings.Properties.Exposure.RetractSpeed), - }, - AntiAliasLevel = ValidateAntiAliasingLevel() - } - } - }; - - if (LookupCustomValue<bool>("FLIP_XY", false, true)) - { - file.JsonSettings.Properties.Size.X = (ushort) ResolutionY; - file.JsonSettings.Properties.Size.Y = (ushort) ResolutionX; - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } - public T LookupCustomValue<T>(string name, T defaultValue, bool existsOnly = false) { if (string.IsNullOrEmpty(PrinterSettings.PrinterNotes)) return defaultValue; @@ -1305,10 +772,18 @@ namespace UVtools.Core.FileFormats for (int x = 0; x < value.Length; x++) { char c = value[x]; - if (!char.IsLetterOrDigit(c) && c != '.') + if (typeof(T) == typeof(string)) { - break; + if (char.IsWhiteSpace(c)) break; + } + else + { + if (!char.IsLetterOrDigit(c) && c != '.') + { + break; + } } + result += c; } diff --git a/UVtools.Core/FileFormats/UVJFile.cs b/UVtools.Core/FileFormats/UVJFile.cs index e57e319..c74f438 100644 --- a/UVtools.Core/FileFormats/UVJFile.cs +++ b/UVtools.Core/FileFormats/UVJFile.cs @@ -125,24 +125,12 @@ namespace UVtools.Core.FileFormats #endregion #region Properties - public Settings JsonSettings { get; set; } = new Settings(); + public Settings JsonSettings { get; set; } = new(); public override FileFormatType FileType => FileFormatType.Archive; public override FileExtension[] FileExtensions { get; } = { - new FileExtension("uvj", "UVJ") - }; - - public override Type[] ConvertToFormats { get; } = - { - typeof(ChituboxFile), - typeof(ChituboxZipFile), - typeof(PHZFile), - typeof(FDGFile), - typeof(PhotonWorkshopFile), - typeof(ZCodexFile), - typeof(CWSFile), - //typeof(LGSFile) + new("uvj", "UVJ") }; public override PrintParameterModifier[] PrintParameterModifiers { get; } = { @@ -150,8 +138,8 @@ namespace UVtools.Core.FileFormats PrintParameterModifier.BottomExposureSeconds, PrintParameterModifier.ExposureSeconds, - PrintParameterModifier.BottomLayerOffTime, - PrintParameterModifier.LayerOffTime, + PrintParameterModifier.BottomLightOffDelay, + PrintParameterModifier.LightOffDelay, PrintParameterModifier.BottomLiftHeight, PrintParameterModifier.BottomLiftSpeed, PrintParameterModifier.LiftHeight, @@ -191,7 +179,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Size.Millimeter.X; set { - JsonSettings.Properties.Size.Millimeter.X = value; + JsonSettings.Properties.Size.Millimeter.X = (float) Math.Round(value, 2); RaisePropertyChanged(); } } @@ -201,12 +189,23 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Size.Millimeter.Y; set { - JsonSettings.Properties.Size.Millimeter.Y = value; + JsonSettings.Properties.Size.Millimeter.Y = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override byte AntiAliasing => JsonSettings.Properties.AntiAliasLevel; + public override bool MirrorDisplay { get; set; } + + public override byte AntiAliasing + { + get => JsonSettings.Properties.AntiAliasLevel; + set + { + JsonSettings.Properties.AntiAliasLevel = value.Clamp(1, 16); + RaisePropertyChanged(); + } + + } public override bool SupportPerLayerSettings => true; @@ -215,7 +214,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Size.LayerHeight; set { - JsonSettings.Properties.Size.LayerHeight = value; + JsonSettings.Properties.Size.LayerHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -245,7 +244,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Bottom.LightOnTime; set { - JsonSettings.Properties.Bottom.LightOnTime = value; + JsonSettings.Properties.Bottom.LightOnTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -255,27 +254,27 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Exposure.LightOnTime; set { - JsonSettings.Properties.Exposure.LightOnTime = value; + JsonSettings.Properties.Exposure.LightOnTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float BottomLayerOffTime + public override float BottomLightOffDelay { get => JsonSettings.Properties.Bottom.LightOffTime; set { - JsonSettings.Properties.Bottom.LightOffTime = value; + JsonSettings.Properties.Bottom.LightOffTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } - public override float LayerOffTime + public override float LightOffDelay { get => JsonSettings.Properties.Exposure.LightOffTime; set { - JsonSettings.Properties.Exposure.LightOffTime = value; + JsonSettings.Properties.Exposure.LightOffTime = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -285,7 +284,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Bottom.LiftHeight; set { - JsonSettings.Properties.Bottom.LiftHeight = value; + JsonSettings.Properties.Bottom.LiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -295,7 +294,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Exposure.LiftHeight; set { - JsonSettings.Properties.Exposure.LiftHeight = value; + JsonSettings.Properties.Exposure.LiftHeight = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -305,7 +304,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Bottom.LiftSpeed; set { - JsonSettings.Properties.Bottom.LiftSpeed = value; + JsonSettings.Properties.Bottom.LiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -315,7 +314,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Exposure.LiftSpeed; set { - JsonSettings.Properties.Exposure.LiftSpeed = value; + JsonSettings.Properties.Exposure.LiftSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -325,7 +324,7 @@ namespace UVtools.Core.FileFormats get => JsonSettings.Properties.Exposure.RetractSpeed; set { - JsonSettings.Properties.Exposure.RetractSpeed = value; + JsonSettings.Properties.Exposure.RetractSpeed = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -363,6 +362,9 @@ namespace UVtools.Core.FileFormats public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); + base.Encode(fileFullPath, progress); // Redo layer data @@ -379,7 +381,7 @@ namespace UVtools.Core.FileFormats LiftSpeed = layer.LiftSpeed, RetractHeight = layer.LiftHeight+1, RetractSpeed = layer.RetractSpeed, - LightOffTime = layer.LayerOffTime, + LightOffTime = layer.LightOffDelay, LightOnTime = layer.ExposureTime, LightPWM = layer.LightPWM } @@ -486,7 +488,7 @@ namespace UVtools.Core.FileFormats LiftHeight = JsonSettings.Layers.Count >= layerIndex ? JsonSettings.Layers[(int)layerIndex].Exposure.LiftHeight : GetInitialLayerValueOrNormal(layerIndex, BottomLiftHeight, LiftHeight), LiftSpeed = JsonSettings.Layers.Count >= layerIndex ? JsonSettings.Layers[(int)layerIndex].Exposure.LiftSpeed : GetInitialLayerValueOrNormal(layerIndex, BottomLiftSpeed, LiftSpeed), RetractSpeed = JsonSettings.Layers.Count >= layerIndex ? JsonSettings.Layers[(int)layerIndex].Exposure.RetractSpeed : RetractSpeed, - LayerOffTime = JsonSettings.Layers.Count >= layerIndex ? JsonSettings.Layers[(int)layerIndex].Exposure.LightOffTime : GetInitialLayerValueOrNormal(layerIndex, BottomLayerOffTime, LayerOffTime), + LightOffDelay = JsonSettings.Layers.Count >= layerIndex ? JsonSettings.Layers[(int)layerIndex].Exposure.LightOffTime : GetInitialLayerValueOrNormal(layerIndex, BottomLightOffDelay, LightOffDelay), ExposureTime = JsonSettings.Layers.Count >= layerIndex ? JsonSettings.Layers[(int)layerIndex].Exposure.LightOnTime : GetInitialLayerValueOrNormal(layerIndex, BottomExposureTime, ExposureTime), LightPWM = JsonSettings.Layers.Count >= layerIndex ? JsonSettings.Layers[(int)layerIndex].Exposure.LightPWM : GetInitialLayerValueOrNormal(layerIndex, BottomLightPWM, LightPWM), }; @@ -524,366 +526,6 @@ namespace UVtools.Core.FileFormats //Decode(FileFullPath, progress); } - - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - if (to == typeof(ChituboxFile)) - { - ChituboxFile file = new ChituboxFile - { - - LayerManager = LayerManager, - HeaderSettings - = - { - BedSizeX = DisplayWidth, - BedSizeY = DisplayHeight, - BedSizeZ = TotalHeight, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = LayerOffTime, - LightPWM = LightPWM, - PrintTime = (uint) PrintTimeOrComputed, - ProjectorType = 0, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - AntiAliasLevel = ValidateAntiAliasingLevel() - }, - PrintParametersSettings = - { - BottomLayerCount = BottomLayerCount, - BottomLiftHeight = BottomLiftHeight, - BottomLiftSpeed = BottomLiftSpeed, - BottomLightOffDelay = BottomLayerOffTime, - CostDollars = MaterialCost, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed, - LightOffDelay = LayerOffTime, - RetractSpeed = RetractSpeed, - VolumeMl = UsedMaterial, - WeightG = 0 - }, - SlicerInfoSettings = { MachineName = MachineName, MachineNameSize = (uint)MachineName.Length } - }; - - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ChituboxZipFile)) - { - ChituboxZipFile file = new ChituboxZipFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Filename = Path.GetFileName(FileFullPath), - - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - MachineX = DisplayWidth, - MachineY = DisplayHeight, - MachineZ = TotalHeight, - MachineType = MachineName, - ProjectType = "Normal", - - Resin = MaterialName, - Price = MaterialCost, - Weight = 0, - Volume = UsedMaterial, - Mirror = 0, - - - BottomLiftHeight = BottomLiftHeight, - LiftHeight = LiftHeight, - BottomLiftSpeed = BottomLiftSpeed, - LiftSpeed = LiftSpeed, - RetractSpeed = RetractSpeed, - BottomLayCount = BottomLayerCount, - BottomLayerCount = BottomLayerCount, - BottomLightOffTime = BottomLayerOffTime, - LightOffTime = LayerOffTime, - BottomLayExposureTime = BottomExposureTime, - BottomLayerExposureTime = BottomExposureTime, - LayerExposureTime = ExposureTime, - LayerHeight = LayerHeight, - LayerCount = LayerCount, - AntiAliasing = ValidateAntiAliasingLevel(), - BottomLightPWM = BottomLightPWM, - LightPWM = LightPWM, - - EstimatedPrintTime = PrintTime - }, - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PHZFile)) - { - PHZFile file = new PHZFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Version = 2, - BedSizeX = DisplayWidth, - BedSizeY = DisplayHeight, - BedSizeZ = TotalHeight, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = LayerOffTime, - LightPWM = LightPWM, - PrintTime = (uint) PrintTimeOrComputed, - ProjectorType = 0, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = BottomLiftHeight, - BottomLiftSpeed = BottomLiftSpeed, - BottomLightOffDelay = BottomLayerOffTime, - CostDollars = MaterialCost, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed, - RetractSpeed = RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = 0, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(FDGFile)) - { - FDGFile file = new FDGFile - { - LayerManager = LayerManager, - HeaderSettings = - { - Version = 2, - BedSizeX = DisplayWidth, - BedSizeY = DisplayHeight, - BedSizeZ = TotalHeight, - OverallHeightMilimeter = TotalHeight, - BottomExposureSeconds = BottomExposureTime, - BottomLayersCount = BottomLayerCount, - BottomLightPWM = BottomLightPWM, - LayerCount = LayerCount, - LayerExposureSeconds = ExposureTime, - LayerHeightMilimeter = LayerHeight, - LayerOffTime = LayerOffTime, - LightPWM = LightPWM, - PrintTime = (uint) PrintTimeOrComputed, - ProjectorType = 0, - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - BottomLayersCount2 = BottomLayerCount, - BottomLiftHeight = BottomLiftHeight, - BottomLiftSpeed = BottomLiftSpeed, - BottomLightOffDelay = BottomLayerOffTime, - CostDollars = MaterialCost, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed, - RetractSpeed = RetractSpeed, - VolumeMl = UsedMaterial, - AntiAliasLevelInfo = ValidateAntiAliasingLevel(), - WeightG = 0, - MachineName = MachineName, - MachineNameSize = (uint)MachineName.Length - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(PhotonWorkshopFile)) - { - PhotonWorkshopFile file = new PhotonWorkshopFile - { - LayerManager = LayerManager, - HeaderSettings = - { - ResolutionX = ResolutionX, - ResolutionY = ResolutionY, - LayerHeight = LayerHeight, - LayerExposureTime = ExposureTime, - LiftHeight = LiftHeight, - LiftSpeed = LiftSpeed / 60, - RetractSpeed = RetractSpeed / 60, - LayerOffTime = LayerOffTime, - BottomLayersCount = BottomLayerCount, - BottomExposureSeconds = BottomExposureTime, - Price = MaterialCost, - Volume = UsedMaterial, - Weight = 0, - AntiAliasing = ValidateAntiAliasingLevel() - } - }; - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - - return true; - } - - if (to == typeof(ZCodexFile)) - { - TimeSpan ts = new TimeSpan(0, 0, (int)PrintTime); - ZCodexFile file = new ZCodexFile - { - ResinMetadataSettings = new ZCodexFile.ResinMetadata - { - MaterialId = 2, - Material = MaterialName, - AdditionalSupportLayerTime = 0, - BottomLayersNumber = BottomLayerCount, - BottomLayersTime = (uint)(BottomExposureTime * 1000), - LayerTime = (uint)(ExposureTime * 1000), - DisableSettingsChanges = false, - LayerThickness = LayerHeight, - PrintTime = (uint)PrintTime, - TotalLayersCount = LayerCount, - TotalMaterialVolumeUsed = UsedMaterial, - TotalMaterialWeightUsed = UsedMaterial, - }, - UserSettings = new ZCodexFile.UserSettingsdata - { - Printer = MachineName, - BottomLayersCount = BottomLayerCount, - PrintTime = $"{ts.Hours}h {ts.Minutes}m", - LayerExposureTime = (uint)(ExposureTime * 1000), - BottomLayerExposureTime = (uint)(BottomExposureTime * 1000), - MaterialId = 2, - LayerThickness = $"{LayerHeight} mm", - AntiAliasing = (byte)(AntiAliasing > 1 ? 1 : 0), - CrossSupportEnabled = 1, - ExposureOffTime = (uint)LayerOffTime, - HollowEnabled = 0, - HollowThickness = 0, - InfillDensity = 0, - IsAdvanced = 0, - MaterialType = MaterialName, - MaterialVolume = UsedMaterial, - MaxLayer = LayerCount - 1, - ModelLiftEnabled = 0, - ModelLiftHeight = 0, - RaftEnabled = 0, - RaftHeight = 0, - RaftOffset = 0, - SupportAdditionalExposureEnabled = 0, - SupportAdditionalExposureTime = 0, - XCorrection = 0, - YCorrection = 0, - ZLiftDistance = LiftHeight, - ZLiftFeedRate = LiftSpeed, - ZLiftRetractRate = RetractSpeed, - }, - ZCodeMetadataSettings = new ZCodexFile.ZCodeMetadata - { - PrintTime = (uint)PrintTime, - PrinterName = MachineName, - Materials = new List<ZCodexFile.ZCodeMetadata.MaterialsData> - { - new ZCodexFile.ZCodeMetadata.MaterialsData - { - Name = MaterialName, - ExtruderType = "MAIN", - Id = 0, - Usage = 0, - Temperature = 0 - } - }, - }, - LayerManager = LayerManager - }; - - float usedMaterial = UsedMaterial / LayerCount; - for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) - { - file.ResinMetadataSettings.Layers.Add(new ZCodexFile.ResinMetadata.LayerData - { - Layer = layerIndex, - UsedMaterialVolume = usedMaterial - }); - } - - file.SetThumbnails(Thumbnails); - file.Encode(fileFullPath, progress); - return true; - } - - if (to == typeof(CWSFile)) - { - CWSFile defaultFormat = (CWSFile)FindByType(typeof(CWSFile)); - CWSFile file = new CWSFile { LayerManager = LayerManager }; - - file.SliceSettings.Xppm = file.OutputSettings.PixPermmX = (float)Math.Round(ResolutionX / DisplayWidth, 3); - file.SliceSettings.Yppm = file.OutputSettings.PixPermmY = (float)Math.Round(ResolutionY / DisplayHeight, 3); - file.ResolutionX = (ushort)ResolutionX; - file.ResolutionY = (ushort)ResolutionY; - file.SliceSettings.Thickness = file.OutputSettings.LayerThickness = LayerHeight; - file.SliceSettings.LayersNum = file.OutputSettings.LayersNum = LayerCount; - file.SliceSettings.HeadLayersNum = file.OutputSettings.NumberBottomLayers = BottomLayerCount; - file.SliceSettings.LayersExpoMs = file.OutputSettings.LayerTime = (uint)ExposureTime * 1000; - file.SliceSettings.HeadLayersExpoMs = file.OutputSettings.BottomLayersTime = (uint)BottomExposureTime * 1000; - file.SliceSettings.WaitBeforeExpoMs = (uint)(LayerOffTime * 1000); - file.SliceSettings.LiftDistance = file.OutputSettings.LiftDistance = LiftHeight; - file.SliceSettings.LiftUpSpeed = file.OutputSettings.ZLiftFeedRate = LiftSpeed; - file.SliceSettings.LiftDownSpeed = file.OutputSettings.ZLiftRetractRate = RetractSpeed; - file.SliceSettings.LiftWhenFinished = defaultFormat.SliceSettings.LiftWhenFinished; - - file.OutputSettings.BlankingLayerTime = (uint)(LayerOffTime * 1000); - //file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.OutlineWidthInset = 0; - //file.OutputSettings.OutlineWidthOutset = 0; - file.OutputSettings.RenderOutlines = false; - //file.OutputSettings.TiltValue = 0; - //file.OutputSettings.UseMainliftGCodeTab = false; - //file.OutputSettings.AntiAliasing = 0; - //file.OutputSettings.AntiAliasingValue = 0; - file.OutputSettings.FlipX = false; - file.OutputSettings.FlipY = file.OutputSettings.FlipX; - file.OutputSettings.AntiAliasingValue = ValidateAntiAliasingLevel(); - file.OutputSettings.AntiAliasing = file.OutputSettings.AntiAliasingValue > 1; - - /*file.Printer = MachineName.Contains("Bene4 Mono") || - FileFullPath.Contains("bene4_mono") - ? CWSFile.PrinterType.BeneMono : CWSFile.PrinterType.Elfin;*/ - - file.Encode(fileFullPath, progress); - - return true; - } - - return false; - } - #endregion } } diff --git a/UVtools.Core/FileFormats/ZCodexFile.cs b/UVtools.Core/FileFormats/ZCodexFile.cs index 79d738a..208cd29 100644 --- a/UVtools.Core/FileFormats/ZCodexFile.cs +++ b/UVtools.Core/FileFormats/ZCodexFile.cs @@ -15,6 +15,7 @@ using System.Text; using System.Text.RegularExpressions; using Emgu.CV; using Emgu.CV.CvEnum; +using Emgu.CV.Stitching; using Emgu.CV.Util; using Newtonsoft.Json; using UVtools.Core.Extensions; @@ -62,7 +63,7 @@ namespace UVtools.Core.FileFormats public uint TotalLayersCount { get; set; } public bool DisableSettingsChanges { get; set; } - public List<LayerData> Layers { get; set; } = new List<LayerData>(); + public List<LayerData> Layers { get; set; } = new(); } public class UserSettingsdata @@ -85,7 +86,7 @@ namespace UVtools.Core.FileFormats //public uint LayerThicknessesDisplayTime { get; set; } arr public uint ExposureOffTime { get; set; } = 5; public uint BottomLayerExposureTime { get; set; } - public uint BottomLayersCount { get; set; } + public ushort BottomLayersCount { get; set; } public byte SupportAdditionalExposureEnabled { get; set; } public uint SupportAdditionalExposureTime { get; set; } public float ZLiftDistance { get; set; } = 5; @@ -115,7 +116,18 @@ namespace UVtools.Core.FileFormats public string MinFirmwareVersion { get; set; } = "20013"; public uint PrinterModelEnumId { get; set; } = 40; public string PrinterName { get; set; } = "Inkspire"; - public List<MaterialsData> Materials { get; set; } + + public List<MaterialsData> Materials { get; set; } = new() + { + new MaterialsData + { + Name = "", + ExtruderType = "MAIN", + Id = 0, + Usage = 0, + Temperature = 0 + } + }; public byte HeatbedTemperature { get; set; } public byte ChamberTemperature { get; set; } public uint CommandCount { get; set; } @@ -139,20 +151,18 @@ namespace UVtools.Core.FileFormats #endregion #region Properties - public ResinMetadata ResinMetadataSettings { get; set; } = new ResinMetadata(); - public UserSettingsdata UserSettings { get; set; } = new UserSettingsdata(); - public ZCodeMetadata ZCodeMetadataSettings { get; set; } = new ZCodeMetadata(); + public ResinMetadata ResinMetadataSettings { get; set; } = new(); + public UserSettingsdata UserSettings { get; set; } = new(); + public ZCodeMetadata ZCodeMetadataSettings { get; set; } = new(); - public List<LayerData> LayersSettings { get; } = new List<LayerData>(); + public List<LayerData> LayersSettings { get; } = new(); public override FileFormatType FileType => FileFormatType.Archive; public override FileExtension[] FileExtensions { get; } = { - new FileExtension("zcodex", "Z-Suite ZCodex") + new("zcodex", "Z-Suite ZCodex") }; - public override Type[] ConvertToFormats { get; } = null; - public override PrintParameterModifier[] PrintParameterModifiers { get; } = { PrintParameterModifier.BottomLayerCount, PrintParameterModifier.BottomExposureSeconds, @@ -160,8 +170,9 @@ namespace UVtools.Core.FileFormats PrintParameterModifier.LiftHeight, - PrintParameterModifier.RetractSpeed, PrintParameterModifier.LiftSpeed, + PrintParameterModifier.RetractSpeed, + PrintParameterModifier.LightOffDelay }; public override PrintParameterModifier[] PrintParameterPerLayerModifiers { get; } = { @@ -173,18 +184,18 @@ namespace UVtools.Core.FileFormats public override byte ThumbnailsCount { get; } = 1; - public override System.Drawing.Size[] ThumbnailsOriginalSize { get; } = {new System.Drawing.Size(320, 180)}; + public override System.Drawing.Size[] ThumbnailsOriginalSize { get; } = {new(320, 180)}; public override uint ResolutionX { get => 1440; - set => throw new NotImplementedException(); + set { } } public override uint ResolutionY { get => 2560; - set => throw new NotImplementedException(); + set { } } public override float DisplayWidth @@ -198,14 +209,30 @@ namespace UVtools.Core.FileFormats set { } } - public override byte AntiAliasing => UserSettings.AntiAliasing; + public override bool MirrorDisplay + { + get => true; + set { } + } + + public override byte AntiAliasing + { + get => UserSettings.AntiAliasing; + set + { + UserSettings.AntiAliasing = value.Clamp(1, 16); + RaisePropertyChanged(); + } + + } public override float LayerHeight { get => ResinMetadataSettings.LayerThickness; set { - ResinMetadataSettings.LayerThickness = value; + ResinMetadataSettings.LayerThickness = (float)Math.Round(value, 2); + UserSettings.LayerThickness = $"{ResinMetadataSettings.LayerThickness} mm"; RaisePropertyChanged(); } } @@ -214,8 +241,8 @@ namespace UVtools.Core.FileFormats { set { - UserSettings.MaxLayer = LastLayerIndex; ResinMetadataSettings.TotalLayersCount = LayerCount; + UserSettings.MaxLayer = LastLayerIndex; RaisePropertyChanged(); RaisePropertyChanged(nameof(NormalLayerCount)); } @@ -226,7 +253,7 @@ namespace UVtools.Core.FileFormats get => ResinMetadataSettings.BottomLayersNumber; set { - ResinMetadataSettings.BottomLayersNumber = value; + ResinMetadataSettings.BottomLayersNumber = UserSettings.BottomLayersCount = value; RaisePropertyChanged(); } } @@ -236,7 +263,7 @@ namespace UVtools.Core.FileFormats get => (float) Math.Round(UserSettings.BottomLayerExposureTime / 1000f, 2); set { - UserSettings.BottomLayerExposureTime = (uint) (value * 1000f); + ResinMetadataSettings.BottomLayersTime = UserSettings.BottomLayerExposureTime = (uint) (value * 1000f); RaisePropertyChanged(); } } @@ -246,7 +273,7 @@ namespace UVtools.Core.FileFormats get => (float) Math.Round(UserSettings.LayerExposureTime / 1000f, 2); set { - UserSettings.LayerExposureTime = (uint) (value * 1000f); + ResinMetadataSettings.LayerTime = UserSettings.LayerExposureTime = (uint) (value * 1000f); RaisePropertyChanged(); } } @@ -256,7 +283,7 @@ namespace UVtools.Core.FileFormats get => UserSettings.ZLiftDistance; set { - UserSettings.ZLiftDistance = value; + UserSettings.ZLiftDistance = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -266,7 +293,7 @@ namespace UVtools.Core.FileFormats get => UserSettings.ZLiftFeedRate; set { - UserSettings.ZLiftFeedRate = value; + UserSettings.ZLiftFeedRate = (float)Math.Round(value, 2); RaisePropertyChanged(); } } @@ -276,27 +303,50 @@ namespace UVtools.Core.FileFormats get => UserSettings.ZLiftRetractRate; set { - UserSettings.ZLiftRetractRate = value; + UserSettings.ZLiftRetractRate = (float)Math.Round(value, 2); RaisePropertyChanged(); } } + public override float LightOffDelay + { + get => (float) Math.Round(ResinMetadataSettings.BlankingLayerTime / 1000f, 2); + set + { + UserSettings.ExposureOffTime = ResinMetadataSettings.BlankingLayerTime = (uint)(value * 1000); + RaisePropertyChanged(); + } + } + + public override float PrintTime { get => ResinMetadataSettings.PrintTime; set { + TimeSpan ts = new TimeSpan(0, 0, (int)value); ResinMetadataSettings.PrintTime = (uint) value; + UserSettings.PrintTime = $"{ts.Hours}h {ts.Minutes}m"; base.PrintTime = value; } } - public override float UsedMaterial + public override float MaterialMilliliters { get => ResinMetadataSettings.TotalMaterialVolumeUsed; set { - ResinMetadataSettings.TotalMaterialVolumeUsed = (float) Math.Round(value, 2); + UserSettings.MaterialVolume = ResinMetadataSettings.TotalMaterialVolumeUsed = (float) Math.Round(value, 2); + RaisePropertyChanged(); + } + } + + public override float MaterialGrams + { + get => ResinMetadataSettings.TotalMaterialWeightUsed; + set + { + ResinMetadataSettings.TotalMaterialWeightUsed = (float) Math.Round(value, 2); RaisePropertyChanged(); } } @@ -334,7 +384,21 @@ namespace UVtools.Core.FileFormats public override void Encode(string fileFullPath, OperationProgress progress = null) { + progress ??= new OperationProgress(); + progress.Reset(OperationProgress.StatusEncodeLayers, LayerCount); base.Encode(fileFullPath, progress); + + float usedMaterial = MaterialMilliliters / LayerCount; + ResinMetadataSettings.Layers.Clear(); + for (uint layerIndex = 0; layerIndex < LayerCount; layerIndex++) + { + ResinMetadataSettings.Layers.Add(new ResinMetadata.LayerData + { + Layer = layerIndex, + UsedMaterialVolume = usedMaterial + }); + } + using (ZipArchive outputFile = ZipFile.Open(fileFullPath, ZipArchiveMode.Create)) { outputFile.PutFileContent("ResinMetadata", JsonConvert.SerializeObject(ResinMetadataSettings), ZipArchiveMode.Create); @@ -606,10 +670,6 @@ M106 S0 //Decode(FileFullPath, progress); } - public override bool Convert(Type to, string fileFullPath, OperationProgress progress = null) - { - throw new NotImplementedException(); - } #endregion } } diff --git a/UVtools.Core/Helpers.cs b/UVtools.Core/Helpers.cs index faf36b9..a3f2d54 100644 --- a/UVtools.Core/Helpers.cs +++ b/UVtools.Core/Helpers.cs @@ -71,7 +71,7 @@ namespace UVtools.Core return true; case "boolean": if(char.IsDigit(value[0])) - attribute.SetValue(obj, !value.Equals(0)); + attribute.SetValue(obj, !value.Equals("0")); else attribute.SetValue(obj, value.Equals("True", StringComparison.InvariantCultureIgnoreCase)); return true; diff --git a/UVtools.Core/Layer/Layer.cs b/UVtools.Core/Layer/Layer.cs index 568692b..ebec600 100644 --- a/UVtools.Core/Layer/Layer.cs +++ b/UVtools.Core/Layer/Layer.cs @@ -84,13 +84,13 @@ namespace UVtools.Core /// <summary> /// Gets or sets the layer off time in seconds /// </summary> - public float LayerOffTime + public float LightOffDelay { - get => _layerOffTime; + get => _lightOffDelay; set { - if (value <= 0) value = SlicerFile.GetInitialLayerValueOrNormal(Index, SlicerFile.BottomLayerOffTime, SlicerFile.LayerOffTime); - RaiseAndSetIfChanged(ref _layerOffTime, value); + if (value <= 0) value = SlicerFile.GetInitialLayerValueOrNormal(Index, SlicerFile.BottomLightOffDelay, SlicerFile.LightOffDelay); + RaiseAndSetIfChanged(ref _lightOffDelay, value); } } @@ -162,7 +162,7 @@ namespace UVtools.Core private uint _index; private float _positionZ; private float _exposureTime; - private float _layerOffTime = FileFormat.DefaultLightOffDelay; + private float _lightOffDelay = FileFormat.DefaultLightOffDelay; private float _liftHeight = FileFormat.DefaultLiftHeight; private float _liftSpeed = FileFormat.DefaultLiftSpeed; private float _retractSpeed = FileFormat.DefaultRetractSpeed; @@ -348,7 +348,7 @@ namespace UVtools.Core public override string ToString() { - return $"{nameof(Index)}: {Index}, {nameof(Filename)}: {Filename}, {nameof(NonZeroPixelCount)}: {NonZeroPixelCount}, {nameof(BoundingRectangle)}: {BoundingRectangle}, {nameof(IsBottomLayer)}: {IsBottomLayer}, {nameof(IsNormalLayer)}: {IsNormalLayer}, {nameof(PositionZ)}: {PositionZ}, {nameof(ExposureTime)}: {ExposureTime}, {nameof(LayerOffTime)}: {LayerOffTime}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(LightPWM)}: {LightPWM}, {nameof(IsModified)}: {IsModified}"; + return $"{nameof(Index)}: {Index}, {nameof(Filename)}: {Filename}, {nameof(NonZeroPixelCount)}: {NonZeroPixelCount}, {nameof(BoundingRectangle)}: {BoundingRectangle}, {nameof(IsBottomLayer)}: {IsBottomLayer}, {nameof(IsNormalLayer)}: {IsNormalLayer}, {nameof(PositionZ)}: {PositionZ}, {nameof(ExposureTime)}: {ExposureTime}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(LightPWM)}: {LightPWM}, {nameof(IsModified)}: {IsModified}"; } #endregion @@ -410,9 +410,9 @@ namespace UVtools.Core return true; } - if (ReferenceEquals(modifier, FileFormat.PrintParameterModifier.LayerOffTime)) + if (ReferenceEquals(modifier, FileFormat.PrintParameterModifier.LightOffDelay)) { - LayerOffTime = (float)value; + LightOffDelay = (float)value; return true; } @@ -641,7 +641,7 @@ namespace UVtools.Core LiftHeight = _liftHeight, LiftSpeed = _liftSpeed, RetractSpeed = _retractSpeed, - LayerOffTime = _layerOffTime, + LightOffDelay = _lightOffDelay, LightPWM = _lightPwm, BoundingRectangle = _boundingRectangle, NonZeroPixelCount = _nonZeroPixelCount, diff --git a/UVtools.Core/Layer/LayerIssue.cs b/UVtools.Core/Layer/LayerIssue.cs index 02ed9ce..fb55675 100644 --- a/UVtools.Core/Layer/LayerIssue.cs +++ b/UVtools.Core/Layer/LayerIssue.cs @@ -69,9 +69,9 @@ namespace UVtools.Core public byte BinaryThreshold { get; set; } = 1; /// <summary> - /// Gets the required area size (x*y) to consider process a island (0-255) + /// Gets the required area size (x*y) to consider process a island (0-65535) /// </summary> - public byte RequiredAreaToProcessCheck { get; set; } = 1; + public ushort RequiredAreaToProcessCheck { get; set; } = 1; /// <summary> /// Gets the required brightness for check a pixel under a island (0-255) diff --git a/UVtools.Core/Layer/LayerManager.cs b/UVtools.Core/Layer/LayerManager.cs index 5a2924c..8095b3f 100644 --- a/UVtools.Core/Layer/LayerManager.cs +++ b/UVtools.Core/Layer/LayerManager.cs @@ -192,7 +192,7 @@ namespace UVtools.Core layer.LiftSpeed = SlicerFile.GetInitialLayerValueOrNormal(layerIndex, SlicerFile.BottomLiftSpeed, SlicerFile.LiftSpeed); layer.RetractSpeed = SlicerFile.RetractSpeed; layer.LightPWM = SlicerFile.GetInitialLayerValueOrNormal(layerIndex, SlicerFile.BottomLightPWM, SlicerFile.LightPWM); - layer.LayerOffTime = SlicerFile.GetInitialLayerValueOrNormal(layerIndex, SlicerFile.BottomLayerOffTime, SlicerFile.LayerOffTime); + layer.LightOffDelay = SlicerFile.GetInitialLayerValueOrNormal(layerIndex, SlicerFile.BottomLightOffDelay, SlicerFile.LightOffDelay); if (recalculateZPos) { diff --git a/UVtools.Core/Operations/OperationCalculator.cs b/UVtools.Core/Operations/OperationCalculator.cs index f5a086e..ec9b90e 100644 --- a/UVtools.Core/Operations/OperationCalculator.cs +++ b/UVtools.Core/Operations/OperationCalculator.cs @@ -31,6 +31,7 @@ namespace UVtools.Core.Operations public MillimetersToPixels CalcMillimetersToPixels { get; set; } public LightOffDelayC CalcLightOffDelay { get; set; } + public OptimalModelTilt CalcOptimalModelTilt { get; set; } public OperationCalculator() { @@ -140,7 +141,7 @@ namespace UVtools.Core.Operations private decimal _bottomWaitTime = 3m; public override string Description => - "Calculates the required light-off delay (Moving time from the build plate + additional time for resin to stabilize) given The lifting height, speed and retract to wait x seconds before cure a new layer.\n" + + "Calculates the required light-off delay (Moving time from the build plate + additional time for resin to stabilize) given the lifting height, speed and retract to wait x seconds before cure a new layer.\n" + "Light-off delay is crucial for gaining higher-resolution and sharper prints.\n" + "When the build plate retracts, it is important to allow enough time for the resin to stabilize before the UV lights turn on. This would ideally be around 2-3s."; @@ -295,5 +296,104 @@ namespace UVtools.Core.Operations } + + public sealed class OptimalModelTilt : Calculation + { + private uint _resolutionX; + private uint _resolutionY; + private decimal _displayWidth; + private decimal _displayHeight; + private decimal _layerHeight = 0.05m; + + public override string Description => "Calculates the optimal model tilt angle for printing and to minimize the visual layer effect."; + public override string Formula => "Angleº = tanh(Layer height / XYResolution) * (180 / PI)"; + + public OptimalModelTilt(Size resolution, SizeF display, decimal layerHeight = 0.05m) + { + _resolutionX = (uint)resolution.Width; + _resolutionY = (uint)resolution.Height; + + _displayWidth = (decimal)display.Width; + _displayHeight = (decimal)display.Height; + + _layerHeight = layerHeight; + } + + public uint ResolutionX + { + get => _resolutionX; + set + { + if (!RaiseAndSetIfChanged(ref _resolutionX, value)) return; + RaisePropertyChanged(nameof(XYResolution)); + RaisePropertyChanged(nameof(XYResolutionUm)); + RaisePropertyChanged(nameof(TiltAngleDegrees)); + } + } + + public uint ResolutionY + { + get => _resolutionY; + set + { + if (!RaiseAndSetIfChanged(ref _resolutionY, value)) return; + RaisePropertyChanged(nameof(XYResolution)); + RaisePropertyChanged(nameof(XYResolutionUm)); + RaisePropertyChanged(nameof(TiltAngleDegrees)); + } + } + + public decimal DisplayWidth + { + get => _displayWidth; + set + { + if (!RaiseAndSetIfChanged(ref _displayWidth, value)) return; + RaisePropertyChanged(nameof(XYResolution)); + RaisePropertyChanged(nameof(XYResolutionUm)); + RaisePropertyChanged(nameof(TiltAngleDegrees)); + } + } + + public decimal DisplayHeight + { + get => _displayHeight; + set + { + if (!RaiseAndSetIfChanged(ref _displayHeight, value)) return; + RaisePropertyChanged(nameof(XYResolution)); + RaisePropertyChanged(nameof(XYResolutionUm)); + RaisePropertyChanged(nameof(TiltAngleDegrees)); + } + } + + public decimal LayerHeight + { + get => _layerHeight; + set + { + if (!RaiseAndSetIfChanged(ref _layerHeight, value)) return; + RaisePropertyChanged(nameof(XYResolution)); + RaisePropertyChanged(nameof(XYResolutionUm)); + RaisePropertyChanged(nameof(TiltAngleDegrees)); + } + } + + public decimal XYResolution => DisplayWidth > 0 || DisplayHeight > 0 ? + Math.Max( + DisplayWidth / ResolutionX, + DisplayHeight / ResolutionY + ) + : 0; + + public decimal XYResolutionUm => Math.Round(XYResolution * 1000, 2); + + public decimal TiltAngleDegrees => + XYResolution > 0 ? (decimal) Math.Round(Math.Tanh((double) (_layerHeight / XYResolution)) * (180 / Math.PI), 3) : 0; + + + + + } } } diff --git a/UVtools.Core/Operations/OperationRepairLayers.cs b/UVtools.Core/Operations/OperationRepairLayers.cs index e46d3c2..9b48ab5 100644 --- a/UVtools.Core/Operations/OperationRepairLayers.cs +++ b/UVtools.Core/Operations/OperationRepairLayers.cs @@ -31,7 +31,7 @@ namespace UVtools.Core.Operations private bool _repairIslands = true; private bool _repairResinTraps = true; private bool _removeEmptyLayers = true; - private byte _removeIslandsBelowEqualPixelCount = 5; + private ushort _removeIslandsBelowEqualPixelCount = 5; private ushort _removeIslandsRecursiveIterations = 4; private uint _gapClosingIterations = 1; private uint _noiseRemovalIterations; @@ -83,7 +83,7 @@ namespace UVtools.Core.Operations set => RaiseAndSetIfChanged(ref _removeEmptyLayers, value); } - public byte RemoveIslandsBelowEqualPixelCount + public ushort RemoveIslandsBelowEqualPixelCount { get => _removeIslandsBelowEqualPixelCount; set => RaiseAndSetIfChanged(ref _removeIslandsBelowEqualPixelCount, value); @@ -120,8 +120,6 @@ namespace UVtools.Core.Operations { progress ??= new OperationProgress(); - - // Remove islands if (!ReferenceEquals(Issues, null) && !ReferenceEquals(IslandDetectionConfig, null) @@ -144,7 +142,7 @@ namespace UVtools.Core.Operations var emptyLayersConfig = false; islandConfig.Enabled = true; - islandConfig.RequiredAreaToProcessCheck = (byte)Math.Ceiling(RemoveIslandsBelowEqualPixelCount / 2m); + islandConfig.RequiredAreaToProcessCheck = (ushort) Math.Floor(RemoveIslandsBelowEqualPixelCount / 2m); for (uint i = 0; i < limit; i++) { diff --git a/UVtools.Core/UVtools.Core.csproj b/UVtools.Core/UVtools.Core.csproj index cd0664b..9fd54de 100644 --- a/UVtools.Core/UVtools.Core.csproj +++ b/UVtools.Core/UVtools.Core.csproj @@ -10,7 +10,7 @@ <RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl> <PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl> <Description>MSLA/DLP, file analysis, calibration, repair, conversion and manipulation</Description> - <Version>2.2.0</Version> + <Version>2.3.0</Version> <Copyright>Copyright © 2020 PTRTECH</Copyright> <PackageIcon>UVtools.png</PackageIcon> <Platforms>AnyCPU;x64</Platforms> diff --git a/UVtools.WPF/App.axaml.cs b/UVtools.WPF/App.axaml.cs index c4b717a..440cfff 100644 --- a/UVtools.WPF/App.axaml.cs +++ b/UVtools.WPF/App.axaml.cs @@ -241,7 +241,7 @@ namespace UVtools.WPF string description = ((AssemblyDescriptionAttribute)attributes[0]).Description + $"{Environment.NewLine}{Environment.NewLine}Available File Formats:"; - return FileFormat.AvaliableFormats.SelectMany(fileFormat => fileFormat.FileExtensions).Aggregate(description, (current, fileExtension) => current + $"{Environment.NewLine}- {fileExtension.Description} (.{fileExtension.Extension})"); + return FileFormat.AvailableFormats.SelectMany(fileFormat => fileFormat.FileExtensions).Aggregate(description, (current, fileExtension) => current + $"{Environment.NewLine}- {fileExtension.Description} (.{fileExtension.Extension})"); } } diff --git a/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon S.ini b/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon S.ini deleted file mode 100644 index a0e3071..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon S.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:30:11 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 165 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_S\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon Zero.ini b/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon Zero.ini deleted file mode 100644 index 3f312b4..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon Zero.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:11:02 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,55.4x0,55.4x98.6,0x98.6 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 98.6 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 480 -display_pixels_y = 854 -display_width = 55.4 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 150 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_ZERO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nLiftHeight_6\nLiftingSpeed_60\nRetractSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon.ini b/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon.ini deleted file mode 100644 index 28922c3..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/AnyCubic Photon.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:09:41 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 155 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Creality LD-002H.ini b/UVtools.WPF/Assets/PrusaSlicer/Creality LD-002H.ini deleted file mode 100644 index f64c265..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Creality LD-002H.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:00 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 130.56 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1620 -display_pixels_y = 2560 -display_width = 82.62 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 160 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_002H\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_50\nLiftSpeed_50\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Creality LD-002R.ini b/UVtools.WPF/Assets/PrusaSlicer/Creality LD-002R.ini deleted file mode 100644 index e4bdfbd..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Creality LD-002R.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:06 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 160 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_002R\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Creality LD-006.ini b/UVtools.WPF/Assets/PrusaSlicer/Creality LD-006.ini deleted file mode 100644 index 8a88238..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Creality LD-006.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:10 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2400 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 245 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_LD_006\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_80\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX E10 Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX E10 Mono.ini deleted file mode 100644 index 3d8c0c7..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX E10 Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:14 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2400 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 250 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_E10_Mono\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX E6 Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX E6 Mono.ini deleted file mode 100644 index aab4ae4..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX E6 Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:18 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,81x0,81x128,0x128 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 128 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1620 -display_pixels_y = 2560 -display_width = 81 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 155 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_E6_Mono\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX X1.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX X1.ini deleted file mode 100644 index 80d13c0..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX X1.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:43:50 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 155 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX X10 4K Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX X10 4K Mono.ini deleted file mode 100644 index ca8583e..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX X10 4K Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:24 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2400 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 250 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10_4KMONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX X10.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX X10.ini deleted file mode 100644 index dae3c2d..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX X10.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:44:05 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,135.36x0,135.36x216.57,0x216.57 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 216.57 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1600 -display_pixels_y = 2560 -display_width = 135.36 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 250 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X10\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX X133 4K Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX X133 4K Mono.ini deleted file mode 100644 index 73ed4b5..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX X133 4K Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:27 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,293.76x0,293.76x165.24,0x165.24 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 165.24 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 293.76 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 400 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X133_4KMONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX X156 4K Color.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX X156 4K Color.ini deleted file mode 100644 index 6f47841..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX X156 4K Color.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:32 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,345.6x0,345.6x194.4,0x194.4 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 194.4 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 345.6 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 400 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X156_4KCOLOR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_40\nLiftSpeed_40\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/EPAX X1K 2K Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/EPAX X1K 2K Mono.ini deleted file mode 100644 index 611935f..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/EPAX X1K 2K Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:38 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 130.56 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1620 -display_pixels_y = 2560 -display_width = 82.62 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 155 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_EPAX\nPRINTER_MODEL_X1K_2K_MONO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_40\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars 2 Pro.ini b/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars 2 Pro.ini deleted file mode 100644 index c41ae9a..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars 2 Pro.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:49:49 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 130.56 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1620 -display_pixels_y = 2560 -display_width = 82.62 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 160 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS2_PRO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_80\nRetractSpeed_210\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars C.ini b/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars C.ini deleted file mode 100644 index b01c79a..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars C.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:05:46 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 150 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS_C\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars.ini b/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars.ini deleted file mode 100644 index dc243d1..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Mars.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:08:57 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 150 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_MARS\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_90\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Saturn.ini b/UVtools.WPF/Assets/PrusaSlicer/Elegoo Saturn.ini deleted file mode 100644 index 33233c1..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Elegoo Saturn.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:50:06 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2400 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 200 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ELEGOO\nPRINTER_MODEL_SATURN\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_7\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_210\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Kelant S400.ini b/UVtools.WPF/Assets/PrusaSlicer/Kelant S400.ini deleted file mode 100644 index 2e21c0c..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Kelant S400.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:20:36 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 2560 -display_pixels_y = 1600 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 200 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_KELANT\nPRINTER_MODEL_S400\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_15\nBottomLiftSpeed_30\nLiftSpeed_30\nRetractSpeed_300\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Longer Orange 10.ini b/UVtools.WPF/Assets/PrusaSlicer/Longer Orange 10.ini deleted file mode 100644 index 4c923e0..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Longer Orange 10.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:21:14 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,55.44x0,55.44x98.64,0x98.64 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 98.64 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 480 -display_pixels_y = 854 -display_width = 55.44 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 140 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE10\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_4\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Longer Orange 30.ini b/UVtools.WPF/Assets/PrusaSlicer/Longer Orange 30.ini deleted file mode 100644 index 5e9bd7e..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Longer Orange 30.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:51:24 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 170 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE30\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_2\nLiftHeight_2\nBottomLiftSpeed_48\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Longer Orange4K.ini b/UVtools.WPF/Assets/PrusaSlicer/Longer Orange4K.ini deleted file mode 100644 index 7766383..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Longer Orange4K.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:52:58 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 6480 -display_pixels_y = 3840 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 170 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_LONGER\nPRINTER_MODEL_ORANGE30\n\nSTART_CUSTOM_VALUES\nLayerOffTime_1\nBottomLightOffDelay_1\nBottomLiftHeight_2\nLiftHeight_2\nBottomLiftSpeed_90\nLiftSpeed_150\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Nova3D Bene4 Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/Nova3D Bene4 Mono.ini deleted file mode 100644 index 8e11a37..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Nova3D Bene4 Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:22:18 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,65.02x0,65.02x116,0x116 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 116 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1566 -display_pixels_y = 2549 -display_width = 65.02 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 130 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_BENE4_MONO\n\nSTART_CUSTOM_VALUES\nXppm_19.608\nYppm_19.608\nWaitBeforeExpoMs_3000\nLiftHeight_4\nLiftSpeed_120\nRetractSpeed_120\nLiftWhenFinished_80\nBlankingLayerTime_0\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nNOVAMAKER_GRAY2RGB_ENCODE ; Required for Bene4 Mono as output images are in RGB\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Nova3D Elfin.ini b/UVtools.WPF/Assets/PrusaSlicer/Nova3D Elfin.ini deleted file mode 100644 index 8786860..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Nova3D Elfin.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:22:45 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,73x0,73x131,0x131 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 131 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1410 -display_pixels_y = 2531 -display_width = 73 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 150 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_NOVA3D\nPRINTER_MODEL_ELFIN\n\nSTART_CUSTOM_VALUES\nXppm_19.324\nYppm_19.324\nWaitBeforeExpoMs_2000\nLiftHeight_4\nLiftSpeed_120\nRetractSpeed_120\nLiftWhenFinished_80\nBlankingLayerTime_0\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom L.ini b/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom L.ini deleted file mode 100644 index 3a31a1d..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom L.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:26:28 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,345.6x0,345.6x194.4,0x194.4 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 194.4 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 345.6 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 400 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_L\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_12\nLiftHeight_9\nBottomLiftSpeed_32\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom Noir.ini b/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom Noir.ini deleted file mode 100644 index 11c53bf..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom Noir.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:23:00 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,293.76x0,293.76x165.24,0x165.24 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 165.24 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 293.76 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 400 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM_NOIR\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_36\nLiftSpeed_45\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom.ini b/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom.ini deleted file mode 100644 index 0b6fbd2..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Peopoly Phenom.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:22:52 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,276.48x0,276.48x155.52,0x155.52 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 155.52 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 276.48 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 400 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PEOPOLY\nPRINTER_MODEL_PHENOM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_15\nLiftHeight_12\nBottomLiftSpeed_36\nLiftSpeed_48\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle 16.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle 16.ini deleted file mode 100644 index 4fd48c3..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle 16.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:11:50 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,337.92x0,337.92x190.08,0x190.08 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 190.08 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 337.92 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 400 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_16\n\nSTART_CUSTOM_VALUES\nLayerOffTime_15\nBottomLightOffDelay_15\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle 4K.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle 4K.ini deleted file mode 100644 index 1d78ca5..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle 4K.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:57:14 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 2160 -display_pixels_y = 3840 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 170 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle Lite.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle Lite.ini deleted file mode 100644 index ae1b713..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle Lite.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:04:46 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 170 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_LITE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle XL Lite.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle XL Lite.ini deleted file mode 100644 index bcc8bac..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle XL Lite.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:06:06 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 2560 -display_pixels_y = 1600 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 200 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_XL_LITE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle XL.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle XL.ini deleted file mode 100644 index 3240641..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle XL.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:06:01 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 2560 -display_pixels_y = 1600 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 200 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE_XL\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_8\nLiftHeight_6\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle.ini deleted file mode 100644 index 37ce48c..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Shuffle.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 02:56:59 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,67.68x0,67.68x120.32,0x120.32 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.32 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 67.68 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 200 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SHUFFLE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic 4K.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic 4K.ini deleted file mode 100644 index f2255ce..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic 4K.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:13:52 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,134.4x0,134.4x75.6,0x75.6 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 75.6 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 134.4 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 200 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mighty 4K.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mighty 4K.ini deleted file mode 100644 index c93d717..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mighty 4K.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:16:20 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,199.68x0,199.68x124.8,0x124.8 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 124.8 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2400 -display_width = 199.68 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 220 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MIGHTY_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_11\nBottomLightOffDelay_11\nBottomLiftHeight_8\nLiftHeight_6\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mini 4K.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mini 4K.ini deleted file mode 100644 index 94a0c00..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mini 4K.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:09:38 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,134.4x0,134.4x75.6,0x75.6 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 75.6 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 134.4 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 130 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI_4K\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mini.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mini.ini deleted file mode 100644 index cdcda19..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic Mini.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:26:16 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1080 -display_pixels_y = 1920 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 130 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC_MINI\n\nSTART_CUSTOM_VALUES\nLayerOffTime_7\nBottomLightOffDelay_7\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic.ini deleted file mode 100644 index f87a458..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Sonic.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:08:50 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1080 -display_pixels_y = 1920 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 170 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_SONIC\n\nSTART_CUSTOM_VALUES\nLayerOffTime_6\nBottomLightOffDelay_6\nBottomLiftHeight_6\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_100\nRetractSpeed_200\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Transform.ini b/UVtools.WPF/Assets/PrusaSlicer/Phrozen Transform.ini deleted file mode 100644 index 1360d3f..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Phrozen Transform.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:58 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,291.84x0,291.84x164.16,0x164.16 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 164.16 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 291.84 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 400 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_PHROZEN\nPRINTER_MODEL_TRANSFORM\n\nSTART_CUSTOM_VALUES\nLayerOffTime_10\nBottomLightOffDelay_10\nBottomLiftHeight_10\nLiftHeight_8\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/QIDI S-Box.ini b/UVtools.WPF/Assets/PrusaSlicer/QIDI S-Box.ini deleted file mode 100644 index 3014478..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/QIDI S-Box.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:21:39 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,135.36x0,135.36x216.576,0x216.576 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 216.576 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1600 -display_pixels_y = 2560 -display_width = 135.36 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 200 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_S-BOX\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_10\nLiftHeight_7\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/QIDI Shadow5.5.ini b/UVtools.WPF/Assets/PrusaSlicer/QIDI Shadow5.5.ini deleted file mode 100644 index abfdfb2..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/QIDI Shadow5.5.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:19:21 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 150 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW5.5\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/QIDI Shadow6.0 Pro.ini b/UVtools.WPF/Assets/PrusaSlicer/QIDI Shadow6.0 Pro.ini deleted file mode 100644 index 1cd2f97..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/QIDI Shadow6.0 Pro.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:20:10 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,74.52x0,74.52x132.48,0x132.48 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 132.48 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 74.52 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 150 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_QIDI\nPRINTER_MODEL_SHADOW6.0_PRO\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_100\nLiftSpeed_65\nRetractSpeed_65\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.025 UltraDetail - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.025 UltraDetail - Heavy Supports.ini deleted file mode 100644 index b50c910..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.025 UltraDetail - Heavy Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:37:18 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.025 UltraDetail -layer_height = 0.025 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 1 -support_head_penetration = 0.6 -support_head_width = 2 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.5 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.025 UltraDetail - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.025 UltraDetail - Medium Supports.ini deleted file mode 100644 index ed59379..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.025 UltraDetail - Medium Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:36:13 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.025 UltraDetail -layer_height = 0.025 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 0.8 -support_head_penetration = 0.4 -support_head_width = 2 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.2 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.035 Detail - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.035 Detail - Heavy Supports.ini deleted file mode 100644 index a46b970..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.035 Detail - Heavy Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:34:54 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.035 Detail -layer_height = 0.035 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 1 -support_head_penetration = 0.6 -support_head_width = 3 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.5 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.035 Detail - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.035 Detail - Medium Supports.ini deleted file mode 100644 index fa0c748..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.035 Detail - Medium Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:34:31 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.035 Detail -layer_height = 0.035 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 0.8 -support_head_penetration = 0.4 -support_head_width = 3 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.2 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.05 Normal - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.05 Normal - Heavy Supports.ini deleted file mode 100644 index 10e334d..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.05 Normal - Heavy Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:24:57 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.05 Normal -layer_height = 0.05 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 1 -support_head_penetration = 0.6 -support_head_width = 3 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.5 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.05 Normal - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.05 Normal - Medium Supports.ini deleted file mode 100644 index 79511c7..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.05 Normal - Medium Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:23:55 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.05 Normal -layer_height = 0.05 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 0.8 -support_head_penetration = 0.4 -support_head_width = 3 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.2 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.1 Fast - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.1 Fast - Heavy Supports.ini deleted file mode 100644 index 825330a..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.1 Fast - Heavy Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-11 at 02:30:54 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.1 Fast -layer_height = 0.1 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 1 -support_head_penetration = 0.7 -support_head_width = 3 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.5 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.1 Fast - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/Universal 0.1 Fast - Medium Supports.ini deleted file mode 100644 index c43832c..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Universal 0.1 Fast - Medium Supports.ini +++ /dev/null @@ -1,44 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-09-05 at 15:51:14 UTC -compatible_printers = -compatible_printers_condition = -default_sla_print_profile = -faded_layers = 10 -hollowing_closing_distance = 2 -hollowing_enable = 0 -hollowing_min_thickness = 3 -hollowing_quality = 0.5 -inherits = 0.1 Fast -layer_height = 0.1 -output_filename_format = {input_filename_base}_{material_type}{layer_height}mm_{printer_model}_{print_time}.sl1 -pad_around_object = 0 -pad_around_object_everywhere = 0 -pad_brim_size = 1.6 -pad_enable = 1 -pad_max_merge_distance = 50 -pad_object_connector_penetration = 0.3 -pad_object_connector_stride = 10 -pad_object_connector_width = 0.5 -pad_object_gap = 1 -pad_wall_height = 0 -pad_wall_slope = 90 -pad_wall_thickness = 1 -sla_print_settings_id = -slice_closing_radius = 0.005 -support_base_diameter = 3 -support_base_height = 1 -support_base_safety_distance = 1 -support_buildplate_only = 0 -support_critical_angle = 45 -support_head_front_diameter = 0.9 -support_head_penetration = 0.5 -support_head_width = 3 -support_max_bridge_length = 10 -support_max_bridges_on_pillar = 3 -support_max_pillar_link_distance = 10 -support_object_elevation = 5 -support_pillar_connection_mode = zigzag -support_pillar_diameter = 1.3 -support_pillar_widening_factor = 0 -support_points_density_relative = 100 -support_points_minimal_distance = 1 -supports_enable = 1 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Voxelab Polaris.ini b/UVtools.WPF/Assets/PrusaSlicer/Voxelab Polaris.ini deleted file mode 100644 index 760a68a..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Voxelab Polaris.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:27:58 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,68.04x0,68.04x120.96,0x120.96 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120.96 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 68.04 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 155 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_POLARIS\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_65\nLiftSpeed_65\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Voxelab Proxima.ini b/UVtools.WPF/Assets/PrusaSlicer/Voxelab Proxima.ini deleted file mode 100644 index f661138..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Voxelab Proxima.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:18:23 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 130.56 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1620 -display_pixels_y = 2560 -display_width = 82.62 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 155 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_VOXELAB\nPRINTER_MODEL_PROXIMA\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Wanhao D7.ini b/UVtools.WPF/Assets/PrusaSlicer/Wanhao D7.ini deleted file mode 100644 index 9361237..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Wanhao D7.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:28:07 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.5,0x68.5 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.5 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 2560 -display_pixels_y = 1440 -display_width = 120.96 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 180 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D7\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Wanhao D8.ini b/UVtools.WPF/Assets/PrusaSlicer/Wanhao D8.ini deleted file mode 100644 index 2ced018..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Wanhao D8.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 01:28:11 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,192x0,192x120,0x120 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 120 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 2560 -display_pixels_y = 1600 -display_width = 192 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 180 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_WANHAO\nPRINTER_MODEL_D8\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Assets/PrusaSlicer/Zortrax Inkspire.ini b/UVtools.WPF/Assets/PrusaSlicer/Zortrax Inkspire.ini deleted file mode 100644 index 879b5b9..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/Zortrax Inkspire.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-10-01 at 03:06:43 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,74.67x0,74.67x132.88,0x132.88 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 132.88 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 1440 -display_pixels_y = 2560 -display_width = 74.67 -elefant_foot_compensation = 0.2 -elefant_foot_min_width = 0.2 -fast_tilt_time = 5 -gamma_correction = 1 -inherits = Original Prusa SL1 -max_exposure_time = 120 -max_initial_exposure_time = 300 -max_print_height = 175 -min_exposure_time = 1 -min_initial_exposure_time = 1 -print_host = -printer_model = SL1 -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_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ZORTRAX\nPRINTER_MODEL_INKSPIRE\n\nSTART_CUSTOM_VALUES\nLayerOffTime_5\nLiftHeight_5\nLiftSpeed_100\nRetractSpeed_100\nAntiAliasing_4 ; Use 0 or 1 for disable AntiAliasing with "printer gamma correction" set to 0, otherwise use multiples of 2 and "gamma correction" set to 1 for enable\nEND_CUSTOM_VALUES -printer_settings_id = -printer_technology = SLA -printer_variant = default -printer_vendor = -printhost_apikey = -printhost_cafile = -relative_correction = 1,1 -slow_tilt_time = 8 -thumbnails = 400x400,800x480 diff --git a/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml b/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml index 85e03db..8e3c9aa 100644 --- a/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml +++ b/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml @@ -3,6 +3,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" + MaxWidth="720" x:Class="UVtools.WPF.Controls.Tools.ToolCalculatorControl"> <TabControl> <TabItem Header="Millimeters to pixels"> @@ -10,7 +11,8 @@ <Border Background="White" BorderBrush="Black" BorderThickness="1" Padding="10"> - <TextBlock VerticalAlignment="Center"> + <TextBlock VerticalAlignment="Center" + TextWrapping="Wrap"> <TextBlock.Text> <MultiBinding StringFormat="\{0\}

Formula: \{1\}"> <Binding Path="Operation.CalcMillimetersToPixels.Description"/> @@ -236,7 +238,8 @@ <Border Background="White" BorderBrush="Black" BorderThickness="1" Padding="10"> - <TextBlock VerticalAlignment="Center"> + <TextBlock VerticalAlignment="Center" + TextWrapping="Wrap"> <TextBlock.Text> <MultiBinding StringFormat="\{0\}

Formula: \{1\}"> <Binding Path="Operation.CalcLightOffDelay.Description"/> @@ -376,7 +379,7 @@ Grid.ColumnSpan="5" VerticalAlignment="Center" HorizontalAlignment="Center" - Text="{Binding SlicerFile.LayerOffTime, StringFormat=Current value: \{0\}}"/> + Text="{Binding SlicerFile.LightOffDelay, StringFormat=Current value: \{0\}}"/> <TextBlock Grid.Row="14" @@ -497,13 +500,198 @@ Grid.ColumnSpan="5" VerticalAlignment="Center" HorizontalAlignment="Center" - Text="{Binding SlicerFile.BottomLayerOffTime, StringFormat=Current value: \{0\}}"/> + Text="{Binding SlicerFile.BottomLightOffDelay, StringFormat=Current value: \{0\}}"/> </Grid> </Grid> </TabItem> + + <TabItem Header="Optimal model tilt"> + <Grid RowDefinitions="Auto,10,Auto,30,Auto"> + <Border + Background="White" + BorderBrush="Black" BorderThickness="1" Padding="10"> + <TextBlock VerticalAlignment="Center" TextWrapping="Wrap"> + <TextBlock.Text> + <MultiBinding StringFormat="\{0\}

Formula: \{1\}"> + <Binding Path="Operation.CalcOptimalModelTilt.Description"/> + <Binding Path="Operation.CalcOptimalModelTilt.Formula"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + </Border> + + + <Grid + Grid.Row="2" + RowDefinitions="Auto,10,Auto" + ColumnDefinitions="Auto,10,100,5,Auto,30,Auto,10,100,5,Auto" + > + + <!-- Resolution --> + <TextBlock + Grid.Row="0" + Grid.Column="0" + VerticalAlignment="Center" + HorizontalAlignment="Right" + Text="Resolution X:"/> + <NumericUpDown + Grid.Row="0" + Grid.Column="2" + VerticalAlignment="Center" + Minimum="0" + Maximum="100000" + Value="{Binding Operation.CalcOptimalModelTilt.ResolutionX}" + /> + <TextBlock + Grid.Row="0" + Grid.Column="4" + VerticalAlignment="Center" + Text="px"/> + + <TextBlock + Grid.Row="2" + Grid.Column="0" + VerticalAlignment="Center" + HorizontalAlignment="Right" + Text="Resolution Y:"/> + <NumericUpDown + Grid.Row="2" + Grid.Column="2" + VerticalAlignment="Center" + Minimum="0" + Maximum="100000" + Value="{Binding Operation.CalcOptimalModelTilt.ResolutionY}" + /> + <TextBlock + Grid.Row="2" + Grid.Column="4" + VerticalAlignment="Center" + Text="px"/> + + + <!-- Display --> + <TextBlock + Grid.Row="0" + Grid.Column="6" + VerticalAlignment="Center" + HorizontalAlignment="Right" + Text="Display width:"/> + <NumericUpDown + Grid.Row="0" + Grid.Column="8" + VerticalAlignment="Center" + Minimum="0" + Maximum="100000" + Increment="0.01" + FormatString="{}{0:0.00}" + Value="{Binding Operation.CalcOptimalModelTilt.DisplayWidth}" + /> + <TextBlock + Grid.Row="0" + Grid.Column="10" + VerticalAlignment="Center" + Text="mm"/> + + <TextBlock + Grid.Row="2" + Grid.Column="6" + VerticalAlignment="Center" + HorizontalAlignment="Right" + Text="Display height:"/> + <NumericUpDown + Grid.Row="2" + Grid.Column="8" + VerticalAlignment="Center" + Minimum="0" + Maximum="100000" + Increment="0.01" + FormatString="{}{0:0.00}" + Value="{Binding Operation.CalcOptimalModelTilt.DisplayHeight}" + /> + <TextBlock + Grid.Row="2" + Grid.Column="10" + VerticalAlignment="Center" + Text="mm"/> + + </Grid> + + <Grid + Grid.Row="4" + RowDefinitions="Auto,10,Auto,10,Auto" + ColumnDefinitions="Auto,10,100,5,Auto" + > + <TextBlock + Grid.Row="0" + Grid.Column="0" + VerticalAlignment="Center" + HorizontalAlignment="Right" + Text="Layer height:"/> + <NumericUpDown + Grid.Row="0" + Grid.Column="2" + VerticalAlignment="Center" + Minimum="0.01" + Maximum="0.20" + Increment="0.01" + FormatString="{}{0:0.00}" + ClipValueToMinMax="True" + Value="{Binding Operation.CalcOptimalModelTilt.LayerHeight}" + /> + <TextBlock + Grid.Row="0" + Grid.Column="4" + VerticalAlignment="Center" + Text="mm"/> + + <TextBlock + Grid.Row="2" + Grid.Column="0" + VerticalAlignment="Center" + HorizontalAlignment="Right" + Text="XY resolution:"/> + <TextBox + Grid.Row="2" + Grid.Column="2" + VerticalAlignment="Center" + IsReadOnly="True" + Text="{Binding Operation.CalcOptimalModelTilt.XYResolutionUm}" + /> + <TextBlock + Grid.Row="2" + Grid.Column="4" + VerticalAlignment="Center" + Text="µm"/> + + <TextBlock + Grid.Row="4" + Grid.Column="0" + VerticalAlignment="Center" + HorizontalAlignment="Right" + FontWeight="Bold" + Text="Optimal tilt angle:"/> + <TextBox + Grid.Row="4" + Grid.Column="2" + VerticalAlignment="Center" + IsReadOnly="True" + FontWeight="Bold" + Text="{Binding Operation.CalcOptimalModelTilt.TiltAngleDegrees}" + /> + <TextBlock + Grid.Row="4" + Grid.Column="4" + VerticalAlignment="Center" + FontWeight="Bold" + Text="º"/> + </Grid> + + </Grid> + + </TabItem> </TabControl> </UserControl> diff --git a/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml.cs b/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml.cs index 71c173d..f91d037 100644 --- a/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml.cs +++ b/UVtools.WPF/Controls/Tools/ToolCalculatorControl.axaml.cs @@ -27,7 +27,8 @@ namespace UVtools.WPF.Controls.Tools CalcLightOffDelay = new OperationCalculator.LightOffDelayC( (decimal)SlicerFile.LiftHeight, (decimal)SlicerFile.BottomLiftHeight, (decimal)SlicerFile.LiftSpeed, (decimal)SlicerFile.BottomLiftSpeed, - (decimal)SlicerFile.RetractSpeed, (decimal)SlicerFile.RetractSpeed) + (decimal)SlicerFile.RetractSpeed, (decimal)SlicerFile.RetractSpeed), + CalcOptimalModelTilt = new OperationCalculator.OptimalModelTilt(SlicerFile.Resolution, SlicerFile.Display) }; Operation.CalcLightOffDelay.PropertyChanged += (sender, e) => @@ -56,14 +57,14 @@ namespace UVtools.WPF.Controls.Tools SlicerFile.BottomLiftHeight = (float)Operation.CalcLightOffDelay.BottomLiftHeight; SlicerFile.BottomLiftSpeed = (float)Operation.CalcLightOffDelay.BottomLiftSpeed; SlicerFile.RetractSpeed = (float)Operation.CalcLightOffDelay.RetractSpeed; - SlicerFile.BottomLayerOffTime = (float)Operation.CalcLightOffDelay.BottomLightOffDelay; + SlicerFile.BottomLightOffDelay = (float)Operation.CalcLightOffDelay.BottomLightOffDelay; } else // Normal layers { SlicerFile.LiftHeight = (float)Operation.CalcLightOffDelay.LiftHeight; SlicerFile.LiftSpeed = (float)Operation.CalcLightOffDelay.LiftSpeed; SlicerFile.RetractSpeed = (float)Operation.CalcLightOffDelay.RetractSpeed; - SlicerFile.LayerOffTime = (float)Operation.CalcLightOffDelay.LightOffDelay; + SlicerFile.LightOffDelay = (float)Operation.CalcLightOffDelay.LightOffDelay; } LightOffDelayPrintTimeHours = (decimal)SlicerFile.PrintTimeHours; diff --git a/UVtools.WPF/Controls/Tools/ToolLayerCloneControl.axaml.cs b/UVtools.WPF/Controls/Tools/ToolLayerCloneControl.axaml.cs index bbc7776..644d023 100644 --- a/UVtools.WPF/Controls/Tools/ToolLayerCloneControl.axaml.cs +++ b/UVtools.WPF/Controls/Tools/ToolLayerCloneControl.axaml.cs @@ -24,7 +24,7 @@ namespace UVtools.WPF.Controls.Tools get { float extraHeight = (float)Math.Round(ExtraLayers * App.SlicerFile.LayerHeight, 2); - return $"Height: {App.SlicerFile.TotalHeight}mm → {Math.Round(App.SlicerFile.TotalHeight + extraHeight, 2)}mm (+ {extraHeight}mm)"; + return $"Height: {App.SlicerFile.PrintHeight}mm → {Math.Round(App.SlicerFile.PrintHeight + extraHeight, 2)}mm (+ {extraHeight}mm)"; } } diff --git a/UVtools.WPF/Controls/Tools/ToolLayerRemoveControl.axaml.cs b/UVtools.WPF/Controls/Tools/ToolLayerRemoveControl.axaml.cs index a2ada0e..f4be3b7 100644 --- a/UVtools.WPF/Controls/Tools/ToolLayerRemoveControl.axaml.cs +++ b/UVtools.WPF/Controls/Tools/ToolLayerRemoveControl.axaml.cs @@ -24,7 +24,7 @@ namespace UVtools.WPF.Controls.Tools get { float extraHeight = (float)Math.Round(ExtraLayers * App.SlicerFile.LayerHeight, 2); - return $"Height: {App.SlicerFile.TotalHeight}mm → {Math.Round(App.SlicerFile.TotalHeight - extraHeight, 2)}mm (- {extraHeight}mm)"; + return $"Height: {App.SlicerFile.PrintHeight}mm → {Math.Round(App.SlicerFile.PrintHeight - extraHeight, 2)}mm (- {extraHeight}mm)"; } } diff --git a/UVtools.WPF/Controls/Tools/ToolRepairLayersControl.axaml b/UVtools.WPF/Controls/Tools/ToolRepairLayersControl.axaml index e176d9d..5a71eb5 100644 --- a/UVtools.WPF/Controls/Tools/ToolRepairLayersControl.axaml +++ b/UVtools.WPF/Controls/Tools/ToolRepairLayersControl.axaml @@ -72,7 +72,7 @@ Grid.Column="2" Increment="1" Minimum="0" - Maximum="255" + Maximum="65535" Width="70" Value="{Binding Operation.RemoveIslandsBelowEqualPixelCount}" > diff --git a/UVtools.WPF/MainWindow.Information.cs b/UVtools.WPF/MainWindow.Information.cs index 7a8864d..1de8ac1 100644 --- a/UVtools.WPF/MainWindow.Information.cs +++ b/UVtools.WPF/MainWindow.Information.cs @@ -352,9 +352,9 @@ namespace UVtools.WPF if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.RetractSpeed)) CurrentLayerProperties.Add(new StringTag(nameof(layer.RetractSpeed), $"{layer.RetractSpeed.ToString(CultureInfo.InvariantCulture)}mm/min")); - if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LayerOffTime)) - CurrentLayerProperties.Add(new StringTag(nameof(layer.LayerOffTime), - $"{layer.LayerOffTime.ToString(CultureInfo.InvariantCulture)}s")); + if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LightOffDelay)) + CurrentLayerProperties.Add(new StringTag(nameof(layer.LightOffDelay), + $"{layer.LightOffDelay.ToString(CultureInfo.InvariantCulture)}s")); if (SlicerFile.PrintParameterPerLayerModifiers.Contains(FileFormat.PrintParameterModifier.LightPWM)) CurrentLayerProperties.Add(new StringTag(nameof(layer.LightPWM), layer.LightPWM.ToString())); } diff --git a/UVtools.WPF/MainWindow.LayerPreview.cs b/UVtools.WPF/MainWindow.LayerPreview.cs index 4df7d8b..dc5f29f 100644 --- a/UVtools.WPF/MainWindow.LayerPreview.cs +++ b/UVtools.WPF/MainWindow.LayerPreview.cs @@ -275,7 +275,7 @@ namespace UVtools.WPF } public string MinimumLayerString => SlicerFile is null ? "???" : $"{SlicerFile.LayerHeight}mm\n0"; - public string MaximumLayerString => SlicerFile is null ? "???" : $"{SlicerFile.TotalHeight}mm\n{SlicerFile.LayerCount - 1}"; + public string MaximumLayerString => SlicerFile is null ? "???" : $"{SlicerFile.PrintHeight}mm\n{SlicerFile.LayerCount - 1}"; public string ActualLayerTooltip => SlicerFile is null ? "???" : $"{LayerCache.Layer?.PositionZ:0.00}mm\n{ActualLayer}\n{(ActualLayer + 1) * 100 / (SlicerFile.LayerCount)}%"; public uint SliderMaximumValue => SlicerFile?.LastLayerIndex ?? 0; diff --git a/UVtools.WPF/MainWindow.axaml b/UVtools.WPF/MainWindow.axaml index ddbb019..70439b9 100644 --- a/UVtools.WPF/MainWindow.axaml +++ b/UVtools.WPF/MainWindow.axaml @@ -214,10 +214,12 @@ <Border Padding="5" DockPanel.Dock="Bottom" Background="WhiteSmoke" IsVisible="{Binding IsFileLoaded}"> <WrapPanel Orientation="Horizontal" - VerticalAlignment="Center" - > + VerticalAlignment="Center"> <TextBlock Text="{Binding SlicerFile.LayerHeight, StringFormat=Layer height: \{0\}mm}"/> + <TextBlock Text=" | Bottom layers: "/> + <TextBlock Text="{Binding SlicerFile.BottomLayerCount}"/> + <TextBlock Text=" | Exposures: "/> <TextBlock> @@ -267,12 +269,12 @@ <TextBlock IsVisible="{Binding SlicerFile.RetractSpeed}" Text="{Binding SlicerFile.RetractSpeed, StringFormat=Retract Speed: \{0\}mm/min}"/> - <TextBlock IsVisible="{Binding SlicerFile.LayerOffTime}" Text=" | Light-off: "/> - <TextBlock IsVisible="{Binding SlicerFile.LayerOffTime}"> + <TextBlock IsVisible="{Binding SlicerFile.LightOffDelay}" Text=" | Light-off: "/> + <TextBlock IsVisible="{Binding SlicerFile.LightOffDelay}"> <TextBlock.Text> <MultiBinding StringFormat="\{0\}s/\{1\}s"> - <Binding Path="SlicerFile.BottomLayerOffTime"/> - <Binding Path="SlicerFile.LayerOffTime"/> + <Binding Path="SlicerFile.BottomLightOffDelay"/> + <Binding Path="SlicerFile.LightOffDelay"/> </MultiBinding> </TextBlock.Text> </TextBlock> @@ -282,9 +284,9 @@ Text="{Binding SlicerFile.PrintTimeString, StringFormat=Print time: \{0\}}"/> - <TextBlock IsVisible="{Binding SlicerFile.UsedMaterial}" Text=" | "/> - <TextBlock IsVisible="{Binding SlicerFile.UsedMaterial}" - Text="{Binding SlicerFile.UsedMaterial, StringFormat=Used material: \{0\}ml}"/> + <TextBlock IsVisible="{Binding SlicerFile.MaterialMilliliters}" Text=" | "/> + <TextBlock IsVisible="{Binding SlicerFile.MaterialMilliliters}" + Text="{Binding SlicerFile.MaterialMilliliters, StringFormat=Used material: \{0\}ml}"/> <TextBlock IsVisible="{Binding SlicerFile.MaterialCost}" Text=" | "/> diff --git a/UVtools.WPF/MainWindow.axaml.cs b/UVtools.WPF/MainWindow.axaml.cs index 2c8d044..a4b8201 100644 --- a/UVtools.WPF/MainWindow.axaml.cs +++ b/UVtools.WPF/MainWindow.axaml.cs @@ -20,6 +20,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Drawing; +using System.Globalization; using System.IO; using System.Linq; using System.Runtime.InteropServices; @@ -950,15 +951,91 @@ namespace UVtools.WPF return; } + if (SlicerFile is SL1File sl1File && Settings.Automations.AutoConvertSL1Files) + { + string fileExtension = sl1File.LookupCustomValue<string>(SL1File.Keyword_FileFormat, null); + if (!string.IsNullOrWhiteSpace(fileExtension)) + { + fileExtension = fileExtension.ToLower(CultureInfo.InvariantCulture); + var convertToFormat = FileFormat.FindByExtension(fileExtension); + if (convertToFormat is not null) + { + var directory = Path.GetDirectoryName(sl1File.FileFullPath); + var filename = PathExtensions.GetFileNameStripAllExtensions(sl1File.FileFullPath); + FileFormat convertedFile = null; + + IsGUIEnabled = false; + + task = await Task.Factory.StartNew(() => + { + ShowProgressWindow($"Converting {Path.GetFileName(SlicerFile.FileFullPath)} to {fileExtension}"); + try + { + convertedFile = sl1File.Convert(convertToFormat, Path.Combine(directory, $"{filename}.{fileExtension}"), ProgressWindow.RestartProgress()); + return true; + } + catch (OperationCanceledException) + { + } + catch (Exception exception) + { + Dispatcher.UIThread.InvokeAsync(async () => + await this.MessageBoxError(exception.ToString(), "Error while converting the file")); + } + + return false; + }); + + IsGUIEnabled = true; + + if (task && convertedFile is not null) + { + App.SlicerFile = convertedFile; + } + } + } + } + + bool modified = false; + if (Settings.Automations.BottomLightOffDelay > 0 && + SlicerFile.PrintParameterModifiers is not null && + SlicerFile.PrintParameterModifiers.Contains(FileFormat.PrintParameterModifier.BottomLightOffDelay)) + { + var lightOff = OperationCalculator.LightOffDelayC.CalculateSeconds(SlicerFile.BottomLiftHeight, + SlicerFile.BottomLiftSpeed, SlicerFile.RetractSpeed, (float)Settings.Automations.BottomLightOffDelay); + if (lightOff != SlicerFile.BottomLightOffDelay) + { + modified = true; + SlicerFile.BottomLightOffDelay = lightOff; + } + } + + if (Settings.Automations.LightOffDelay > 0 && + SlicerFile.PrintParameterModifiers is not null && + SlicerFile.PrintParameterModifiers.Contains(FileFormat.PrintParameterModifier.LightOffDelay)) + { + var lightOff = OperationCalculator.LightOffDelayC.CalculateSeconds(SlicerFile.LiftHeight, + SlicerFile.LiftSpeed, SlicerFile.RetractSpeed, (float)Settings.Automations.LightOffDelay); + if (lightOff != SlicerFile.LightOffDelay) + { + modified = true; + SlicerFile.LightOffDelay = lightOff; + } + } + + if (modified) + { + await SaveFile(null, true); + } + ClipboardManager.Instance.Init(SlicerFile); - if (SlicerFile.ConvertToFormats is not null) + if (SlicerFile is not ImageFile) { - List<MenuItem> menuItems = new List<MenuItem>(); - foreach (var fileFormatType in SlicerFile.ConvertToFormats) + List<MenuItem> menuItems = new(); + foreach (var fileFormat in FileFormat.AvailableFormats) { - FileFormat fileFormat = FileFormat.FindByType(fileFormatType); - if(fileFormat.FileExtensions is null) continue; + if(fileFormat is ImageFile) continue; foreach (var fileExtension in fileFormat.FileExtensions) { var menuItem = new MenuItem @@ -1074,7 +1151,7 @@ namespace UVtools.WPF ShowProgressWindow($"Converting {Path.GetFileName(SlicerFile.FileFullPath)} to {Path.GetExtension(result)}"); try { - return SlicerFile.Convert(fileExtension.GetFileFormat(), result, ProgressWindow.RestartProgress()); + return SlicerFile.Convert(fileExtension.GetFileFormat(), result, ProgressWindow.RestartProgress()) is not null; } catch (OperationCanceledException) { @@ -1124,13 +1201,13 @@ namespace UVtools.WPF } - - public async Task<bool> SaveFile(string filepath = null) + + public async Task<bool> SaveFile(string filepath = null, bool ignoreOverwriteWarning = false) { if (filepath is null) { - if (SavesCount == 0 && Settings.General.PromptOverwriteFileSave) + if (!ignoreOverwriteWarning && SavesCount == 0 && Settings.General.PromptOverwriteFileSave) { var result = await this.MessageBoxQuestion( "Original input file will be overwritten. Do you wish to proceed?", "Overwrite file?"); diff --git a/UVtools.WPF/UVtools.WPF.csproj b/UVtools.WPF/UVtools.WPF.csproj index 59ed6ce..e2630d6 100644 --- a/UVtools.WPF/UVtools.WPF.csproj +++ b/UVtools.WPF/UVtools.WPF.csproj @@ -12,7 +12,7 @@ <PackageLicenseFile>LICENSE</PackageLicenseFile> <RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl> <RepositoryType>Git</RepositoryType> - <Version>2.2.0</Version> + <Version>2.3.0</Version> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> diff --git a/UVtools.WPF/UserSettings.cs b/UVtools.WPF/UserSettings.cs index 613f2d4..16b0ff5 100644 --- a/UVtools.WPF/UserSettings.cs +++ b/UVtools.WPF/UserSettings.cs @@ -12,7 +12,6 @@ using System.IO; using System.Xml.Serialization; using Avalonia.Media; using JetBrains.Annotations; -using ReactiveUI; using UVtools.Core; using UVtools.Core.Objects; using Color=UVtools.WPF.Structures.Color; @@ -23,7 +22,7 @@ namespace UVtools.WPF public sealed class UserSettings : BindableBase { #region Constants - public const ushort SETTINGS_VERSION = 1; + public const ushort SETTINGS_VERSION = 2; #endregion #region Sub classes @@ -987,7 +986,7 @@ namespace UVtools.WPF private bool _repairIslands = true; private bool _repairResinTraps = true; private bool _removeEmptyLayers = true; - private byte _removeIslandsBelowEqualPixels = 5; + private ushort _removeIslandsBelowEqualPixels = 5; private ushort _removeIslandsRecursiveIterations = 4; private byte _closingIterations = 2; private byte _openingIterations = 0; @@ -1010,7 +1009,7 @@ namespace UVtools.WPF set => RaiseAndSetIfChanged(ref _removeEmptyLayers, value); } - public byte RemoveIslandsBelowEqualPixels + public ushort RemoveIslandsBelowEqualPixels { get => _removeIslandsBelowEqualPixels; set => RaiseAndSetIfChanged(ref _removeIslandsBelowEqualPixels, value); @@ -1041,6 +1040,44 @@ namespace UVtools.WPF } #endregion + #region Automations + + [Serializable] + public sealed class AutomationsUserSettings : BindableBase + { + private bool _saveFileAfterModifications = true; + private bool _autoConvertSl1Files = true; + private decimal _lightOffDelay = 2.5m; + private decimal _bottomLightOffDelay = 3m; + + public bool SaveFileAfterModifications + { + get => _saveFileAfterModifications; + set => RaiseAndSetIfChanged(ref _saveFileAfterModifications, value); + } + + public bool AutoConvertSL1Files + { + get => _autoConvertSl1Files; + set => RaiseAndSetIfChanged(ref _autoConvertSl1Files, value); + } + + + public decimal LightOffDelay + { + get => _lightOffDelay; + set => RaiseAndSetIfChanged(ref _lightOffDelay, value); + } + + public decimal BottomLightOffDelay + { + get => _bottomLightOffDelay; + set => RaiseAndSetIfChanged(ref _bottomLightOffDelay, value); + } + } + + #endregion + #endregion #region Singleton @@ -1088,6 +1125,7 @@ namespace UVtools.WPF private IssuesUserSettings _issues; private PixelEditorUserSettings _pixelEditor; private LayerRepairUserSettings _layerRepair; + private AutomationsUserSettings _automations; private ushort _settingsVersion = SETTINGS_VERSION; private string _appVersion; private uint _savesCount; @@ -1128,6 +1166,12 @@ namespace UVtools.WPF set => _layerRepair = value; } + public AutomationsUserSettings Automations + { + get => _automations ??= new AutomationsUserSettings(); + set => _automations = value; + } + /* /// <summary> /// Gets or sets the number of times this file has been reset to defaults diff --git a/UVtools.WPF/Windows/SettingsWindow.axaml b/UVtools.WPF/Windows/SettingsWindow.axaml index 5a15288..fe46049 100644 --- a/UVtools.WPF/Windows/SettingsWindow.axaml +++ b/UVtools.WPF/Windows/SettingsWindow.axaml @@ -1287,6 +1287,101 @@ </ScrollViewer> </TabItem> + <TabItem Header="Automations" VerticalContentAlignment="Center"> + <ScrollViewer MaxHeight="{Binding ScrollViewerMaxHeight}"> + <StackPanel Orientation="Vertical" Spacing="5"> + <Border + Margin="5" + BorderBrush="LightBlue" + BorderThickness="4" + > + + <StackPanel Orientation="Vertical"> + <TextBlock Padding="10" Background="LightBlue" FontWeight="Bold" Text="Common"/> + <StackPanel Margin="15" Orientation="Vertical" Spacing="15"> + <CheckBox IsChecked="{Binding Settings.Automations.SaveFileAfterModifications}" Content="Auto save the file after apply any automation(s)"/> + </StackPanel> + + </StackPanel> + </Border> + + <Border + Margin="5" + BorderBrush="LightBlue" + BorderThickness="4" + > + + <StackPanel Orientation="Vertical"> + <TextBlock Padding="10" Background="LightBlue" FontWeight="Bold" Text="PrusaSlicer SL1 files"/> + <StackPanel Margin="15" Orientation="Vertical" Spacing="15"> + <CheckBox IsChecked="{Binding Settings.Automations.AutoConvertSL1Files}" + ToolTip.Tip="Converts SL1 files to the format specified on 'PrusaSlicer - Printer - Notes' on 'FILEFORMAT_XXX' variable. +
A new file with same name but a new extension will be created and overwrite any previous file. +
After a successful conversion the new file will automatically load in instead of the loaded SL1 file." + Content="Auto convert SL1 files to the target format when possible and load it back"/> + </StackPanel> + + </StackPanel> + </Border> + + + <Border + Margin="5" + BorderBrush="LightBlue" + BorderThickness="4"> + + <StackPanel Orientation="Vertical"> + <TextBlock Padding="10" Background="LightBlue" FontWeight="Bold" Text="Light-off delay"/> + <Grid Margin="15" + RowDefinitions="Auto" + ColumnDefinitions="Auto,10,100,5,Auto,30,Auto,10,100,5,Auto"> + + <TextBlock Grid.Row="0" Grid.Column="0" + VerticalAlignment="Center" + ToolTip.Tip="Auto set the extra 'light-off delay' based on lift height and speed. +
Use '0' to ignore this automation." + Text="Light-off delay:" /> + + <NumericUpDown Grid.Row="0" Grid.Column="2" + ClipValueToMinMax="True" + Minimum="0" + Maximum="255" + Increment="0.5" + FormatString="{}{0:0.00}" + Value="{Binding Settings.Automations.LightOffDelay}"/> + <TextBlock Grid.Row="0" Grid.Column="4" + VerticalAlignment="Center" + Text="s" /> + + + <TextBlock Grid.Row="0" Grid.Column="6" + VerticalAlignment="Center" + ToolTip.Tip="Auto set the extra 'bottom light-off delay' based on bottom lift height and speed. +
Use '0' to ignore this automation." + Text="Bottom light-off delay:" /> + <NumericUpDown Grid.Row="0" Grid.Column="8" + ClipValueToMinMax="True" + Minimum="0" + Maximum="255" + Increment="0.5" + FormatString="{}{0:0.00}" + Value="{Binding Settings.Automations.BottomLightOffDelay}"/> + <TextBlock Grid.Row="0" Grid.Column="10" + VerticalAlignment="Center" + Text="s" /> + + </Grid> + + </StackPanel> + </Border> + + + + + </StackPanel> + </ScrollViewer> + </TabItem> + </TabControl> <Grid ColumnDefinitions="*,*" Background="LightGray"> diff --git a/UVtools.WPF/Windows/SettingsWindow.axaml.cs b/UVtools.WPF/Windows/SettingsWindow.axaml.cs index de4a1b5..0110ca9 100644 --- a/UVtools.WPF/Windows/SettingsWindow.axaml.cs +++ b/UVtools.WPF/Windows/SettingsWindow.axaml.cs @@ -50,7 +50,7 @@ namespace UVtools.WPF.Windows { FileFormat.AllSlicerFiles.Replace("*", string.Empty) }; - fileFormats.AddRange(from format in FileFormat.AvaliableFormats from extension in format.FileExtensions select $"{extension.Description} (.{extension.Extension})"); + fileFormats.AddRange(from format in FileFormat.AvailableFormats from extension in format.FileExtensions select $"{extension.Description} (.{extension.Extension})"); FileOpenDialogFilters = fileFormats.ToArray(); |