Skip to content

Commit

Permalink
v5.0.0
Browse files Browse the repository at this point in the history
- **File formats:**
  - (Add) Anycubic PWSZ Zip file format (#892)
  - (Add) Support for Anycubic Photon Mono 4 (pm4n) and corresponding PrusaSlicer profile
  - (Add) Support for Anycubic Photon Mono 4 Ultra (pm4u) and corresponding PrusaSlicer profile
  - (Add) Support for Anycubic Photon Mono M7 (pm7) and corresponding PrusaSlicer profile
  - (Add) Support for Anycubic Photon Mono M7 Max (pm7m) and corresponding PrusaSlicer profile
  - (Add) Support for Anycubic Photon Mono M7 Pro (pwsz) and corresponding PrusaSlicer profile
- (Add) PrusaSlicer printer: Phrozen Sonic Mighty Revo (#950)
- (Add) Litophane tool: Option to enable or disable the separation of grayscale pixels (#954)
- (Add) Exposure time finder: Re-arrange exposure text layout and allow to change it font (#955)
- (Add) Setting: Available RAM lower limit - Sets a lower limiter for the available memory RAM the program is allowed to run operations.
                   When meet the threshold, a stopping action will be queued to relief pressure and maintain the system stability.
                   In cases where is unable to pause or cancel the operation, the program will be forced to close and trigger an exception to ensure the system stability.
                   Note: This limiter will check the RAM every 2 seconds while operations are running, if you have set a very low limit there is a chance to consume more RAM in the time and cause system instability.
                   System can also reserve some RAM to prevent depletion and start to use SWAP memory, doing such with a low limit and is possible that the limiter never trigger.
                   0: Ignore the RAM limiter.
                   Default: 1 GB
- (Improvement) Change the gif animation library to a more efficient and compatible one
- (Fix) Contour traverse function was duplicating the contours, causing wrong calculations
- (Fix) Blur: Prevent stack blur from use even values
- (Upgrade) AvaloniaUI from 11.1.3 to 11.2.2
- (Upgrade) .NET from 6.0.33 to 9.0.0
  - .NET 6.0 is end of life and will no longer supported
  - This represents three major upgrades and will increase the system os version requirements, see more here: https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md
  - With this upgrade the software will be able to take advantage of the new features and improvements of the .NET 9.0, including a significant performance boost
  • Loading branch information
sn4k3 committed Dec 18, 2024
1 parent 6790b5f commit fbeb05e
Show file tree
Hide file tree
Showing 59 changed files with 1,499 additions and 575 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/package-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,10 @@ jobs:
git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
git branch --remote --contains | grep origin/master
- name: 🟣 Setup .NET 7.0
- name: 🟣 Setup .NET 9.0
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
dotnet-version: 9.0.x

#- name: Set VERSION variable from tag
# run: |
Expand All @@ -95,3 +95,6 @@ jobs:
- name: 🚀 Push nuget.org
run: dotnet nuget push UVtools*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${NUGET_TOKEN} --skip-duplicate

- name: 🚀 Push Github
run: dotnet nuget push UVtools*.nupkg --source https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json --api-key ${{ github.token }} --skip-duplicate
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# Changelog

## 18/12/2024 - v5.0.0

- **File formats:**
- (Add) Anycubic PWSZ Zip file format (#892)
- (Add) Support for Anycubic Photon Mono 4 (pm4n) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono 4 Ultra (pm4u) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono M7 (pm7) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono M7 Max (pm7m) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono M7 Pro (pwsz) and corresponding PrusaSlicer profile
- (Add) PrusaSlicer printer: Phrozen Sonic Mighty Revo (#950)
- (Add) Litophane tool: Option to enable or disable the separation of grayscale pixels (#954)
- (Add) Exposure time finder: Re-arrange exposure text layout and allow to change it font (#955)
- (Add) Setting: Available RAM lower limit - Sets a lower limiter for the available memory RAM the program is allowed to run operations.
When meet the threshold, a stopping action will be queued to relief pressure and maintain the system stability.
In cases where is unable to pause or cancel the operation, the program will be forced to close and trigger an exception to ensure the system stability.
Note: This limiter will check the RAM every 2 seconds while operations are running, if you have set a very low limit there is a chance to consume more RAM in the time and cause system instability.
System can also reserve some RAM to prevent depletion and start to use SWAP memory, doing such with a low limit and is possible that the limiter never trigger.
0: Ignore the RAM limiter.
Default: 1 GB
- (Improvement) Change the gif animation library to a more efficient and compatible one
- (Fix) Contour traverse function was duplicating the contours, causing wrong calculations
- (Fix) Blur: Prevent stack blur from use even values
- (Upgrade) AvaloniaUI from 11.1.3 to 11.2.2
- (Upgrade) .NET from 6.0.33 to 9.0.0
- .NET 6.0 is end of life and will no longer supported
- This represents three major upgrades and will increase the system os version requirements, see more here: https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md
- With this upgrade the software will be able to take advantage of the new features and improvements of the .NET 9.0, including a significant performance boost

## 04/10/2024 - v4.4.3

- **File formats:**
Expand Down
25 changes: 19 additions & 6 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
<Project>
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<!-- Project -->
<TargetFramework>net9.0</TargetFramework>
<Platforms>AnyCPU;x64;ARM64</Platforms>
<Nullable>enable</Nullable>

<!-- Metadata -->
<Authors>Tiago Conceição, sn4k3</Authors>
<Company>PTRTECH</Company>
<Copyright>Copyright 2020-$([System.DateTime]::Now.ToString(`yyyy`)) © PTRTECH</Copyright>
<Description>MSLA/DLP, file analysis, calibration, repair, conversion and manipulation</Description>

<!-- Package -->
<ApplicationIcon>$(MSBuildThisFileDirectory)UVtools.CAD\UVtools.ico</ApplicationIcon>
<PackageIcon>UVtools.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
Expand All @@ -19,20 +23,29 @@
<PackageTags>msla, dlp, resin, printer, slicer, 3d printing, image processing, layers</PackageTags>
<RepositoryType>Git</RepositoryType>

<Nullable>enable</Nullable>

<!-- Sign -->
<SignAssembly>True</SignAssembly>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)build\UVtools.snk</AssemblyOriginatorKeyFile>

<!-- Set the path map and artifacts path. -->
<PathMap>$(MSBuildProjectDirectory)=$(MSBuildProjectName)</PathMap>
<ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath>
<CommonPublishDir>$(MSBuildThisFileDirectory)publish</CommonPublishDir>


<!-- Enable Build Acceleration in Visual Studio. -->
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>

<CommonPublishDir>$(MSBuildThisFileDirectory)publish</CommonPublishDir>
<!-- Versions -->
<UVtoolsVersion>5.0.0</UVtoolsVersion>
<AvaloniaVersion>11.2.2</AvaloniaVersion>

<!-- MvvmToolkit -->
<MvvmToolkitEnableINotifyPropertyChangingSupport>false</MvvmToolkitEnableINotifyPropertyChangingSupport>
</PropertyGroup>

<UVtoolsVersion>4.4.3</UVtoolsVersion>
<AvaloniaVersion>11.1.3</AvaloniaVersion>
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>

<ItemGroup>
Expand Down
43 changes: 43 additions & 0 deletions PrusaSlicer/printer/AnyCubic Photon Mono 4 Ultra.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# generated by PrusaSlicer 2.8.1+win64 on 2024-12-15 at 23:55:19 UTC
absolute_correction = 0
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,153.41x0,153.41x87.04,0x87.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 87.04
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 9024
display_pixels_y = 5120
display_width = 153.408
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
high_viscosity_tilt_time = 10
host_type = octoprint
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_MONO_4_ULTRA\nFILEFORMAT_PM4U\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2.5\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 224x168/PNG
43 changes: 43 additions & 0 deletions PrusaSlicer/printer/AnyCubic Photon Mono 4.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# generated by PrusaSlicer 2.8.1+win64 on 2024-12-15 at 23:56:57 UTC
absolute_correction = 0
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,153.41x0,153.41x87.04,0x87.04
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 87.04
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 9024
display_pixels_y = 5120
display_width = 153.408
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
high_viscosity_tilt_time = 10
host_type = octoprint
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_MONO_4\nFILEFORMAT_PM4N\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2.5\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 224x168/PNG
43 changes: 43 additions & 0 deletions PrusaSlicer/printer/AnyCubic Photon Mono M7 Max.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# generated by PrusaSlicer 2.8.1+win64 on 2024-12-15 at 23:53:58 UTC
absolute_correction = 0
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,298.08x0,298.08x165.6,0x165.6
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 165.6
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 6480
display_pixels_y = 3600
display_width = 298.08
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 1
high_viscosity_tilt_time = 10
host_type = octoprint
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 300
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO_M7_MAX\nFILEFORMAT_PM5M\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2.5\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 224x168/PNG
43 changes: 43 additions & 0 deletions PrusaSlicer/printer/AnyCubic Photon Mono M7 Pro.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# generated by PrusaSlicer 2.8.1+win64 on 2024-12-15 at 23:53:01 UTC
absolute_correction = 0
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,223.642x0,223.642x126.976,0x126.976
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 126.976
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 13312
display_pixels_y = 5120
display_width = 223.642
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 0
high_viscosity_tilt_time = 10
host_type = octoprint
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 230
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO_M7_PRO\nFILEFORMAT_PWSZ\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2.5\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 224x168/PNG
43 changes: 43 additions & 0 deletions PrusaSlicer/printer/AnyCubic Photon Mono M7.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# generated by PrusaSlicer 2.8.1+win64 on 2024-12-15 at 23:53:05 UTC
absolute_correction = 0
bed_custom_model =
bed_custom_texture =
bed_shape = 0x0,223.642x0,223.642x126.976,0x126.976
default_sla_material_profile = Prusa Orange Tough 0.05
default_sla_print_profile = 0.05 Normal
display_height = 126.976
display_mirror_x = 1
display_mirror_y = 0
display_orientation = landscape
display_pixels_x = 13312
display_pixels_y = 5120
display_width = 223.642
elefant_foot_compensation = 0.2
elefant_foot_min_width = 0.2
fast_tilt_time = 5
gamma_correction = 0
high_viscosity_tilt_time = 10
host_type = octoprint
inherits = Original Prusa SL1
max_exposure_time = 120
max_initial_exposure_time = 300
max_print_height = 230
min_exposure_time = 1
min_initial_exposure_time = 1
print_host =
printer_model = SL1
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTON_MONO_M7\nFILEFORMAT_PM7\n\nSTART_CUSTOM_VALUES\nWaitTimeBeforeCure_2.5\nBottomLiftHeight_8\nLiftHeight_8\nBottomLiftSpeed_120\nLiftSpeed_120\nRetractSpeed_120\nBottomLightPWM_255\nLightPWM_255\nEND_CUSTOM_VALUES
printer_settings_id =
printer_technology = SLA
printer_variant = default
printer_vendor =
printhost_apikey =
printhost_cafile =
relative_correction = 1,1
relative_correction_x = 1
relative_correction_y = 1
relative_correction_z = 1
sla_archive_format = SL1
sla_output_precision = 0.001
slow_tilt_time = 8
thumbnails = 224x168/PNG
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ But also, I need victims for test subject. Proceed at your own risk!

- SL1, SL1S (PrusaSlicer)
- Photon, Photons, CBDDLP, CTB, PHZ, FDG, ZIP (Chitubox)
- PWS, PW0, PWX, DLP, DL2P, PWMO, PWMA, PWMS, PWMX, PMX2, PWMB, PWSQ, PX6S, PM3, PM3N, PM3M, PM3R, PM5, PM5S, PWC (Photon Workshop)
- PWS, PW0, PWX, DLP, DL2P, PWMO, PWMA, PWMS, PWMX, PMX2, PWMB, PWSQ, PX6S, PM3, PM3N, PM3M, PM4M, PM4U, PM3R, PM5, PM5S, PWC, PM7, PM7M, PWSZ (Photon Workshop)
- JXS (GKone Slicer)
- ZCode (UnizMaker)
- ZCodex (Z-Suite)
Expand Down
31 changes: 24 additions & 7 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,26 @@
- **File formats:**
- (Change) Rename file and class from `PhotonSFile` to `AnycubicPhotonSFile`
- (Change) Rename file and class from `PhotonWorkshopFile` to `AnycubicFile`
- (Change) Rename file and class from `CXDLPFile` to `CrealityCXDLPFile`
- (Change) Rename convert menu group from `CXDLP` to `Creality CXDLP`
- (Fix) CTB (Version 5): `NullReferenceException` when trying to convert from a file with a `null` MaterialName (#857)
- (Fix) Sanitize file version before convert the file to ensure capabilities (#934)
- (Fix) Unable to set the format version when converting from files with a version that match it own default version (#857)
- (Add) Anycubic PWSZ Zip file format (#892)
- (Add) Support for Anycubic Photon Mono 4 (pm4n) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono 4 Ultra (pm4u) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono M7 (pm7) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono M7 Max (pm7m) and corresponding PrusaSlicer profile
- (Add) Support for Anycubic Photon Mono M7 Pro (pwsz) and corresponding PrusaSlicer profile
- (Add) PrusaSlicer printer: Phrozen Sonic Mighty Revo (#950)
- (Add) Litophane tool: Option to enable or disable the separation of grayscale pixels (#954)
- (Add) Exposure time finder: Re-arrange exposure text layout and allow to change it font (#955)
- (Add) Setting: Available RAM lower limit - Sets a lower limiter for the available memory RAM the program is allowed to run operations.
When meet the threshold, a stopping action will be queued to relief pressure and maintain the system stability.
In cases where is unable to pause or cancel the operation, the program will be forced to close and trigger an exception to ensure the system stability.
Note: This limiter will check the RAM every 2 seconds while operations are running, if you have set a very low limit there is a chance to consume more RAM in the time and cause system instability.
System can also reserve some RAM to prevent depletion and start to use SWAP memory, doing such with a low limit and is possible that the limiter never trigger.
0: Ignore the RAM limiter.
Default: 1 GB
- (Improvement) Change the gif animation library to a more efficient and compatible one
- (Fix) Contour traverse function was duplicating the contours, causing wrong calculations
- (Fix) Blur: Prevent stack blur from use even values
- (Upgrade) AvaloniaUI from 11.1.3 to 11.2.2
- (Upgrade) .NET from 6.0.33 to 9.0.0
- .NET 6.0 is end of life and will no longer supported
- This represents three major upgrades and will increase the system os version requirements, see more here: https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md
- With this upgrade the software will be able to take advantage of the new features and improvements of the .NET 9.0, including a significant performance boost

Loading

0 comments on commit fbeb05e

Please sign in to comment.