From d9cd0022caf0b55d90c0e1ff5f458f7aecdb000b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Concei=C3=A7=C3=A3o?= Date: Tue, 6 Oct 2020 03:39:29 +0100 Subject: [PATCH] WPF progress --- UVtools.Core/FileFormats/ChituboxFile.cs | 4 +- UVtools.Core/PixelEditor/PixelDrainHole.cs | 7 +- UVtools.Core/PixelEditor/PixelSupport.cs | 21 +- UVtools.Core/PixelEditor/PixelText.cs | 40 +- UVtools.WPF/App.axaml.cs | 2 +- .../PrusaSlicer/printer/AnyCubic Photon S.ini | 37 -- .../printer/AnyCubic Photon Zero.ini | 37 -- .../PrusaSlicer/printer/AnyCubic Photon.ini | 37 -- .../PrusaSlicer/printer/Creality LD-002H.ini | 37 -- .../PrusaSlicer/printer/Creality LD-002R.ini | 37 -- .../Assets/PrusaSlicer/printer/EPAX X1.ini | 37 -- .../PrusaSlicer/printer/EPAX X10 4K Mono.ini | 37 -- .../Assets/PrusaSlicer/printer/EPAX X10.ini | 37 -- .../PrusaSlicer/printer/EPAX X133 4K Mono.ini | 37 -- .../printer/EPAX X156 4K Color.ini | 37 -- .../PrusaSlicer/printer/Elegoo Mars 2 Pro.ini | 37 -- .../printer/Elegoo Mars Saturn.ini | 37 -- .../PrusaSlicer/printer/Elegoo Mars.ini | 37 -- .../PrusaSlicer/printer/Kelant S400.ini | 37 -- .../PrusaSlicer/printer/Longer Orange 10.ini | 37 -- .../PrusaSlicer/printer/Longer Orange 30.ini | 37 -- .../PrusaSlicer/printer/Nova3D Bene4 Mono.ini | 37 -- .../PrusaSlicer/printer/Nova3D Elfin.ini | 37 -- .../PrusaSlicer/printer/Peopoly Phenom L.ini | 37 -- .../printer/Peopoly Phenom Noir.ini | 37 -- .../PrusaSlicer/printer/Peopoly Phenom.ini | 37 -- .../printer/Phrozen Shuffle 4K.ini | 37 -- .../printer/Phrozen Shuffle Lite.ini | 37 -- .../printer/Phrozen Shuffle XL.ini | 37 -- .../PrusaSlicer/printer/Phrozen Shuffle.ini | 37 -- .../printer/Phrozen Sonic Mini 4K.ini | 37 -- .../printer/Phrozen Sonic Mini.ini | 37 -- .../PrusaSlicer/printer/Phrozen Sonic.ini | 37 -- .../PrusaSlicer/printer/Phrozen Transform.ini | 37 -- .../PrusaSlicer/printer/QIDI Shadow5.5.ini | 37 -- .../printer/QIDI Shadow6.0 Pro.ini | 37 -- .../PrusaSlicer/printer/Voxelab Polaris.ini | 37 -- .../Assets/PrusaSlicer/printer/Wanhao D7.ini | 37 -- .../Assets/PrusaSlicer/printer/Wanhao D8.ini | 37 -- .../PrusaSlicer/printer/Zortrax Inkspire.ini | 37 -- ...sal 0.025 UltraDetail - Heavy Supports.ini | 44 --- ...al 0.025 UltraDetail - Medium Supports.ini | 44 --- ...niversal 0.035 Detail - Heavy Supports.ini | 44 --- ...iversal 0.035 Detail - Medium Supports.ini | 44 --- ...Universal 0.05 Normal - Heavy Supports.ini | 44 --- ...niversal 0.05 Normal - Medium Supports.ini | 44 --- .../Universal 0.1 Fast - Heavy Supports.ini | 44 --- .../Universal 0.1 Fast - Medium Supports.ini | 44 --- UVtools.WPF/Controls/DummyControl.axaml | 56 ++- UVtools.WPF/Extensions/BitmapExtension.cs | 25 +- UVtools.WPF/MainWindow.Information.cs | 31 +- UVtools.WPF/MainWindow.Issues.cs | 46 ++- UVtools.WPF/MainWindow.LayerPreview.cs | 158 ++++---- UVtools.WPF/MainWindow.PixelEditor.cs | 251 +++++++------ UVtools.WPF/MainWindow.axaml | 348 ++++++++++++++++-- UVtools.WPF/MainWindow.axaml.cs | 177 +++++---- UVtools.WPF/Structures/Color.cs | 46 +++ UVtools.WPF/UVtools.WPF.csproj | 138 +------ 58 files changed, 909 insertions(+), 2088 deletions(-) delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon S.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon Zero.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Creality LD-002H.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Creality LD-002R.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X1.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X10 4K Mono.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X10.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X133 4K Mono.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X156 4K Color.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars 2 Pro.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars Saturn.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Kelant S400.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Longer Orange 10.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Longer Orange 30.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Nova3D Bene4 Mono.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Nova3D Elfin.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom L.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom Noir.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle 4K.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle Lite.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle XL.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic Mini 4K.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic Mini.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Transform.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/QIDI Shadow5.5.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Voxelab Polaris.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Wanhao D7.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Wanhao D8.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/printer/Zortrax Inkspire.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.025 UltraDetail - Heavy Supports.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.025 UltraDetail - Medium Supports.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.035 Detail - Heavy Supports.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.035 Detail - Medium Supports.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.05 Normal - Heavy Supports.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.05 Normal - Medium Supports.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.1 Fast - Heavy Supports.ini delete mode 100644 UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.1 Fast - Medium Supports.ini diff --git a/UVtools.Core/FileFormats/ChituboxFile.cs b/UVtools.Core/FileFormats/ChituboxFile.cs index b190edd..002a830 100644 --- a/UVtools.Core/FileFormats/ChituboxFile.cs +++ b/UVtools.Core/FileFormats/ChituboxFile.cs @@ -306,7 +306,7 @@ namespace UVtools.Core.FileFormats [FieldOrder(12)] public uint SoftwareVersion { get; set; } = 0x01060300; [FieldOrder(13)] public uint Unknown1 { get; set; } [FieldOrder(14)] public uint Padding8 { get; set; } - [FieldOrder(15)] public uint Padding9 { get; set; } + [FieldOrder(15)] public uint TransitionLayerCount { get; set; } // CTB not all printers [FieldOrder(16)] public uint Padding10 { get; set; } [FieldOrder(17)] public uint Padding11 { get; set; } [FieldOrder(18)] public uint Padding12 { get; set; } @@ -321,7 +321,7 @@ namespace UVtools.Core.FileFormats public override string ToString() { - return $"{nameof(Padding1)}: {Padding1}, {nameof(Padding2)}: {Padding2}, {nameof(Padding3)}: {Padding3}, {nameof(Padding4)}: {Padding4}, {nameof(Padding5)}: {Padding5}, {nameof(Padding6)}: {Padding6}, {nameof(Padding7)}: {Padding7}, {nameof(MachineNameAddress)}: {MachineNameAddress}, {nameof(MachineNameSize)}: {MachineNameSize}, {nameof(EncryptionMode)}: {EncryptionMode}, {nameof(MysteriousId)}: {MysteriousId}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(SoftwareVersion)}: {SoftwareVersion}, {nameof(Unknown1)}: {Unknown1}, {nameof(Padding8)}: {Padding8}, {nameof(Padding9)}: {Padding9}, {nameof(Padding10)}: {Padding10}, {nameof(Padding11)}: {Padding11}, {nameof(Padding12)}: {Padding12}, {nameof(MachineName)}: {MachineName}"; + return $"{nameof(Padding1)}: {Padding1}, {nameof(Padding2)}: {Padding2}, {nameof(Padding3)}: {Padding3}, {nameof(Padding4)}: {Padding4}, {nameof(Padding5)}: {Padding5}, {nameof(Padding6)}: {Padding6}, {nameof(Padding7)}: {Padding7}, {nameof(MachineNameAddress)}: {MachineNameAddress}, {nameof(MachineNameSize)}: {MachineNameSize}, {nameof(EncryptionMode)}: {EncryptionMode}, {nameof(MysteriousId)}: {MysteriousId}, {nameof(AntiAliasLevel)}: {AntiAliasLevel}, {nameof(SoftwareVersion)}: {SoftwareVersion}, {nameof(Unknown1)}: {Unknown1}, {nameof(Padding8)}: {Padding8}, {nameof(TransitionLayerCount)}: {TransitionLayerCount}, {nameof(Padding10)}: {Padding10}, {nameof(Padding11)}: {Padding11}, {nameof(Padding12)}: {Padding12}, {nameof(MachineName)}: {MachineName}"; } } diff --git a/UVtools.Core/PixelEditor/PixelDrainHole.cs b/UVtools.Core/PixelEditor/PixelDrainHole.cs index 1f03edb..4dd82f9 100644 --- a/UVtools.Core/PixelEditor/PixelDrainHole.cs +++ b/UVtools.Core/PixelEditor/PixelDrainHole.cs @@ -11,9 +11,14 @@ namespace UVtools.Core.PixelEditor { public class PixelDrainHole : PixelOperation { + private byte _diameter = 50; public override PixelOperationType OperationType => PixelOperationType.DrainHole; - public byte Diameter { get; } + public byte Diameter + { + get => _diameter; + set => RaiseAndSetIfChanged(ref _diameter, value); + } public PixelDrainHole(){} diff --git a/UVtools.Core/PixelEditor/PixelSupport.cs b/UVtools.Core/PixelEditor/PixelSupport.cs index 66ce20f..31374e5 100644 --- a/UVtools.Core/PixelEditor/PixelSupport.cs +++ b/UVtools.Core/PixelEditor/PixelSupport.cs @@ -11,13 +11,28 @@ namespace UVtools.Core.PixelEditor { public class PixelSupport : PixelOperation { + private byte _tipDiameter = 19; + private byte _pillarDiameter = 32; + private byte _baseDiameter = 60; public override PixelOperationType OperationType => PixelOperationType.Supports; - public byte TipDiameter { get; set; } + public byte TipDiameter + { + get => _tipDiameter; + set => RaiseAndSetIfChanged(ref _tipDiameter, value); + } - public byte PillarDiameter { get; set; } + public byte PillarDiameter + { + get => _pillarDiameter; + set => RaiseAndSetIfChanged(ref _pillarDiameter, value); + } - public byte BaseDiameter { get; set; } + public byte BaseDiameter + { + get => _baseDiameter; + set => RaiseAndSetIfChanged(ref _baseDiameter, value); + } public PixelSupport(){} diff --git a/UVtools.Core/PixelEditor/PixelText.cs b/UVtools.Core/PixelEditor/PixelText.cs index 7f84b7c..5d0f286 100644 --- a/UVtools.Core/PixelEditor/PixelText.cs +++ b/UVtools.Core/PixelEditor/PixelText.cs @@ -14,14 +14,44 @@ namespace UVtools.Core.PixelEditor { public class PixelText : PixelOperation { + private FontFace _font; + private double _fontScale = 1; + private ushort _thickness = 1; + private string _text; + private bool _mirror; public override PixelOperationType OperationType => PixelOperationType.Text; - public FontFace Font { get; set; } + public static FontFace[] FontFaces => (FontFace[]) Enum.GetValues(typeof(FontFace)); - public double FontScale { get; set; } - public ushort Thickness { get; set; } - public string Text { get; set; } - public bool Mirror { get; set; } + public FontFace Font + { + get => _font; + set => RaiseAndSetIfChanged(ref _font, value); + } + + public double FontScale + { + get => _fontScale; + set => RaiseAndSetIfChanged(ref _fontScale, value); + } + + public ushort Thickness + { + get => _thickness; + set => RaiseAndSetIfChanged(ref _thickness, value); + } + + public string Text + { + get => _text; + set => RaiseAndSetIfChanged(ref _text, value); + } + + public bool Mirror + { + get => _mirror; + set => RaiseAndSetIfChanged(ref _mirror, value); + } public bool IsAdd { get; } diff --git a/UVtools.WPF/App.axaml.cs b/UVtools.WPF/App.axaml.cs index 0e99fdb..8e9c32b 100644 --- a/UVtools.WPF/App.axaml.cs +++ b/UVtools.WPF/App.axaml.cs @@ -161,7 +161,7 @@ namespace UVtools.WPF } public static Bitmap GetBitmapFromAsset(string url) => new Bitmap(GetAsset(url)); - + #endregion } } diff --git a/UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon S.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon S.ini deleted file mode 100644 index 3b3babe..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon S.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:18 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,121x0,121x68,0x68 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1440 -display_width = 121 -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\nFLIP_XY\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/printer/AnyCubic Photon Zero.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon Zero.ini deleted file mode 100644 index 59ff711..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon Zero.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:23 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,98.6x0,98.6x55.4,0x55.4 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 55.4 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -display_pixels_x = 854 -display_pixels_y = 480 -display_width = 98.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 = 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\nFLIP_XY\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/printer/AnyCubic Photon.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon.ini deleted file mode 100644 index b438e38..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/AnyCubic Photon.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:12 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -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 = 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\nFLIP_XY\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/printer/Creality LD-002H.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Creality LD-002H.ini deleted file mode 100644 index 22c0ffd..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Creality LD-002H.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-07-13 at 23:26:09 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,130.56x0,130.56x82.62,0x82.62 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 82.62 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1620 -display_width = 130.56 -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\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_2\nBottomLiftHeight_5\nLiftHeight_7\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/printer/Creality LD-002R.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Creality LD-002R.ini deleted file mode 100644 index 5a9fce4..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Creality LD-002R.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:31 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -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 = 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\nFLIP_XY\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/printer/EPAX X1.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X1.ini deleted file mode 100644 index 3407149..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X1.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:36 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -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 = 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\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_2\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/printer/EPAX X10 4K Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X10 4K Mono.ini deleted file mode 100644 index c36afa4..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X10 4K Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-30 at 23:52:31 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 = 2160 -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_10\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/printer/EPAX X10.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X10.ini deleted file mode 100644 index 14e3cb3..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X10.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:22:43 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,216.57x0,216.57x135.36,0x135.36 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 135.36 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1600 -display_width = 216.57 -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\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_12\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/printer/EPAX X133 4K Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X133 4K Mono.ini deleted file mode 100644 index 0345529..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X133 4K Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:39:25 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,216.576x0,216.576x135.36,0x135.36 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 135.36 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = landscape -display_pixels_x = 3840 -display_pixels_y = 2160 -display_width = 216.576 -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_10\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/printer/EPAX X156 4K Color.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X156 4K Color.ini deleted file mode 100644 index 93b5521..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/EPAX X156 4K Color.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:39:31 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/printer/Elegoo Mars 2 Pro.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars 2 Pro.ini deleted file mode 100644 index d493fdf..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars 2 Pro.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-07-13 at 23:29:07 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,130.56x0,130.56x82.62,0x82.62 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 82.62 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1620 -display_width = 130.56 -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\nFLIP_XY\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/printer/Elegoo Mars Saturn.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars Saturn.ini deleted file mode 100644 index 3bc0f71..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars Saturn.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:02 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 = 1 -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_ELEGOO\nPRINTER_MODEL_SATURN\n\nSTART_CUSTOM_VALUES\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_5\nLiftHeight_7\nBottomLiftSpeed_70\nLiftSpeed_70\nRetractSpeed_70\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/printer/Elegoo Mars.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars.ini deleted file mode 100644 index 5ab1c72..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Elegoo Mars.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:31:58 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -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 = 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\nFLIP_XY\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/printer/Kelant S400.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Kelant S400.ini deleted file mode 100644 index 53b25a5..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Kelant S400.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-09-05 at 19:03:56 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 = 1 -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/printer/Longer Orange 10.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Longer Orange 10.ini deleted file mode 100644 index 7838689..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Longer Orange 10.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-09-10 at 15:48:09 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,98.64x0,98.64x55.44,0x55.44 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 55.44 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -display_pixels_x = 854 -display_pixels_y = 480 -display_width = 98.64 -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\nFLIP_XY\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/printer/Longer Orange 30.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Longer Orange 30.ini deleted file mode 100644 index 22dd691..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Longer Orange 30.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-09-10 at 15:36:45 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -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 = 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\nFLIP_XY\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/printer/Nova3D Bene4 Mono.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Nova3D Bene4 Mono.ini deleted file mode 100644 index 583d56d..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Nova3D Bene4 Mono.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-09-04 at 20:31:20 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,116x0,116x65.02,0x65.02 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 65.02 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 2549 -display_pixels_y = 1566 -display_width = 116 -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\nFLIP_XY\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/printer/Nova3D Elfin.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Nova3D Elfin.ini deleted file mode 100644 index b9375de..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Nova3D Elfin.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-09-04 at 22:08:49 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,131x0,131x73,0x73 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 73 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 2531 -display_pixels_y = 1410 -display_width = 131 -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\nFLIP_XY\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/printer/Peopoly Phenom L.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom L.ini deleted file mode 100644 index 50a835f..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom L.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:29 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 = 0 -display_mirror_y = 1 -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_15\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/printer/Peopoly Phenom Noir.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom Noir.ini deleted file mode 100644 index 23933e3..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom Noir.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:33 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 = 0 -display_mirror_y = 1 -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/printer/Peopoly Phenom.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom.ini deleted file mode 100644 index b6d72b0..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Peopoly Phenom.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:25 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 = 0 -display_mirror_y = 1 -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/printer/Phrozen Shuffle 4K.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle 4K.ini deleted file mode 100644 index 3c24780..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle 4K.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:28 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 3840 -display_pixels_y = 2160 -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 = 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\nFLIP_XY\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/printer/Phrozen Shuffle Lite.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle Lite.ini deleted file mode 100644 index c9ee486..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle Lite.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:32 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.32x0,120.32x67.68,0x67.68 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 67.68 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1440 -display_width = 120.32 -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\nFLIP_XY\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/printer/Phrozen Shuffle XL.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle XL.ini deleted file mode 100644 index 8f2ea49..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle XL.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41: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 = 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_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/printer/Phrozen Shuffle.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle.ini deleted file mode 100644 index 41b8055..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Shuffle.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:24 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.32x0,120.32x67.68,0x67.68 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 67.68 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1440 -display_width = 120.32 -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\nFLIP_XY\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/printer/Phrozen Sonic Mini 4K.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic Mini 4K.ini deleted file mode 100644 index f2cd3c4..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic Mini 4K.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-09-23 at 19:41:00 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 = 0 -display_mirror_y = 1 -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_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/printer/Phrozen Sonic Mini.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic Mini.ini deleted file mode 100644 index 3cd5088..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic Mini.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-20 at 15:15:00 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 1920 -display_pixels_y = 1080 -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 = 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\nFLIP_XY\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/printer/Phrozen Sonic.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic.ini deleted file mode 100644 index b4e44da..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Sonic.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-12 at 00:41:40 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 1920 -display_pixels_y = 1080 -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 = 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\nFLIP_XY\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/printer/Phrozen Transform.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Phrozen Transform.ini deleted file mode 100644 index 1360d3f..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/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/printer/QIDI Shadow5.5.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/QIDI Shadow5.5.ini deleted file mode 100644 index bc68866..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/QIDI Shadow5.5.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:51 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -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 = 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\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_80\nLiftHeight_5\nBottomLiftSpeed_65\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/printer/QIDI Shadow6.0 Pro.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini deleted file mode 100644 index 23dee47..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/QIDI Shadow6.0 Pro.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:32:56 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,132.48x0,132.48x74.52,0x74.52 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 74.52 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1440 -display_width = 132.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 = 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.0PRO\n\nSTART_CUSTOM_VALUES\nFLIP_XY\nLayerOffTime_0\nBottomLightOffDelay_0\nBottomLiftHeight_80\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/printer/Voxelab Polaris.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Voxelab Polaris.ini deleted file mode 100644 index b65418b..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Voxelab Polaris.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-07-13 at 23:30:41 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,120.96x0,120.96x68.04,0x68.04 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 68.04 -display_mirror_x = 0 -display_mirror_y = 1 -display_orientation = portrait -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 = 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\nFLIP_XY\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/printer/Wanhao D7.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Wanhao D7.ini deleted file mode 100644 index a4088d5..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Wanhao D7.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:33:00 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 = 0 -display_mirror_y = 1 -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/printer/Wanhao D8.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Wanhao D8.ini deleted file mode 100644 index 9d74056..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Wanhao D8.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-29 at 20:33:04 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 = 1 -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/printer/Zortrax Inkspire.ini b/UVtools.WPF/Assets/PrusaSlicer/printer/Zortrax Inkspire.ini deleted file mode 100644 index a999a68..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/printer/Zortrax Inkspire.ini +++ /dev/null @@ -1,37 +0,0 @@ -# generated by PrusaSlicer 2.2.0+win64 on 2020-06-20 at 15:23:41 UTC -absolute_correction = 0 -area_fill = 50 -bed_custom_model = -bed_custom_texture = -bed_shape = 0x0,132.88x0,132.88x74.67,0x74.67 -default_sla_material_profile = Prusa Orange Tough 0.05 -default_sla_print_profile = 0.05 Normal -display_height = 74.67 -display_mirror_x = 1 -display_mirror_y = 0 -display_orientation = portrait -display_pixels_x = 2560 -display_pixels_y = 1440 -display_width = 132.88 -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_EPAX\nPRINTER_MODEL_X1\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/Assets/PrusaSlicer/sla_print/Universal 0.025 UltraDetail - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.025 UltraDetail - Heavy Supports.ini deleted file mode 100644 index b50c910..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/sla_print/Universal 0.025 UltraDetail - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.025 UltraDetail - Medium Supports.ini deleted file mode 100644 index ed59379..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/sla_print/Universal 0.035 Detail - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.035 Detail - Heavy Supports.ini deleted file mode 100644 index a46b970..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/sla_print/Universal 0.035 Detail - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.035 Detail - Medium Supports.ini deleted file mode 100644 index fa0c748..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/sla_print/Universal 0.05 Normal - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.05 Normal - Heavy Supports.ini deleted file mode 100644 index 10e334d..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/sla_print/Universal 0.05 Normal - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.05 Normal - Medium Supports.ini deleted file mode 100644 index 79511c7..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/sla_print/Universal 0.1 Fast - Heavy Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.1 Fast - Heavy Supports.ini deleted file mode 100644 index 825330a..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/sla_print/Universal 0.1 Fast - Medium Supports.ini b/UVtools.WPF/Assets/PrusaSlicer/sla_print/Universal 0.1 Fast - Medium Supports.ini deleted file mode 100644 index c43832c..0000000 --- a/UVtools.WPF/Assets/PrusaSlicer/sla_print/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/Controls/DummyControl.axaml b/UVtools.WPF/Controls/DummyControl.axaml index 9e91fca..743118c 100644 --- a/UVtools.WPF/Controls/DummyControl.axaml +++ b/UVtools.WPF/Controls/DummyControl.axaml @@ -4,5 +4,59 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="450" x:Class="UVtools.WPF.Controls.DummyControl"> - + + + + + + + + + + + + + + diff --git a/UVtools.WPF/Extensions/BitmapExtension.cs b/UVtools.WPF/Extensions/BitmapExtension.cs index c050bb8..d067661 100644 --- a/UVtools.WPF/Extensions/BitmapExtension.cs +++ b/UVtools.WPF/Extensions/BitmapExtension.cs @@ -24,7 +24,7 @@ namespace UVtools.WPF.Extensions public static class BitmapExtension { public static int GetStep(this WriteableBitmap bitmap) - => (int)(bitmap.Size.Width * 4); + => (int)bitmap.Size.Width; /// /// Gets the total length of this @@ -32,10 +32,13 @@ namespace UVtools.WPF.Extensions /// /// The total length of this public static int GetLength(this WriteableBitmap bitmap) - => (int) (bitmap.Size.Width * 4 * bitmap.Size.Height); + => (int) (bitmap.Size.Width * bitmap.Size.Height); public static int GetPixelPos(this WriteableBitmap bitmap, int x, int y) - => (int)(bitmap.Size.Width * 4 * y + x); + => (int)(bitmap.Size.Width * y + x); + + public static int GetPixelPos(this WriteableBitmap bitmap, System.Drawing.Point location) => + bitmap.GetPixelPos(location.X, location.Y); /// /// Gets a single pixel span to manipulate or read pixels @@ -43,33 +46,33 @@ namespace UVtools.WPF.Extensions /// Pixel type /// Input /// A containing all pixels in data memory - public static unsafe Span GetPixelSpan(this WriteableBitmap bitmap) + public static unsafe Span GetPixelSpan(this WriteableBitmap bitmap) { using var l = bitmap.Lock(); - return new Span(l.Address.ToPointer(), bitmap.GetLength()); + return new Span(l.Address.ToPointer(), bitmap.GetLength()); } - public static unsafe Span GetPixelSpan(this WriteableBitmap bitmap, int length, int offset = 0) + public static unsafe Span GetPixelSpan(this WriteableBitmap bitmap, int length, int offset = 0) { using var l = bitmap.Lock(); - return new Span(IntPtr.Add(l.Address, offset).ToPointer(), length); + return new Span(IntPtr.Add(l.Address, offset).ToPointer(), length); } - public static Span GetSinglePixelSpan(this WriteableBitmap bitmap, int x, int y, int length = 3) + public static Span GetSinglePixelSpan(this WriteableBitmap bitmap, int x, int y, int length = 1) { using var l = bitmap.Lock(); return bitmap.GetPixelSpan(length, bitmap.GetPixelPos(x, y)); } - public static Span GetSinglePixelPosSpan(this WriteableBitmap bitmap, int pos, int length = 3) + public static Span GetSinglePixelPosSpan(this WriteableBitmap bitmap, int pos, int length = 3) => bitmap.GetPixelSpan(length, pos); - public static unsafe Span GetPixelRowSpan(this WriteableBitmap bitmap, int y, int length = 0, int offset = 0) + public static unsafe Span GetPixelRowSpan(this WriteableBitmap bitmap, int y, int length = 0, int offset = 0) { using var l = bitmap.Lock(); - return new Span(IntPtr.Add(l.Address, (int) (bitmap.Size.Width * 4 * y + offset)).ToPointer(), (int) (length == 0 ? bitmap.Size.Width * 4 : length)); + return new Span(IntPtr.Add(l.Address, (int) (bitmap.Size.Width * y + offset)).ToPointer(), (int) (length == 0 ? bitmap.Size.Width : length)); } public static SKBitmap ToSkBitmap(this Mat mat) diff --git a/UVtools.WPF/MainWindow.Information.cs b/UVtools.WPF/MainWindow.Information.cs index e58eca4..0b39aaf 100644 --- a/UVtools.WPF/MainWindow.Information.cs +++ b/UVtools.WPF/MainWindow.Information.cs @@ -9,16 +9,19 @@ using System; using System.Collections.ObjectModel; using System.Drawing; using System.IO; +using System.Linq; using System.Text; using Avalonia; using Avalonia.Controls; +using Avalonia.Input; using Emgu.CV.CvEnum; using MessageBox.Avalonia.Enums; +using UVtools.Core; using UVtools.Core.PixelEditor; -using UVtools.WPF.Controls; using UVtools.WPF.Extensions; using UVtools.WPF.Structures; using Bitmap = Avalonia.Media.Imaging.Bitmap; +using Helpers = UVtools.WPF.Controls.Helpers; using Point = System.Drawing.Point; namespace UVtools.WPF @@ -26,10 +29,36 @@ namespace UVtools.WPF public partial class MainWindow { public ObservableCollection SlicerProperties { get; } = new ObservableCollection(); + public DataGrid PropertiesGrid; private uint _visibleThumbnailIndex; private Bitmap _visibleThumbnailImage; + public void InitInformation() + { + PropertiesGrid = this.Find("PropertiesGrid"); + PropertiesGrid.KeyUp += PropertiesGridOnKeyUp; + } + + private void PropertiesGridOnKeyUp(object? sender, KeyEventArgs e) + { + switch (e.Key) + { + case Key.Escape: + PropertiesGrid.SelectedItems.Clear(); + break; + case Key.Multiply: + var selectedItems = PropertiesGrid.SelectedItems.OfType().ToList(); + PropertiesGrid.SelectedItems.Clear(); + foreach (SlicerProperty item in SlicerProperties) + { + if (!selectedItems.Contains(item)) + PropertiesGrid.SelectedItems.Add(item); + } + break; + } + } + #region Thumbnails public uint VisibleThumbnailIndex { diff --git a/UVtools.WPF/MainWindow.Issues.cs b/UVtools.WPF/MainWindow.Issues.cs index 78827eb..1f96b03 100644 --- a/UVtools.WPF/MainWindow.Issues.cs +++ b/UVtools.WPF/MainWindow.Issues.cs @@ -51,6 +51,14 @@ namespace UVtools.WPF #endregion #region Methods + + public void InitIssues() + { + IssuesGrid = this.FindControl("IssuesGrid"); + IssuesGrid.CellPointerPressed += IssuesGridOnCellPointerPressed; + IssuesGrid.KeyUp += IssuesGridOnKeyUp; + } + public void IssueGoPrevious() { if (!IssueCanGoPrevious) return; @@ -287,7 +295,7 @@ namespace UVtools.WPF public string IssueSelectedIndexStr => (_issueSelectedIndex + 1).ToString().PadLeft(Issues.Count.ToString().Length, '0'); - private void IssuesGridOnSelectionChanged(PointerPressedEventArgs pointer = null) + private void IssuesGridOnSelectionChanged() { if (IssuesGrid.SelectedItems.Count != 1) return; if (!(IssuesGrid.SelectedItem is LayerIssue issue)) return; @@ -295,14 +303,14 @@ namespace UVtools.WPF if (issue.Type == LayerIssue.IssueType.TouchingBound || issue.Type == LayerIssue.IssueType.EmptyLayer || (issue.X == -1 && issue.Y == -1)) { - ZoomToFit(pointer); + ZoomToFit(); } else if (issue.X >= 0 && issue.Y >= 0) { - if (Settings.LayerPreview.ZoomIssues ^ (!ReferenceEquals(pointer, null) && (pointer.KeyModifiers & KeyModifiers.Alt) != 0)) + if (Settings.LayerPreview.ZoomIssues ^ (_globalModifiers & KeyModifiers.Alt) != 0) { - ZoomToIssue(issue, pointer); + ZoomToIssue(issue); } else { @@ -313,7 +321,7 @@ namespace UVtools.WPF if (!LayerImageBox.GetSourceImageRegion().Contains(GetTransposedIssueBounds(issue).ToAvalonia())) { - CenterAtIssue(issue, pointer); + CenterAtIssue(issue); } } } @@ -331,13 +339,13 @@ namespace UVtools.WPF var pointer = e.PointerPressedEventArgs.GetCurrentPoint(IssuesGrid); if (pointer.Properties.IsLeftButtonPressed) { - ZoomToIssue(issue, e.PointerPressedEventArgs); + ZoomToIssue(issue); return; } if (pointer.Properties.IsRightButtonPressed) { - ZoomToFit(e.PointerPressedEventArgs); + ZoomToFit(); return; } @@ -345,6 +353,30 @@ namespace UVtools.WPF } + private void IssuesGridOnKeyUp(object? sender, KeyEventArgs e) + { + switch (e.Key) + { + case Key.Escape: + IssuesGrid.SelectedItems.Clear(); + break; + case Key.Multiply: + var selectedItems = IssuesGrid.SelectedItems.OfType().ToList(); + IssuesGrid.SelectedItems.Clear(); + foreach (LayerIssue item in Issues) + { + if (!selectedItems.Contains(item)) + IssuesGrid.SelectedItems.Add(item); + } + + + break; + case Key.Delete: + OnClickIssueRemove(); + break; + } + } + public async void OnClickRepairIssues() { await ShowRunOperation(typeof(OperationRepairLayers)); diff --git a/UVtools.WPF/MainWindow.LayerPreview.cs b/UVtools.WPF/MainWindow.LayerPreview.cs index 659b3ba..a156690 100644 --- a/UVtools.WPF/MainWindow.LayerPreview.cs +++ b/UVtools.WPF/MainWindow.LayerPreview.cs @@ -11,12 +11,14 @@ using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.IO; +using System.Linq; using System.Threading.Tasks; using System.Timers; using Avalonia; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Platform; +using Avalonia.Threading; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; @@ -58,6 +60,77 @@ namespace UVtools.WPF public LayerCache LayerCache = new LayerCache(); private Point _lastPixelMouseLocation = Point.Empty; + public void InitLayerPreview() + { + LayerImageBox = this.FindControl("LayerImage"); + LayerSlider = this.FindControl("Layer.Navigation.Slider"); + LayerNavigationTooltipPanel = this.FindControl("Layer.Navigation.Tooltip.Panel"); + LayerNavigationTooltipBorder = this.FindControl("Layer.Navigation.Tooltip.Border"); + + _showLayerImageDifference = Settings.LayerPreview.ShowLayerDifference; + _showLayerOutlinePrintVolumeBoundary = Settings.LayerPreview.VolumeBoundsOutline; + _showLayerOutlineLayerBoundary = Settings.LayerPreview.LayerBoundsOutline; + _showLayerOutlineHollowAreas = Settings.LayerPreview.HollowOutline; + + LayerImageBox.PropertyChanged += (sender, e) => + { + if (e.PropertyName == nameof(LayerImageBox.Zoom)) + { + RaisePropertyChanged(nameof(LayerZoomStr)); + AddLogVerbose($"Zoomed from {LayerImageBox.OldZoom} to {LayerImageBox.Zoom}"); + + if (ShowLayerImageCrosshairs && + Issues.Count > 0 && + (LayerImageBox.OldZoom < 50 && + LayerImageBox.Zoom >= 50 // Trigger refresh as crosshair thickness increases at lower zoom levels + || LayerImageBox.OldZoom > 100 && LayerImageBox.Zoom <= 100 + || LayerImageBox.OldZoom >= 50 && LayerImageBox.OldZoom <= 100 && (LayerImageBox.Zoom < 50 || LayerImageBox.Zoom > 100) + || LayerImageBox.OldZoom <= AppSettings.CrosshairFadeLevel && + LayerImageBox.Zoom > AppSettings.CrosshairFadeLevel // Trigger refresh as zoom level manually crosses fade threshold + || LayerImageBox.OldZoom > AppSettings.CrosshairFadeLevel && LayerImageBox.Zoom <= AppSettings.CrosshairFadeLevel) + + ) + { + if (Settings.LayerPreview.CrosshairShowOnlyOnSelectedIssues) + { + if (IssuesGrid.SelectedItems.Count == 0 || !IssuesGrid.SelectedItems.Cast().Any( + issue => // Find a valid candidate to update layer preview, otherwise quit + issue.LayerIndex == ActualLayer && issue.Type != LayerIssue.IssueType.EmptyLayer && + issue.Type != LayerIssue.IssueType.TouchingBound)) return; + } + else + { + if (!Issues.Any( + issue => // Find a valid candidate to update layer preview, otherwise quit + issue.LayerIndex == ActualLayer && issue.Type != LayerIssue.IssueType.EmptyLayer && + issue.Type != LayerIssue.IssueType.TouchingBound)) return; + } + + // A timer is used here rather than invoking ShowLayer directly to eliminate sublte visual flashing + // that will occur on the transition when the crosshair fades or unfades if ShowLayer is called directly. + ShowLayer(); + } + + return; + } + + if (e.PropertyName == nameof(LayerImageBox.SelectionRegion)) + { + RaisePropertyChanged(nameof(LayerROIStr)); + } + + }; + + LayerImageBox.PointerMoved += LayerImageBoxOnPointerMoved; + LayerImageBox.KeyUp += LayerImageBox_KeyUp; + LayerImageBox.PointerReleased += LayerImageBox_PointerReleased; + + _layerNavigationTooltipTimer.Elapsed += (sender, args) => + { + Dispatcher.UIThread.InvokeAsync(() => RaisePropertyChanged(nameof(LayerNavigationTooltipMargin))); + }; + } + public bool ShowLayerImageRotated { get => _showLayerImageRotated; @@ -310,6 +383,11 @@ namespace UVtools.WPF ActualLayer = SliderMaximumValue; } + public void RefreshLayerImage() + { + LayerImageBox.Image = LayerCache.ImageBgr.ToBitmap(); + } + /// /// Shows a layer number /// @@ -821,12 +899,12 @@ namespace UVtools.WPF /// Zoom the layer preview to the passed issue, or if appropriate for issue type, /// Zoom to fit the plate or print bounds. /// - private void ZoomToIssue(LayerIssue issue, PointerPressedEventArgs pointer = null) + private void ZoomToIssue(LayerIssue issue) { if (issue.Type == LayerIssue.IssueType.TouchingBound || issue.Type == LayerIssue.IssueType.EmptyLayer || (issue.X == -1 && issue.Y == -1)) { - ZoomToFit(pointer); + ZoomToFit(); return; } @@ -854,12 +932,12 @@ namespace UVtools.WPF /// Center the layer preview on the passed issue, or if appropriate for issue type, /// Zoom to fit the plate or print bounds. /// - private void CenterAtIssue(LayerIssue issue, PointerPressedEventArgs pointer) + private void CenterAtIssue(LayerIssue issue) { if (issue.Type == LayerIssue.IssueType.TouchingBound || issue.Type == LayerIssue.IssueType.EmptyLayer || (issue.X == -1 && issue.Y == -1)) { - ZoomToFit(pointer); + ZoomToFit(); } if (issue.X >= 0 && issue.Y >= 0) @@ -878,14 +956,14 @@ namespace UVtools.WPF LayerImageBox.ZoomToRegion(SlicerFile.LayerManager.BoundingRectangle); } - private void ZoomToFit(PointerPressedEventArgs pointer = null) + private void ZoomToFit() { if (!IsFileLoaded) return; // If ALT key is pressed when ZoomToFit is performed, the configured option for // zoom to plate vs. zoom to print bounds will be inverted. - if (Settings.LayerPreview.ZoomToFitPrintVolumeBounds ^ (!ReferenceEquals(pointer, null) && (pointer.KeyModifiers & KeyModifiers.Alt) != 0)) + if (Settings.LayerPreview.ZoomToFitPrintVolumeBounds ^ (_globalModifiers & KeyModifiers.Alt) != 0) { if (!_showLayerImageRotated) { @@ -959,8 +1037,10 @@ namespace UVtools.WPF //location = pbLayer.PointToImage(e.Location); _lastPixelMouseLocation = Point.Empty; + var imagePosition = LayerImageBox.PointToImage(pointer.Position).ToDotNet(); + // Left or Alt-Right Adds pixel, Right or Alt-Left removes pixel - DrawPixel(e.InitialPressMouseButton == MouseButton.Left ^ (e.KeyModifiers & KeyModifiers.Alt) != 0, pointer.Position.ToDotNet(), e.KeyModifiers); + DrawPixel(e.InitialPressMouseButton == MouseButton.Left ^ (e.KeyModifiers & KeyModifiers.Alt) != 0, imagePosition, e.KeyModifiers); } private void LayerImageBox_KeyUp(object? sender, KeyEventArgs e) @@ -971,72 +1051,8 @@ namespace UVtools.WPF e.Handled = true; return; } - if (e.Key == Key.LeftShift || - e.Key == Key.RightShift || - (e.KeyModifiers & KeyModifiers.Shift) == 0 || - (e.KeyModifiers & KeyModifiers.Control) == 0) - { - LayerImageBox.Cursor = StaticControls.ArrowCursor; - LayerImageBox.AutoPan = true; - LayerImageBox.SelectionMode = AdvancedImageBox.SelectionModes.None; - //lbLayerImageTooltipOverlay.Visible = false; - e.Handled = true; - } } - private void LayerImageBox_KeyDown(object? sender, KeyEventArgs e) - { - if (e.Handled - || !IsFileLoaded - || LayerImageBox.IsPanning - || LayerImageBox.Cursor == StaticControls.CrossCursor - || LayerImageBox.Cursor == StaticControls.HandCursor - || LayerImageBox.SelectionMode == AdvancedImageBox.SelectionModes.Rectangle - ) return; - - // Pixel Edit is active, Shift is down, and the cursor is over the image region. - if (e.KeyModifiers == KeyModifiers.Shift) - { - if (IsPixelEditorActive) - { - LayerImageBox.AutoPan = false; - LayerImageBox.Cursor = StaticControls.CrossCursor; - /*lbLayerImageTooltipOverlay.Text = "Pixel editing is on:\n" + - "» Click over a pixel to draw\n" + - "» Hold CTRL to clear pixels"; - - UpdatePixelEditorCursor();*/ - } - else - { - LayerImageBox.Cursor = StaticControls.CrossCursor; - LayerImageBox.SelectionMode = AdvancedImageBox.SelectionModes.Rectangle; - /*lbLayerImageTooltipOverlay.Text = "ROI selection mode:\n" + - "» Left-click drag to select a fixed region\n" + - "» Left-click + ALT drag to select specific objects\n" + - "» Right click on a specific object to select it\n" + - "Press Esc to clear the ROI";*/ - } - - //lbLayerImageTooltipOverlay.Visible = Settings.Default.LayerTooltipOverlay; - e.Handled = true; - return; - } - - if (e.KeyModifiers == KeyModifiers.Control) - { - LayerImageBox.Cursor = StaticControls.HandCursor; - LayerImageBox.AutoPan = false; - /*lbLayerImageTooltipOverlay.Text = "Issue selection mode:\n" + - "» Click over an issue to select it"; - - lbLayerImageTooltipOverlay.Visible = Settings.Default.LayerTooltipOverlay;*/ - e.Handled = true; - return; - } - } - - private void LayerImageBoxOnPointerMoved(object? sender, PointerEventArgs e) { var pointer = e.GetCurrentPoint(LayerImageBox); diff --git a/UVtools.WPF/MainWindow.PixelEditor.cs b/UVtools.WPF/MainWindow.PixelEditor.cs index 82fa17c..fb90a8f 100644 --- a/UVtools.WPF/MainWindow.PixelEditor.cs +++ b/UVtools.WPF/MainWindow.PixelEditor.cs @@ -8,14 +8,20 @@ using System; using System.Collections.ObjectModel; +using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using Avalonia.Controls; using Avalonia.Input; +using Avalonia.Media; +using Avalonia.Media.Imaging; using DynamicData; +using Emgu.CV; using Emgu.CV.CvEnum; +using Emgu.CV.Structure; using MessageBox.Avalonia.Enums; +using UVtools.Core.Extensions; using UVtools.Core.PixelEditor; using UVtools.WPF.Extensions; @@ -39,17 +45,54 @@ namespace UVtools.WPF set => RaiseAndSetIfChanged(ref _selectedPixelOperationTabIndex, value); } + public void InitPixelEditor() + { + DrawingsGrid = this.FindControl("DrawingsGrid"); + DrawingsGrid.KeyUp += DrawingsGridOnKeyUp; + DrawingsGrid.SelectionChanged += (sender, args) => + { + ShowLayer(); + }; + } + + private void DrawingsGridOnKeyUp(object? sender, KeyEventArgs e) + { + switch (e.Key) + { + case Key.Escape: + DrawingsGrid.SelectedItems.Clear(); + break; + case Key.Multiply: + var selectedItems = DrawingsGrid.SelectedItems.OfType().ToList(); + DrawingsGrid.SelectedItems.Clear(); + foreach (PixelOperation item in Drawings) + { + if (!selectedItems.Contains(item)) + DrawingsGrid.SelectedItems.Add(item); + } + + + break; + case Key.Delete: + OnClickDrawingRemove(); + break; + } + } + public void OnClickDrawingRemove() { if (DrawingsGrid.SelectedItems.Count == 0) return; Drawings.RemoveMany(DrawingsGrid.SelectedItems.Cast()); + ShowLayer(); } public async void OnClickDrawingClear() { - if(await this.MessageBoxQuestion($"Are you sure you want to clear {Drawings.Count} operations?", + if (Drawings.Count == 0) return; + if (await this.MessageBoxQuestion($"Are you sure you want to clear {Drawings.Count} operations?", "Clear pixel editor operations?") != ButtonResult.Yes) return; Drawings.Clear(); + ShowLayer(); } void DrawPixel(bool isAdd, Point location, KeyModifiers keyModifiers) @@ -77,160 +120,160 @@ namespace UVtools.WPF return; } - PixelOperation operation = null; - //Bitmap bmp = pbLayer.Image as Bitmap; + WriteableBitmap bitmap = (WriteableBitmap)LayerImageBox.Image; + //var context = CreateRenderTarget().CreateDrawingContext(bitmap); + + //Bitmap bmp = pbLayer.Image as Bitmap; if (SelectedPixelOperationTabIndex == (byte)PixelOperation.PixelOperationType.Drawing) { uint minLayer = Math.Max(0, _actualLayer - DrawingPixelDrawing.LayersBelow); - uint maxLayer = Math.Min(SlicerFile.LayerCount - 1, - _actualLayer + DrawingPixelDrawing.LayersAbove); + uint maxLayer = Math.Min(SlicerFile.LayerCount - 1, _actualLayer + DrawingPixelDrawing.LayersAbove); for (uint layerIndex = minLayer; layerIndex <= maxLayer; layerIndex++) { - operation = new PixelDrawing(layerIndex, realLocation, DrawingPixelDrawing.LineType, + var operationDrawing = new PixelDrawing(layerIndex, realLocation, DrawingPixelDrawing.LineType, DrawingPixelDrawing.BrushShape, DrawingPixelDrawing.BrushSize, DrawingPixelDrawing.Thickness, isAdd); //if (PixelHistory.Contains(operation)) continue; - Drawings.Add(operation); + Drawings.Add(operationDrawing); - if (layerIndex == ActualLayer) + if (layerIndex == _actualLayer) { - /*using (var gfx = Graphics.FromImage(bmp)) + var color = isAdd + ? Settings.PixelEditor.AddPixelColor + : Settings.PixelEditor.RemovePixelColor; + + if (operationDrawing.BrushSize == 1) { - int shiftPos = brushSize / 2; - gfx.SmoothingMode = SmoothingMode.HighSpeed; - - var color = isAdd - ? (flvPixelHistory.SelectedObjects.Contains(operation) - ? Settings.Default.PixelEditorAddPixelHLColor - : Settings.Default.PixelEditorAddPixelColor) - : (flvPixelHistory.SelectedObjects.Contains(operation) - ? Settings.Default.PixelEditorRemovePixelHLColor - : Settings.Default.PixelEditorRemovePixelColor); - if (lineType == LineType.AntiAlias && brushSize > 1) + unsafe { - gfx.SmoothingMode = SmoothingMode.AntiAlias; + using (var bl = bitmap.Lock()) + { + var data = (uint*)bl.Address.ToPointer(); + data[bitmap.GetPixelPos(location)] = + color.ToUint32(); + } } + + LayerImageBox.InvalidateArrange(); + // LayerCache.ImageBgr.SetByte(operationDrawing.Location.X, operationDrawing.Location.Y, + // new[] { color.B, color.G, color.R }); + continue; + } - switch (shapeType) - { - case PixelDrawing.BrushShapeType.Rectangle: - if (thickness > 0) - gfx.DrawRectangle(new Pen(color, thickness), Math.Max(0, location.X - shiftPos), - Math.Max(0, location.Y - shiftPos), - (int)nmPixelEditorDrawingBrushSize.Value, - (int)nmPixelEditorDrawingBrushSize.Value); - else - gfx.FillRectangle(new SolidBrush(color), Math.Max(0, location.X - shiftPos), - Math.Max(0, location.Y - shiftPos), - (int)nmPixelEditorDrawingBrushSize.Value, - (int)nmPixelEditorDrawingBrushSize.Value); - break; - case PixelDrawing.BrushShapeType.Circle: - if (thickness > 0) - gfx.DrawEllipse(new Pen(color, thickness), Math.Max(0, location.X - shiftPos), - Math.Max(0, location.Y - shiftPos), - (int)nmPixelEditorDrawingBrushSize.Value, - (int)nmPixelEditorDrawingBrushSize.Value); - else - gfx.FillEllipse(new SolidBrush(color), Math.Max(0, location.X - shiftPos), - Math.Max(0, location.Y - shiftPos), - (int)nmPixelEditorDrawingBrushSize.Value, - (int)nmPixelEditorDrawingBrushSize.Value); - break; - default: - throw new ArgumentOutOfRangeException(); - } - }*/ + switch (operationDrawing.BrushShape) + { + case PixelDrawing.BrushShapeType.Rectangle: + CvInvoke.Rectangle(LayerCache.ImageBgr, GetTransposedRectangle(operationDrawing.Rectangle), + new MCvScalar(color.B, color.G, color.R), operationDrawing.Thickness, + operationDrawing.LineType); + break; + case PixelDrawing.BrushShapeType.Circle: + CvInvoke.Circle(LayerCache.ImageBgr, location, operationDrawing.BrushSize / 2, + new MCvScalar(color.B, color.G, color.R), operationDrawing.Thickness, + operationDrawing.LineType); + break; + default: + throw new ArgumentOutOfRangeException(); + } + + RefreshLayerImage(); } } } - /*else if (tabControlPixelEditor.SelectedIndex == (byte)PixelOperation.PixelOperationType.Text) + else if (SelectedPixelOperationTabIndex == (byte)PixelOperation.PixelOperationType.Text) { - if (string.IsNullOrEmpty(tbPixelEditorTextText.Text) || nmPixelEditorTextFontScale.Value < 0.2m) return; + if (string.IsNullOrEmpty(DrawingPixelText.Text) || DrawingPixelText.FontScale < 0.2) return; - LineType lineType = (LineType)cbPixelEditorTextLineType.SelectedItem; - FontFace fontFace = (FontFace)cbPixelEditorTextFontFace.SelectedItem; - - uint minLayer = (uint)Math.Max(0, ActualLayer - nmPixelEditorTextLayersBelow.Value); - uint maxLayer = (uint)Math.Min(SlicerFile.LayerCount - 1, - ActualLayer + nmPixelEditorTextLayersAbove.Value); + uint minLayer = Math.Max(0, ActualLayer - DrawingPixelText.LayersBelow); + uint maxLayer = Math.Min(SlicerFile.LayerCount - 1, + ActualLayer + DrawingPixelText.LayersAbove); for (uint layerIndex = minLayer; layerIndex <= maxLayer; layerIndex++) { - operation = new PixelText(layerIndex, realLocation, lineType, - fontFace, (double)nmPixelEditorTextFontScale.Value, (ushort)nmPixelEditorTextThickness.Value, - tbPixelEditorTextText.Text, cbPixelEditorTextMirror.Checked, isAdd); + var operationText = new PixelText(layerIndex, realLocation, DrawingPixelText.LineType, + DrawingPixelText.Font, DrawingPixelText.FontScale, DrawingPixelText.Thickness, + DrawingPixelText.Text, DrawingPixelText.Mirror, isAdd); - if (PixelHistory.Contains(operation)) continue; - PixelHistory.Add(operation); + //if (PixelHistory.Contains(operation)) continue; + //PixelHistory.Add(operation); + Drawings.Add(operationText); + + /*var color = isAdd + ? Settings.PixelEditor.AddPixelColor : Settings.PixelEditor.RemovePixelColor; + + if (layerIndex == _actualLayer) + { + CvInvoke.PutText(LayerCache.ImageBgr, operationText.Text, location, + operationText.Font, operationText.FontScale, new MCvScalar(color.B, color.G, color.R), + operationText.Thickness, operationText.LineType, operationText.Mirror); + RefreshLayerImage(); + }*/ } ShowLayer(); return; } - else if (tabControlPixelEditor.SelectedIndex == (byte)PixelOperation.PixelOperationType.Eraser) + else if (SelectedPixelOperationTabIndex == (byte)PixelOperation.PixelOperationType.Eraser) { - if (ActualLayerImage.GetByte(realLocation) < 10) return; - uint minLayer = (uint)Math.Max(0, ActualLayer - nmPixelEditorEraserLayersBelow.Value); - uint maxLayer = (uint)Math.Min(SlicerFile.LayerCount - 1, - ActualLayer + nmPixelEditorEraserLayersAbove.Value); + if (LayerCache.Image.GetByte(realLocation) < 10) return; + uint minLayer = Math.Max(0, ActualLayer - DrawingPixelEraser.LayersBelow); + uint maxLayer = Math.Min(SlicerFile.LayerCount - 1, + ActualLayer + DrawingPixelEraser.LayersAbove); for (uint layerIndex = minLayer; layerIndex <= maxLayer; layerIndex++) { - operation = new PixelEraser(layerIndex, realLocation); + var operationEraser = new PixelEraser(layerIndex, realLocation); - if (PixelHistory.Contains(operation)) continue; - PixelHistory.Add(operation); + //if (PixelHistory.Contains(operation)) continue; + Drawings.Add(operationEraser); + + /*if (layerIndex == _actualLayer) + { + for (int i = 0; i < LayerCache.LayerContours.Size; i++) + { + if (CvInvoke.PointPolygonTest(LayerCache.LayerContours[i], operationEraser.Location, false) >= 0) + { + CvInvoke.DrawContours(LayerCache.ImageBgr, LayerCache.LayerContours, i, + new MCvScalar(Settings.PixelEditor.RemovePixelColor.B, Settings.PixelEditor.RemovePixelColor.G, Settings.PixelEditor.RemovePixelColor.R), -1); + RefreshLayerImage(); + break; + } + } + }*/ } ShowLayer(); return; } - else if (tabControlPixelEditor.SelectedIndex == (byte)PixelOperation.PixelOperationType.Supports) + else if (SelectedPixelOperationTabIndex == (byte)PixelOperation.PixelOperationType.Supports) { if (ActualLayer == 0) return; - operation = new PixelSupport(ActualLayer, realLocation, - (byte)nmPixelEditorSupportsTipDiameter.Value, (byte)nmPixelEditorSupportsPillarDiameter.Value, - (byte)nmPixelEditorSupportsBaseDiameter.Value); + var operationSupport = new PixelSupport(ActualLayer, realLocation, + DrawingPixelSupport.TipDiameter, DrawingPixelSupport.PillarDiameter, + DrawingPixelSupport.BaseDiameter); - if (PixelHistory.Contains(operation)) return; - PixelHistory.Add(operation); + //if (PixelHistory.Contains(operation)) return; + Drawings.Add(operationSupport); - SolidBrush brush = new SolidBrush(flvPixelHistory.SelectedObjects.Contains(operation) - ? Settings.Default.PixelEditorSupportHLColor - : Settings.Default.PixelEditorSupportColor); - using (var gfx = Graphics.FromImage(bmp)) - { - int shiftPos = (int)nmPixelEditorSupportsTipDiameter.Value / 2; - gfx.SmoothingMode = SmoothingMode.HighSpeed; - gfx.FillEllipse(brush, Math.Max(0, location.X - shiftPos), Math.Max(0, location.Y - shiftPos), - (int)nmPixelEditorSupportsTipDiameter.Value, (int)nmPixelEditorSupportsTipDiameter.Value); - } + CvInvoke.Circle(LayerCache.ImageBgr, location, operationSupport.TipDiameter / 2, + new MCvScalar(Settings.PixelEditor.SupportsColor.B, Settings.PixelEditor.SupportsColor.G, Settings.PixelEditor.SupportsColor.R), -1); + RefreshLayerImage(); } - else if (tabControlPixelEditor.SelectedIndex == (byte)PixelOperation.PixelOperationType.DrainHole) + else if (SelectedPixelOperationTabIndex == (byte)PixelOperation.PixelOperationType.DrainHole) { if (ActualLayer == 0) return; - operation = new PixelDrainHole(ActualLayer, realLocation, (byte)nmPixelEditorDrainHoleDiameter.Value); + var operationDrainHole = new PixelDrainHole(ActualLayer, realLocation, DrawingPixelDrainHole.Diameter); - if (PixelHistory.Contains(operation)) return; - PixelHistory.Add(operation); + //if (PixelHistory.Contains(operation)) return; + Drawings.Add(operationDrainHole); - SolidBrush brush = new SolidBrush(flvPixelHistory.SelectedObjects.Contains(operation) - ? Settings.Default.PixelEditorDrainHoleHLColor - : Settings.Default.PixelEditorDrainHoleColor); - using (var gfx = Graphics.FromImage(bmp)) - { - int shiftPos = (int)nmPixelEditorDrainHoleDiameter.Value / 2; - gfx.SmoothingMode = SmoothingMode.HighSpeed; - gfx.FillEllipse(brush, Math.Max(0, location.X - shiftPos), Math.Max(0, location.Y - shiftPos), - (int)nmPixelEditorDrainHoleDiameter.Value, (int)nmPixelEditorDrainHoleDiameter.Value); - } + CvInvoke.Circle(LayerCache.ImageBgr, operationDrainHole.Location, operationDrainHole.Diameter / 2, + new MCvScalar(Settings.PixelEditor.DrainHoleColor.B, Settings.PixelEditor.DrainHoleColor.G, Settings.PixelEditor.DrainHoleColor.R), -1); + RefreshLayerImage(); } else { throw new NotImplementedException("Missing pixel operation"); } - - */ } } } diff --git a/UVtools.WPF/MainWindow.axaml b/UVtools.WPF/MainWindow.axaml index b84cb02..713deb4 100644 --- a/UVtools.WPF/MainWindow.axaml +++ b/UVtools.WPF/MainWindow.axaml @@ -705,6 +705,7 @@ Grid.Column="2" Grid.ColumnSpan="3" Minimum="1" + Maximum="255" Value="{Binding DrawingPixelDrawing.BrushSize}"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -797,6 +918,53 @@ Text="Eraser" /> + + + + + + + + + + + + + + + + + + + @@ -812,6 +980,69 @@ Text="Supports" /> + + + + + + + + + + + + + + + + + + + + + @@ -827,14 +1058,79 @@ Text="Drain holes" /> + + + + + + + + + + + + + + + + + + + + + - + - + - - - - + + - - - - + + + + + + + - - - - @@ -1197,6 +1492,15 @@ + +