diff options
author | Tiago Conceição <Tiago_caza@hotmail.com> | 2021-08-23 01:20:23 +0300 |
---|---|---|
committer | Tiago Conceição <Tiago_caza@hotmail.com> | 2021-08-23 01:20:23 +0300 |
commit | d250e966c6307400abb974cb06338e18c5c75368 (patch) | |
tree | 644c91bfdca128ef188676d9e4de2e5b493eed76 | |
parent | 4cd762a53fce58c21b6f19ebf515e5d7b50b3d72 (diff) |
v2.19.5v2.19.5
- **(Fix) CTB:**
- Converting a file to version 4 won't port the TMSC values (#271)
- Force version 3 when on version 4 and converting to photon or cbddlp
- **(Improvement) Export to SVG image:**
- Group \<g\> all layer objects
- Intersect all childs on same \<path\>
- **PrusaSlicer:**
- (Rename) Printer keywords notes:
- BottomWaitBeforeCure -> BottomWaitTimeBeforeCure
- WaitBeforeCure -> WaitTimeBeforeCure
- BottomWaitAfterCure -> BottomWaitTimeAfterCure
- WaitAfterCure -> WaitTimeAfterCure
- BottomWaitAfterLift -> BottomWaitTimeAfterLift
- WaitAfterLift -> WaitTimeAfterLift
- (Change) PrusaSlicer gcode printers to reflect the previous changes
- (Change) PrusaSlicer Creality Hallot printers with better values by default
- (Fix) PrusaSlicer printers with TMSC values was not being ported to the file format
- (Fix) CXDLP: The light-off delay is not present on the format, instead the wait time before cure is used, this was leading to high wait and print times
- (Fix) Converting from files that aren't both TSMC compatible won't set the bottom and lift height
- (Fix) Error when changing the layer collection with another with higher layer count than the previous
29 files changed, 191 insertions, 131 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 9abacb1..b701c2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## 22/08/2021 - v2.19.5 + +- **(Fix) CTB:** + - Converting a file to version 4 won't port the TMSC values (#271) + - Force version 3 when on version 4 and converting to photon or cbddlp +- **(Improvement) Export to SVG image:** + - Group \<g\> all layer objects + - Intersect all childs on same \<path\> +- **PrusaSlicer:** + - (Rename) Printer keywords notes: + - BottomWaitBeforeCure -> BottomWaitTimeBeforeCure + - WaitBeforeCure -> WaitTimeBeforeCure + - BottomWaitAfterCure -> BottomWaitTimeAfterCure + - WaitAfterCure -> WaitTimeAfterCure + - BottomWaitAfterLift -> BottomWaitTimeAfterLift + - WaitAfterLift -> WaitTimeAfterLift + - (Change) PrusaSlicer gcode printers to reflect the previous changes + - (Change) PrusaSlicer Creality Hallot printers with better values by default + - (Fix) PrusaSlicer printers with TMSC values was not being ported to the file format +- (Fix) CXDLP: The light-off delay is not present on the format, instead the wait time before cure is used, this was leading to high wait and print times +- (Fix) Converting from files that aren't both TSMC compatible won't set the bottom and lift height +- (Fix) Error when changing the layer collection with another with higher layer count than the previous + ## 22/08/2021 - v2.19.4 - (Fix) CTBv2: Corrupt and unprintable file when saving diff --git a/PrusaSlicer/printer/Creality HALOT-MAX CL-133.ini b/PrusaSlicer/printer/Creality HALOT-MAX CL-133.ini index c48530d..04d1d28 100644 --- a/PrusaSlicer/printer/Creality HALOT-MAX CL-133.ini +++ b/PrusaSlicer/printer/Creality HALOT-MAX CL-133.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.3.1+win64 on 2021-07-31 at 19:46:48 UTC +# generated by PrusaSlicer 2.3.1+win64 on 2021-08-22 at 20:00:39 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -26,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_HALOT-SKY_CL-89\nFILEFORMAT_CXDLP\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_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_HALOT-SKY_CL-89\nFILEFORMAT_CXDLP\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2\nBottomLiftHeight_7\nLiftHeight_6\nBottomLiftSpeed_80\nLiftSpeed_80\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Creality HALOT-ONE CL-60.ini b/PrusaSlicer/printer/Creality HALOT-ONE CL-60.ini index b653457..6ae3356 100644 --- a/PrusaSlicer/printer/Creality HALOT-ONE CL-60.ini +++ b/PrusaSlicer/printer/Creality HALOT-ONE CL-60.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.3.1+win64 on 2021-07-02 at 17:30:53 UTC +# generated by PrusaSlicer 2.3.1+win64 on 2021-08-22 at 20:00:31 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -26,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_HALOT-SKY_CL-60\nFILEFORMAT_CXDLP\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_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_HALOT-SKY_CL-60\nFILEFORMAT_CXDLP\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2\nBottomLiftHeight_7\nLiftHeight_6\nBottomLiftSpeed_80\nLiftSpeed_80\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Creality HALOT-SKY CL-89.ini b/PrusaSlicer/printer/Creality HALOT-SKY CL-89.ini index 2603ce7..aee9369 100644 --- a/PrusaSlicer/printer/Creality HALOT-SKY CL-89.ini +++ b/PrusaSlicer/printer/Creality HALOT-SKY CL-89.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.3.1+win64 on 2021-07-02 at 17:32:15 UTC +# generated by PrusaSlicer 2.3.1+win64 on 2021-08-22 at 20:00:23 UTC absolute_correction = 0 area_fill = 50 bed_custom_model = @@ -26,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_HALOT-SKY_CL-89\nFILEFORMAT_CXDLP\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_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_HALOT-SKY_CL-89\nFILEFORMAT_CXDLP\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2\nBottomLiftHeight_7\nLiftHeight_6\nBottomLiftSpeed_80\nLiftSpeed_80\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\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 3899d99..679d99c 100644 --- a/PrusaSlicer/printer/Nova3D Bene4 Mono.ini +++ b/PrusaSlicer/printer/Nova3D Bene4 Mono.ini @@ -26,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\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Bene4.ini b/PrusaSlicer/printer/Nova3D Bene4.ini index 99475b6..b8410ed 100644 --- a/PrusaSlicer/printer/Nova3D Bene4.ini +++ b/PrusaSlicer/printer/Nova3D Bene4.ini @@ -26,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\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Bene5.ini b/PrusaSlicer/printer/Nova3D Bene5.ini index 86130af..820423a 100644 --- a/PrusaSlicer/printer/Nova3D Bene5.ini +++ b/PrusaSlicer/printer/Nova3D Bene5.ini @@ -26,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_BENE5\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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_BENE5\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\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 bbf3d07..df2e7e7 100644 --- a/PrusaSlicer/printer/Nova3D Elfin.ini +++ b/PrusaSlicer/printer/Nova3D Elfin.ini @@ -26,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\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Elfin2 Mono SE.ini b/PrusaSlicer/printer/Nova3D Elfin2 Mono SE.ini index 5355cb6..7920f91 100644 --- a/PrusaSlicer/printer/Nova3D Elfin2 Mono SE.ini +++ b/PrusaSlicer/printer/Nova3D Elfin2 Mono SE.ini @@ -26,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_ELFIN2_MONO_SE\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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_ELFIN2_MONO_SE\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Elfin2.ini b/PrusaSlicer/printer/Nova3D Elfin2.ini index 1ce1d17..ca7d270 100644 --- a/PrusaSlicer/printer/Nova3D Elfin2.ini +++ b/PrusaSlicer/printer/Nova3D Elfin2.ini @@ -26,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_ELFIN2\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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_ELFIN2\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Elfin3 Mini.ini b/PrusaSlicer/printer/Nova3D Elfin3 Mini.ini index 3bcffb6..e8c1c0d 100644 --- a/PrusaSlicer/printer/Nova3D Elfin3 Mini.ini +++ b/PrusaSlicer/printer/Nova3D Elfin3 Mini.ini @@ -26,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_ELFIN3_MINI\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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_ELFIN3_MINI\nFILEFORMAT_CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Whale.ini b/PrusaSlicer/printer/Nova3D Whale.ini index a71d799..66493cb 100644 --- a/PrusaSlicer/printer/Nova3D Whale.ini +++ b/PrusaSlicer/printer/Nova3D Whale.ini @@ -26,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_WHALE\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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_WHALE\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Nova3D Whale2.ini b/PrusaSlicer/printer/Nova3D Whale2.ini index 7b081da..1166f63 100644 --- a/PrusaSlicer/printer/Nova3D Whale2.ini +++ b/PrusaSlicer/printer/Nova3D Whale2.ini @@ -26,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_WHALE2\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\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_WHALE2\nFILEFORMAT_RGB.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_120\nLiftSpeed_120\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default diff --git a/PrusaSlicer/printer/Uniz IBEE.ini b/PrusaSlicer/printer/Uniz IBEE.ini index 3f8cc9f..45b4cb3 100644 --- a/PrusaSlicer/printer/Uniz IBEE.ini +++ b/PrusaSlicer/printer/Uniz IBEE.ini @@ -26,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_UNIZ\nPRINTER_MODEL_IBEE\nFILEFORMAT_ZCODE\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_7\nLiftHeight_5\nBottomLiftSpeed_80\nLiftSpeed_150\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_150\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_UNIZ\nPRINTER_MODEL_IBEE\nFILEFORMAT_ZCODE\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_7\nLiftHeight_5\nBottomLiftSpeed_80\nLiftSpeed_150\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_150\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 f05b95a..3c0024d 100644 --- a/PrusaSlicer/printer/Wanhao D7.ini +++ b/PrusaSlicer/printer/Wanhao D7.ini @@ -26,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\nFILEFORMAT_XML.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitBeforeCure_3\nWaitBeforeCure_2.5\nBottomWaitAfterCure_3\nWaitAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nBottomWaitAfterLift_0\nWaitAfterLift_0\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\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_XML.CWS\n\nSTART_CUSTOM_VALUES\nBottomWaitTimeBeforeCure_3\nWaitTimeBeforeCure_2.5\nBottomWaitTimeAfterCure_3\nWaitTimeAfterCure_1\nBottomLiftHeight_5\nLiftHeight_5\nBottomLiftSpeed_60\nLiftSpeed_60\nBottomWaitTimeAfterLift_0\nWaitTimeAfterLift_0\nRetractSpeed_150\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES printer_settings_id = printer_technology = SLA printer_variant = default @@ -175,16 +175,16 @@ Replace the "xxx" by your desired value in the correct units - **BottomLightOffDelay_xxx:** Sets the bottom light off delay time in seconds - **LightOffDelay_xxx:** Sets the light off delay time in seconds -- **BottomWaitBeforeCure_xxx:** Sets the bottom wait time before cure in seconds -- **WaitBeforeCure_xxx:** Sets the wait time before cure in seconds -- **BottomWaitAfterCure_xxx:** Sets the bottom wait time after cure in seconds -- **WaitAfterCure_xxx:** Sets the wait time after cure in seconds +- **BottomWaitTimeBeforeCure_xxx:** Sets the bottom wait time before cure in seconds +- **WaitTimeBeforeCure_xxx:** Sets the wait time before cure in seconds +- **BottomWaitTimeAfterCure_xxx:** Sets the bottom wait time after cure in seconds +- **WaitTimeAfterCure_xxx:** Sets the wait time after cure in seconds - **BottomLiftHeight_xxx:** Sets the bottom lift height in millimeters - **BottomLiftSpeed_xxx:** Sets the bottom lift speed in millimeters/minute - **LiftHeight_xxx:** Sets the lift height in millimeters - **LiftSpeed_xxx:** Sets the lift speed in millimeters/minute -- **BottomWaitAfterLift_xxx:** Sets the bottom wait time after lift in seconds -- **WaitAfterLift_xxx:** Sets the wait time after lift in seconds +- **BottomWaitTimeAfterLift_xxx:** Sets the bottom wait time after lift in seconds +- **WaitTimeAfterLift_xxx:** Sets the wait time after lift in seconds - **RetractSpeed_xxx:** Sets the retract speed in millimeters/minute - **BottomLightPWM_xxx:** Sets the bottom LED light power (0-255) - **LightPWM_xxx:** Sets the LED light power (0-255) diff --git a/Scripts/010 Editor/cxdlp_v1.bt b/Scripts/010 Editor/cxdlp_v1.bt index 09d98cf..8a99515 100644 --- a/Scripts/010 Editor/cxdlp_v1.bt +++ b/Scripts/010 Editor/cxdlp_v1.bt @@ -54,18 +54,18 @@ struct HEADER { uint32 layerThicknessLength <fgcolor=cBlack, bgcolor=cWhite>; wchar_t layerThickness[layerThicknessLength/2]; - uint16 exposureTime <fgcolor=cBlack, bgcolor=cWhite>; - uint16 turnOffTime <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomExposure <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomLayers <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomRaise <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomRaiseSpeed <fgcolor=cBlack, bgcolor=cWhite>; - uint16 raise <fgcolor=cBlack, bgcolor=cWhite>; - uint16 raiseSpeed <fgcolor=cBlack, bgcolor=cWhite>; - uint16 fallSpeed <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomPWM <fgcolor=cBlack, bgcolor=cWhite>; - uint16 normalPWM <fgcolor=cBlack, bgcolor=cWhite>; + uint16 ExposureTime <fgcolor=cBlack, bgcolor=cWhite>; + uint16 WaitTimeBeforeCure <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomExposureTime <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLayersCount <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLiftHeight <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLiftSpeed <fgcolor=cBlack, bgcolor=cWhite>; + uint16 LiftHeight <fgcolor=cBlack, bgcolor=cWhite>; + uint16 LiftSpeed <fgcolor=cBlack, bgcolor=cWhite>; + uint16 RetractSpeed <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLightPWM <fgcolor=cBlack, bgcolor=cWhite>; + uint16 LightPWM <fgcolor=cBlack, bgcolor=cWhite>; } header; struct LAYER_DEF { diff --git a/Scripts/010 Editor/cxdlp_v2.bt b/Scripts/010 Editor/cxdlp_v2.bt index a442af0..4ef846a 100644 --- a/Scripts/010 Editor/cxdlp_v2.bt +++ b/Scripts/010 Editor/cxdlp_v2.bt @@ -66,17 +66,17 @@ struct HEADER { uint32 layerThicknessLength <fgcolor=cBlack, bgcolor=cWhite>; wchar_t layerThickness[layerThicknessLength/2]; - uint16 exposureTime <fgcolor=cBlack, bgcolor=cWhite>; - uint16 turnOffTime <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomExposure <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomLayers <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomRaise <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomRaiseSpeed <fgcolor=cBlack, bgcolor=cWhite>; - uint16 raise <fgcolor=cBlack, bgcolor=cWhite>; - uint16 raiseSpeed <fgcolor=cBlack, bgcolor=cWhite>; - uint16 fallSpeed <fgcolor=cBlack, bgcolor=cWhite>; - uint16 bottomPWM <fgcolor=cBlack, bgcolor=cWhite>; - uint16 normalPWM <fgcolor=cBlack, bgcolor=cWhite>; + uint16 ExposureTime <fgcolor=cBlack, bgcolor=cWhite>; + uint16 WaitTimeBeforeCure <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomExposureTime <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLayersCount <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLiftHeight <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLiftSpeed <fgcolor=cBlack, bgcolor=cWhite>; + uint16 LiftHeight <fgcolor=cBlack, bgcolor=cWhite>; + uint16 LiftSpeed <fgcolor=cBlack, bgcolor=cWhite>; + uint16 RetractSpeed <fgcolor=cBlack, bgcolor=cWhite>; + uint16 BottomLightPWM <fgcolor=cBlack, bgcolor=cWhite>; + uint16 LightPWM <fgcolor=cBlack, bgcolor=cWhite>; } header; diff --git a/UVtools.Core/FileFormats/CXDLPFile.cs b/UVtools.Core/FileFormats/CXDLPFile.cs index fb0f1bb..27746e2 100644 --- a/UVtools.Core/FileFormats/CXDLPFile.cs +++ b/UVtools.Core/FileFormats/CXDLPFile.cs @@ -170,7 +170,7 @@ namespace UVtools.Core.FileFormats [FieldOrder(7)] [FieldEndianness(Endianness.Big)] - public ushort LightOffDelay { get; set; } + public ushort WaitTimeBeforeCure { get; set; } [FieldOrder(8)] [FieldEndianness(Endianness.Big)] @@ -178,7 +178,7 @@ namespace UVtools.Core.FileFormats [FieldOrder(9)] [FieldEndianness(Endianness.Big)] - public ushort BottomLayers { get; set; } + public ushort BottomLayersCount { get; set; } [FieldOrder(10)] [FieldEndianness(Endianness.Big)] @@ -210,7 +210,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(DisplayWidthDataSize)}: {DisplayWidthDataSize}, {nameof(DisplayWidthBytes)}: {DisplayWidthBytes}, {nameof(DisplayHeightDataSize)}: {DisplayHeightDataSize}, {nameof(DisplayHeightBytes)}: {DisplayHeightBytes}, {nameof(LayerHeightDataSize)}: {LayerHeightDataSize}, {nameof(LayerHeightBytes)}: {LayerHeightBytes}, {nameof(ExposureTime)}: {ExposureTime}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(BottomExposureTime)}: {BottomExposureTime}, {nameof(BottomLayers)}: {BottomLayers}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(LightPWM)}: {LightPWM}"; + return $"{nameof(DisplayWidthDataSize)}: {DisplayWidthDataSize}, {nameof(DisplayWidthBytes)}: {DisplayWidthBytes}, {nameof(DisplayHeightDataSize)}: {DisplayHeightDataSize}, {nameof(DisplayHeightBytes)}: {DisplayHeightBytes}, {nameof(LayerHeightDataSize)}: {LayerHeightDataSize}, {nameof(LayerHeightBytes)}: {LayerHeightBytes}, {nameof(ExposureTime)}: {ExposureTime}, {nameof(WaitTimeBeforeCure)}: {WaitTimeBeforeCure}, {nameof(BottomExposureTime)}: {BottomExposureTime}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(LightPWM)}: {LightPWM}"; } } #endregion @@ -367,7 +367,7 @@ namespace UVtools.Core.FileFormats { PrintParameterModifier.BottomLayerCount, - PrintParameterModifier.LightOffDelay, + PrintParameterModifier.WaitTimeBeforeCure, PrintParameterModifier.BottomExposureTime, PrintParameterModifier.ExposureTime, @@ -474,36 +474,24 @@ namespace UVtools.Core.FileFormats public override ushort BottomLayerCount { - get => SlicerInfoSettings.BottomLayers; - set => base.BottomLayerCount = SlicerInfoSettings.BottomLayers = value; + get => SlicerInfoSettings.BottomLayersCount; + set => base.BottomLayerCount = SlicerInfoSettings.BottomLayersCount = value; } - public override float BottomLightOffDelay => SlicerInfoSettings.LightOffDelay; + /*public override float BottomLightOffDelay => SlicerInfoSettings.WaitTimeBeforeCure; public override float LightOffDelay { - get => SlicerInfoSettings.LightOffDelay; - set => base.LightOffDelay = SlicerInfoSettings.LightOffDelay = (ushort)value; - } + get => SlicerInfoSettings.WaitTimeBeforeCure; + set => base.LightOffDelay = SlicerInfoSettings.WaitTimeBeforeCure = (ushort)value; + }*/ - public override float BottomWaitTimeBeforeCure - { - get => base.BottomWaitTimeBeforeCure; - set - { - SetBottomLightOffDelay(value); - base.BottomWaitTimeBeforeCure = value; - } - } + public override float BottomWaitTimeBeforeCure => WaitTimeBeforeCure; public override float WaitTimeBeforeCure { - get => base.WaitTimeBeforeCure; - set - { - SetNormalLightOffDelay(value); - base.WaitTimeBeforeCure = value; - } + get => SlicerInfoSettings.WaitTimeBeforeCure; + set => base.WaitTimeBeforeCure = SlicerInfoSettings.WaitTimeBeforeCure = (ushort)value; } public override float BottomExposureTime diff --git a/UVtools.Core/FileFormats/CXDLPv1File.cs b/UVtools.Core/FileFormats/CXDLPv1File.cs index 445396c..5ad49a1 100644 --- a/UVtools.Core/FileFormats/CXDLPv1File.cs +++ b/UVtools.Core/FileFormats/CXDLPv1File.cs @@ -17,9 +17,7 @@ using System.Text; using System.Threading.Tasks; using BinarySerialization; using Emgu.CV; -using Emgu.CV.CvEnum; using Emgu.CV.Structure; -using MoreLinq; using UVtools.Core.Extensions; using UVtools.Core.Operations; @@ -118,7 +116,7 @@ namespace UVtools.Core.FileFormats [FieldOrder(6)] [FieldEndianness(Endianness.Big)] - public ushort LightOffDelay { get; set; } + public ushort WaitTimeBeforeCure { get; set; } [FieldOrder(7)] [FieldEndianness(Endianness.Big)] @@ -130,7 +128,7 @@ namespace UVtools.Core.FileFormats [FieldOrder(9)] [FieldEndianness(Endianness.Big)] - public ushort BottomLayers { get; set; } + public ushort BottomLayersCount { get; set; } [FieldOrder(10)] [FieldEndianness(Endianness.Big)] @@ -162,7 +160,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(DisplayWidthDataSize)}: {DisplayWidthDataSize}, {nameof(DisplayWidthBytes)}: {DisplayWidthBytes}, {nameof(DisplayHeightDataSize)}: {DisplayHeightDataSize}, {nameof(DisplayHeightBytes)}: {DisplayHeightBytes}, {nameof(LayerHeightDataSize)}: {LayerHeightDataSize}, {nameof(LayerHeightBytes)}: {LayerHeightBytes}, {nameof(ExposureTime)}: {ExposureTime}, {nameof(LightOffDelay)}: {LightOffDelay}, {nameof(BottomExposureTime)}: {BottomExposureTime}, {nameof(BottomLayers)}: {BottomLayers}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(LightPWM)}: {LightPWM}"; + return $"{nameof(DisplayWidthDataSize)}: {DisplayWidthDataSize}, {nameof(DisplayWidthBytes)}: {DisplayWidthBytes}, {nameof(DisplayHeightDataSize)}: {DisplayHeightDataSize}, {nameof(DisplayHeightBytes)}: {DisplayHeightBytes}, {nameof(LayerHeightDataSize)}: {LayerHeightDataSize}, {nameof(LayerHeightBytes)}: {LayerHeightBytes}, {nameof(ExposureTime)}: {ExposureTime}, {nameof(WaitTimeBeforeCure)}: {WaitTimeBeforeCure}, {nameof(BottomExposureTime)}: {BottomExposureTime}, {nameof(BottomLayersCount)}: {BottomLayersCount}, {nameof(BottomLiftHeight)}: {BottomLiftHeight}, {nameof(BottomLiftSpeed)}: {BottomLiftSpeed}, {nameof(LiftHeight)}: {LiftHeight}, {nameof(LiftSpeed)}: {LiftSpeed}, {nameof(RetractSpeed)}: {RetractSpeed}, {nameof(BottomLightPWM)}: {BottomLightPWM}, {nameof(LightPWM)}: {LightPWM}"; } } #endregion @@ -319,7 +317,7 @@ namespace UVtools.Core.FileFormats { PrintParameterModifier.BottomLayerCount, - PrintParameterModifier.LightOffDelay, + PrintParameterModifier.WaitTimeBeforeCure, PrintParameterModifier.BottomExposureTime, PrintParameterModifier.ExposureTime, @@ -423,36 +421,16 @@ namespace UVtools.Core.FileFormats public override ushort BottomLayerCount { - get => SlicerInfoSettings.BottomLayers; - set => base.BottomLayerCount = SlicerInfoSettings.BottomLayers = value; + get => SlicerInfoSettings.BottomLayersCount; + set => base.BottomLayerCount = SlicerInfoSettings.BottomLayersCount = value; } - public override float BottomLightOffDelay => SlicerInfoSettings.LightOffDelay; - - public override float LightOffDelay - { - get => SlicerInfoSettings.LightOffDelay; - set => base.LightOffDelay = SlicerInfoSettings.LightOffDelay = (ushort)value; - } - - public override float BottomWaitTimeBeforeCure - { - get => base.BottomWaitTimeBeforeCure; - set - { - SetBottomLightOffDelay(value); - base.BottomWaitTimeBeforeCure = value; - } - } + public override float BottomWaitTimeBeforeCure => WaitTimeBeforeCure; public override float WaitTimeBeforeCure { - get => base.WaitTimeBeforeCure; - set - { - SetNormalLightOffDelay(value); - base.WaitTimeBeforeCure = value; - } + get => SlicerInfoSettings.WaitTimeBeforeCure; + set => base.WaitTimeBeforeCure = SlicerInfoSettings.WaitTimeBeforeCure = (ushort)value; } public override float BottomExposureTime diff --git a/UVtools.Core/FileFormats/ChituboxFile.cs b/UVtools.Core/FileFormats/ChituboxFile.cs index 814d8f5..e1d169f 100644 --- a/UVtools.Core/FileFormats/ChituboxFile.cs +++ b/UVtools.Core/FileFormats/ChituboxFile.cs @@ -1675,7 +1675,7 @@ namespace UVtools.Core.FileFormats return false; } - public void SanitizeProperties() + private void SanitizeProperties() { if (IsCtbFile) { @@ -1711,7 +1711,7 @@ namespace UVtools.Core.FileFormats } } - protected override void EncodeInternally(string fileFullPath, OperationProgress progress) + private void SanitizeMagicVersion() { if (FileEndsWith(".ctb")) { @@ -1736,14 +1736,26 @@ namespace UVtools.Core.FileFormats HeaderSettings.Version = 4; } } - else if (FileEndsWith(".cbddlp")) + else if (FileEndsWith(".cbddlp") || FileEndsWith(".photon")) { HeaderSettings.Magic = MAGIC_CBDDLP; + if (HeaderSettings.Version > 3) HeaderSettings.Version = 3; } - HeaderSettings.PrintParametersSize = (uint)Helpers.Serializer.SizeOf(PrintParametersSettings); + } - + protected override bool OnBeforeConvertFrom(FileFormat source) + { + SanitizeMagicVersion(); + return true; + } + + protected override void EncodeInternally(string fileFullPath, OperationProgress progress) + { + SanitizeMagicVersion(); SanitizeProperties(); + + HeaderSettings.PrintParametersSize = (uint)Helpers.Serializer.SizeOf(PrintParametersSettings); + if (IsCtbFile) { if (HeaderSettings.EncryptionKey == 0) @@ -2163,6 +2175,7 @@ namespace UVtools.Core.FileFormats public static void LayerRleCryptBuffer(uint seed, uint layerIndex, byte[] input) { + if (seed == 0) return; var init = seed * 0x2d83cdac + 0xd8a83423; var key = (layerIndex * 0x1e1530cd + 0xec3d47cd) * init; diff --git a/UVtools.Core/FileFormats/FDGFile.cs b/UVtools.Core/FileFormats/FDGFile.cs index 246ca60..118958a 100644 --- a/UVtools.Core/FileFormats/FDGFile.cs +++ b/UVtools.Core/FileFormats/FDGFile.cs @@ -1158,6 +1158,8 @@ namespace UVtools.Core.FileFormats public static void LayerRleCryptBuffer(uint seed, uint layerIndex, byte[] input) { + if (seed == 0) return; + var init = (seed - 0x1dcb76c3) ^ 0x257e2431; var key = init * 0x82391efd * (layerIndex ^ 0x110bdacd); diff --git a/UVtools.Core/FileFormats/FileFormat.cs b/UVtools.Core/FileFormats/FileFormat.cs index bc86898..d7fb022 100644 --- a/UVtools.Core/FileFormats/FileFormat.cs +++ b/UVtools.Core/FileFormats/FileFormat.cs @@ -3281,6 +3281,20 @@ namespace UVtools.Core.FileFormats public abstract void SaveAs(string filePath = null, OperationProgress progress = null); /// <summary> + /// Triggers when a conversion is valid and before start converting values + /// </summary> + /// <param name="source">Target file format</param> + /// <returns>True to continue the conversion, otherwise false to stop</returns> + protected virtual bool OnBeforeConvertFrom(FileFormat source) => true; + + /// <summary> + /// Triggers when the conversion is made but before encoding + /// </summary> + /// <param name="source">Target file format</param> + /// <returns>True to continue the conversion, otherwise false to stop</returns> + protected virtual bool OnAfterConvertFrom(FileFormat source) => true; + + /// <summary> /// Converts this file type to another file type /// </summary> /// <param name="to">Target file format</param> @@ -3297,6 +3311,9 @@ namespace UVtools.Core.FileFormats var slicerFile = (FileFormat)Activator.CreateInstance(to); if (slicerFile is null) return null; + slicerFile.FileFullPath = fileFullPath; + + if (!slicerFile.OnBeforeConvertFrom(this)) return null; slicerFile.SuppressRebuildPropertiesWork(() => { @@ -3317,7 +3334,10 @@ namespace UVtools.Core.FileFormats slicerFile.ExposureTime = ExposureTime; // Lifts + slicerFile.BottomLiftHeight = BottomLiftHeight; slicerFile.BottomLiftSpeed = BottomLiftSpeed; + + slicerFile.LiftHeight = LiftHeight; slicerFile.LiftSpeed = LiftSpeed; slicerFile.BottomLiftSpeed2 = BottomLiftSpeed2; @@ -3330,22 +3350,19 @@ namespace UVtools.Core.FileFormats slicerFile.RetractSpeed2 = RetractSpeed2; - if (slicerFile.CanUseAnyLiftHeight2 && CanUseAnyLiftHeight2) // Both are TSMC compatible + if (slicerFile.CanUseAnyLiftHeight2 && (CanUseAnyLiftHeight2 || GetType() == typeof(SL1File))) // Both are TSMC compatible { - slicerFile.BottomLiftHeight = BottomLiftHeight; - slicerFile.LiftHeight = LiftHeight; - slicerFile.BottomLiftHeight2 = BottomLiftHeight2; slicerFile.LiftHeight2 = LiftHeight2; slicerFile.BottomRetractHeight2 = BottomRetractHeight2; slicerFile.RetractHeight2 = RetractHeight2; } - else if (slicerFile.CanUseAnyLiftHeight2) // Output format is compatible with TSMC, but input isn't + /*else if (slicerFile.CanUseAnyLiftHeight2) // Output format is compatible with TSMC, but input isn't { slicerFile.BottomLiftHeight = BottomLiftHeight; slicerFile.LiftHeight = LiftHeight; - } + }*/ else if (CanUseAnyLiftHeight2) // Output format isn't compatible with TSMC, but input is { slicerFile.BottomLiftHeight = BottomLiftHeightTotal; @@ -3394,6 +3411,8 @@ namespace UVtools.Core.FileFormats slicerFile.SetThumbnails(Thumbnails); }); + if (!slicerFile.OnAfterConvertFrom(this)) return null; + slicerFile.Encode(fileFullPath, progress); return slicerFile; diff --git a/UVtools.Core/FileFormats/PHZFile.cs b/UVtools.Core/FileFormats/PHZFile.cs index 6ba3825..8341204 100644 --- a/UVtools.Core/FileFormats/PHZFile.cs +++ b/UVtools.Core/FileFormats/PHZFile.cs @@ -1181,6 +1181,7 @@ namespace UVtools.Core.FileFormats public static void LayerRleCryptBuffer(uint seed, uint layerIndex, byte[] input) { + if (seed == 0) return; seed %= 0x4324; var init = seed * 0x34a32231; var key = (layerIndex ^ 0x3fad2212) * seed * 0x4910913d; diff --git a/UVtools.Core/FileFormats/SL1File.cs b/UVtools.Core/FileFormats/SL1File.cs index 33d7555..34c0d72 100644 --- a/UVtools.Core/FileFormats/SL1File.cs +++ b/UVtools.Core/FileFormats/SL1File.cs @@ -32,10 +32,10 @@ namespace UVtools.Core.FileFormats public const string Keyword_BottomLightOffDelay = "BottomLightOffDelay"; public const string Keyword_LightOffDelay = "LightOffDelay"; - public const string Keyword_BottomWaitTimeBeforeCure = "BottomWaitBeforeCure"; - public const string Keyword_WaitTimeBeforeCure = "WaitBeforeCure"; - public const string Keyword_BottomWaitTimeAfterCure = "BottomWaitAfterCure"; - public const string Keyword_WaitTimeAfterCure = "WaitAfterCure"; + public const string Keyword_BottomWaitTimeBeforeCure = "BottomWaitTimeBeforeCure"; + public const string Keyword_WaitTimeBeforeCure = "WaitTimeBeforeCure"; + public const string Keyword_BottomWaitTimeAfterCure = "BottomWaitTimeAfterCure"; + public const string Keyword_WaitTimeAfterCure = "WaitTimeAfterCure"; public const string Keyword_BottomLiftHeight = "BottomLiftHeight"; public const string Keyword_BottomLiftSpeed = "BottomLiftSpeed"; public const string Keyword_LiftHeight = "LiftHeight"; @@ -44,8 +44,8 @@ namespace UVtools.Core.FileFormats public const string Keyword_BottomLiftSpeed2 = "BottomLiftSpeed2"; public const string Keyword_LiftHeight2 = "LiftHeight2"; public const string Keyword_LiftSpeed2 = "LiftSpeed2"; - public const string Keyword_BottomWaitTimeAfterLift = "BottomWaitAfterLift"; - public const string Keyword_WaitTimeAfterLift = "WaitAfterLift"; + public const string Keyword_BottomWaitTimeAfterLift = "BottomWaitTimeAfterLift"; + public const string Keyword_WaitTimeAfterLift = "WaitTimeAfterLift"; public const string Keyword_BottomRetractSpeed = "BottomRetractSpeed"; public const string Keyword_RetractSpeed = "RetractSpeed"; public const string Keyword_BottomRetractHeight2 = "BottomRetractHeight2"; diff --git a/UVtools.Core/Layer/Layer.cs b/UVtools.Core/Layer/Layer.cs index 6cd89c9..2939be4 100644 --- a/UVtools.Core/Layer/Layer.cs +++ b/UVtools.Core/Layer/Layer.cs @@ -778,17 +778,13 @@ namespace UVtools.Core public Layer PreviousLayer() { - if (ParentLayerManager is null || _index == 0) - return null; - + if (ParentLayerManager is null || _index == 0 || _index > ParentLayerManager.Count) return null; return ParentLayerManager[_index - 1]; } public Layer NextLayer() { - if (ParentLayerManager is null || _index >= ParentLayerManager.LayerCount - 1) - return null; - + if (ParentLayerManager is null || _index >= ParentLayerManager.LayerCount - 1) return null; return ParentLayerManager[_index + 1]; } diff --git a/UVtools.Core/Operations/OperationLayerExportImage.cs b/UVtools.Core/Operations/OperationLayerExportImage.cs index 7e52359..0f8fb69 100644 --- a/UVtools.Core/Operations/OperationLayerExportImage.cs +++ b/UVtools.Core/Operations/OperationLayerExportImage.cs @@ -7,6 +7,7 @@ */ using System; +using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Threading.Tasks; @@ -209,6 +210,7 @@ namespace UVtools.Core.Operations using var contours = new VectorOfVectorOfPoint(); using var hierarchy = new Mat(); CvInvoke.FindContours(matRoi, contours, hierarchy, RetrType.Tree, ChainApproxMethod.ChainApproxSimple); + var hierarchyJagged = hierarchy.GetData(); using TextWriter tw = new StreamWriter(fileFullPath); @@ -231,14 +233,17 @@ namespace UVtools.Core.Operations tw.WriteLine("\t<defs>"); tw.WriteLine("\t\t<style>"); //tw.WriteLine("\t\tsvg { background-color: #000000; }"); - tw.WriteLine("\t\t.background { fill: #000000; fill-rule: evenodd; }"); - tw.WriteLine("\t\t.black { fill: #000000; fill-rule: evenodd; }"); - tw.WriteLine("\t\t.white { fill: #FFFFFF; fill-rule: evenodd; }"); + tw.WriteLine("\t\t.background { fill: #000000; }"); + //tw.WriteLine("\t\t.black { fill: #000000; fill-rule: evenodd; }"); + //tw.WriteLine("\t\t.white { fill: #FFFFFF; fill-rule: evenodd; }"); + tw.WriteLine("\t\tpath { fill: #FFFFFF; fill-rule: evenodd; }"); tw.WriteLine("\t\t</style>"); tw.WriteLine("\t</defs>"); tw.WriteLine($"\t<title>{slicedFileNameNoExt} #{layerIndex}</title>"); - tw.WriteLine($"\t<rect class=\"background\" width=\"{mat.Width}\" height=\"{mat.Height}\"/>"); + tw.WriteLine($"\t<g id=\"layer{layerIndex}\">"); + tw.WriteLine($"\t<rect class=\"background\" width=\"{mat.Width}\" height=\"{mat.Height}\"/>"); + // //hierarchy[i][0]: the index of the next contour of the same level //hierarchy[i][1]: the index of the previous contour of the same level @@ -246,9 +251,43 @@ namespace UVtools.Core.Operations //hierarchy[i][3]: the index of the parent // + + bool firstTime = true; for (int i = 0; i < contours.Size; i++) { if (contours[i].Size == 0) continue; + if ((int)hierarchyJagged.GetValue(0, i, 3) == -1) // Top hierarchy + { + if (firstTime) + { + firstTime = false; + } + else + { + tw.WriteLine("\"/>"); + } + + tw.Write("\t<path d=\""); + } + else + { + tw.Write(" "); + } + + tw.Write($"M{contours[i][0].X} {contours[i][0].Y}"); + for (int x = 1; x < contours[i].Size; x++) + { + tw.Write($" L{contours[i][x].X} {contours[i][x].Y}"); + } + tw.Write(" Z"); + } + + if(!firstTime) tw.WriteLine("\"/>"); + + // Old method! + /*for (int i = 0; i < contours.Size; i++) + { + if (contours[i].Size == 0) continue; var style = "white"; @@ -268,8 +307,9 @@ namespace UVtools.Core.Operations tw.Write($",L{contours[i][x].X} {contours[i][x].Y}"); } tw.WriteLine("Z\"/>"); - } + }*/ + tw.WriteLine("\t</g>"); tw.WriteLine("</svg>"); } diff --git a/UVtools.Core/UVtools.Core.csproj b/UVtools.Core/UVtools.Core.csproj index 03700f7..84bc982 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.19.4</Version> + <Version>2.19.5</Version> <Copyright>Copyright © 2020 PTRTECH</Copyright> <PackageIcon>UVtools.png</PackageIcon> <Platforms>AnyCPU;x64</Platforms> diff --git a/UVtools.WPF/UVtools.WPF.csproj b/UVtools.WPF/UVtools.WPF.csproj index 745e4e1..b4a2dcf 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.19.4</Version> + <Version>2.19.5</Version> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> |