Releases: sn4k3/UVtools
Releases · sn4k3/UVtools
v4.4.0
- File formats:
- (Add) File format: Klipper zip
- (Add) Properties:
Pause
andChangeResin
to layersBottomLiftAcceleration
BottomLiftAcceleration2
LiftAcceleration
LiftAcceleration2
BottomRetractAcceleration
BottomRetractAcceleration2
RetractAcceleration
RetractAcceleration2
- (Add) PrusaSlicer Keywords:
FILECLASS_xxx
to define the file class directly instead of a file extensionBottomLiftAcceleration
BottomLiftAcceleration2
BottomRetractAcceleration
BottomRetractAcceleration2
LiftAcceleration
LiftAcceleration2
RetractAcceleration
RetractAcceleration2
- (Add) Property
HaveTiltingVat
to know if the printer have a tilting vat - (Add) Compatibility with tilting vat Saturn 4 Ultra which also fixes print time estimate (#906)
- (Add) Encrypted CTB: Tries to predict tilting vat printers from set parameters
- (Change) CWS: Append
;<Slice>
as first line in the layer instead when required - (Change) VDT: Move FTL previews to top to be used as first in conversion
- (Improvement) Anycubic: Write the image color table based on the AntiAliasing level (#899)
- (Improvement) Encrypted CTB: Implement the
ModifiedTimestampMinutes
andAntiAliasLevel
field - (Fix) nanoDLP
slicer.json
deserialize problem on some files - (Fix) SL1: The keyword
TransitionLayerCount_xxx
not being set on the file (#902) - (Fix) PHZ: Generated invalid thumbnail data (#903)
- Tools:
- (Improvement) Pixel arithmetic: Add extra checks to ignore empty size and layers
- (Change) Edit print parameters: Allow set lift and retract speeds to 0 (#906)
- UI:
- (Add) Menu - File - Copy parameters to files: Allow to copy parameters from current file to another file(s) (#852)
- (Improvement) Menu - File - Reset layer properties: Hold SHIFT key to also rebuild layers position with the file layer height (#870)
- (Improvement) Save as and convert file save dialog: Force the correct file extension if been tampered (#909)
- (Improvement) Exposure time finder: Disable incompatible panels instead of hide them
- (Add) Layer preview shortcuts: A/W/S/D to pan the layer image and Q/E to go to previous/next layer (#871)
- (Fix) Prevent CTRL + SHIFT + Up/Down (Issue navigation shortcut) from change layer
- (Add) PrusaSlicer printer: Elegoo Saturn 4 Ultra
- (Fix) Linux AppImage: Failed to change to directory "~" (No such file of directory) (#891)
- (Upgrade) OpenCV from 4.8.0 to 4.9.0
- (Upgrade) AvaloniaUI from 11.0.10 to 11.1.1 (Fixes #872)
- (Upgrade) .NET from 6.0.29 to 6.0.32
v4.3.2
v4.3.1
- Tool - Change resolution:
- (Add) 12K resolution profile
- (Improvement) Do not mark the option "Resize layers with the proposed ratio" when a machine preset results in the same pixel size / ratio of (1.0x, 1.0x)
- Thumbnail sanitizer:
- (Add) Check if the thumbnails have the correct number of channels, if not it will throw an error
- (Improvement) When full encode a file, strip all extra thumbnails that are not used by the file format if they are not an archive
- (Improvement) Resize all thumbnails to the same size as the original from file format even when there are more than file format requires, this fixes a problem when converting from zip that have many thumbnails but file format selects the larger and the smallest, leading to encode the wrong size
- (Improvement) Convert thumbnails to BGR and strip the alpha channel when required, this fixes the issue where format conversion from zip such as sl1 and vdt where corrupting the final file with invalid thumbnail rle
- (Add) Tool - Light bleed compensation: Add "Dim subject" option to select from different subjects to dim, "Bridges" was added (#868)
- (Add) Settings - Notifications: Allow to define beeps sounds to play after ran long operations (#863)
- (Improvement) CTB, FDG, PHZ: Make possible to encode a thumbnail using 1 and 4 channels, this fixes the issue where the file format could encode invalid thumbnail data
- (Fix) Wait time before cure suggestion for GOO and PRZ file formats, it now allows the use of the create first empty layer (#864)
- (Fix) Terminal: The run globals was lost from the previous version update
- (Upgrade) .NET from 6.0.28 to 6.0.29
v4.3.0 - Birthday release 🎁 (4 years old) 🥳
- File formats:
- (Add) nanoDLP file format
- (Add) SL1 printer note keyword:
LAYERIMAGEFORMAT_xxx
sets the layer image format required for the converted file if the format have multiple options (For Archives with PNG's) - (Fix) Anycubic file format: Model Min/Max(X/Y) was not properly calculated
- (Fix) Photon Mono M5s Pro incorrect display height and width (fixes #858)
- PrusaSlicer:
- (Add) Concepts3D Athena 8K & 12K
- (Change) Wanhao D7: Add
LAYERIMAGEFORMAT_Png32
to printer notes - (Change) Nova3D Bene4 Mono, Bene5, Elfin2 Mono SE, Whale, Whale2: Add
LAYERIMAGEFORMAT_Png24BgrAA
to printer notes
- UI:
- (Add) Settings - Automations - Events: After file load, before file save and after file save. Events are fired upon an action and execute a defined script.
If the script is written with the UVtools scripting structure, it will run under an operation and within the Core context.
Otherwise, if plain C# code is used, it will run under the Terminal and in the UI context. - (Add) Show a message of congratulations on the software birthday (Trigger only once per year)
- (Add) Menu - Help: Add "Community forums" submenu, move Facebook group into it and add GitHub, Reddit, Twitter and Youtube
- (Change) Window title: Move version near software name and add the system arch to it
- (Change) About window: Move version near software name and add "Age" label
- (Change) Benchmark tool: Add a thin border to the result panels
- (Improvement) On the status bar, hide the " @ mm/min" from lift speed label if file is not able to use lift speed parameters
- (Improvement) Re-style the new version button
- (Fix) Show print times correctly when larger than a day (#854)
- (Add) Settings - Automations - Events: After file load, before file save and after file save. Events are fired upon an action and execute a defined script.
- (Upgrade) .NET from 6.0.27 to 6.0.28
- (Upgrade) Wix from 4.0.4 to 5.0.0
v4.2.5
- (Add) CTB: Support for version 5, and set it as default version
- (Improvement) Encrypted CTB: Better verification of checksum hash (Fixes #845)
- (Improvement) PrusaSlicer printers that use CTB format now all strict set file version under printer notes (Please update your printers)
- (Improvement) Free unused RAM now also collects the LOH
- (Upgrade) AvaloniaUI from 11.0.7 to 11.0.10
v4.2.4
- Setting - MaxDegreeOfParallelism:
- (Add) Value
-2
: Will utilize an optimal number in order to relief some load and therefore preventing the computer from lags and freezes, mostly this is the processor core count less a few. The more cores the CPU haves the larger is the margin up to a limit. (Optimal/Recommended) - (Add) Value
0
: Will utilize the processor core count. (Fast/Performance). Note that0
is only equal toMax
if you don't change your CPU or translate settings to other machine. - (Change)
!
preset will set the value as would the-2
in the runtime. However it's recommended to use-2
instead of the fixed positive number - (Change) Default value from
-1
to-2
(For current users is recommended to change to-2
)
- (Add) Value
- Tool - Stir resin:
- (Add) Option to output a dummy pixel
- (Add) Exposure time setting to allow to set the time of layer exposure
- (Add) Informative text warning about the fact that each stir will increase in height due no ability to run layers in same Z position
- (Add) Tooltips on the labels
- (Improvement) Always allow the tool to run even if applied before
- (Improvement) Do not allow to run the tool when stir number multiplied by layer height pass the set lift height when running on printers with no ability to run layers in same Z position
- (Improvement) Instead of grey out incompatible fields, hide them and show the text (Incompatible with the current printer / file format)
- (Add) Benchmark tool: Allow to change thread count for the multi-thread test
v4.2.3
- (Add) Benchmark test: GC Memory Copy and Pooled Memory Copy
- (Add) Photon Mono M5s Pro (m5sp) support and corresponding PrusaSlicer printer (#842)
- (Add) Tool: Stir resin - Allow to stir the resin in the VAT by moving the build plate up and down multiple times (#839)
- (Improvement) Improve the dummy pixel location to match the first pixel of the layer (if possible)
- (Improvement) Better format for readable time from seconds, it now can show/hide days, hours, minutes and seconds when optimal
- (Improvement) The setting
MaxDegreeOfParallelism
is now used when calculating the batch size for the parallel operations under file decode and encode - (Fix) Layer import: Unable to import layers from image files (#841)
v4.2.2
- UI:
- (Add) Allow to drag and drop Gerber files into main window to open them in the PCB exposure tool (Hold SHIFT key to run the operation right away, without opening the tool dialog, it will run with the default settings)
- (Improvement) Drag and drop invalid files that are not recognized no longer closes the current file nor open new instances when multiple files are passed or when SHIFT is held
- Pixel editor:
- (Improvement) Line shape was producing one pixel more than required
- (Improvement) Make the shape preview more accurate with the actual real output and when defining a shape thickness instead of a fill
- (Improvement) Increase the accuracy of the shapes by passing float instead of int
- (Improvement) Make the square shape to be exactly the input brush size
- (Improvement) Dispose Skia drawing objects after draw the pixel editor shapes into the previewer
- (Improvement) Better performance and speed when rendering the layer image into the previewer
- (Improvement) Dispose cached data when layer changes into the previewer
- (Change) Layer image preview format from Bgr to Bgra (Added alpha channel, now 32 bits)
- (Fix) Calibration Blooming effect: All layers are being set with bottom exposure time (#481)
- (Upgrade) .NET from 6.0.26 to 6.0.27
- (Downgrade) AvaloniaUI from 11.0.9 to 11.0.7 (Fix #836 but may re-introduce others)
v4.2.1
- UI:
- Pixel editor:
- (Improvement) macOS: Shortcuts Ctrl+0, Ctrl+R, Ctrl+F changed to use command key(⌘) instead of control key
- (Improvement) Dynamic layer height, Lithophane, PCB exposure and Phased exposure: Use better performant
HasNonZero
instead ofCountNonZero
to check if there are any pixels to process - (Improvement) Update demo file with the newest version of the format and use SL1S printer instead
- (Change) Extract file contents shortcut: From Ctrl+E to Ctrl+Shift+E
- (Fix) Files with different resolution information from empty layers were generating wrong image creation for such layers (#833)
- (Fix) Possible throw an exception about invalid roi when using Roi and/or masks under some tools
- (Fix) Skeletonize memory leak
- (Fix) System.NullReferenceException when accessing reallocated layers (#835)
- (Fix) Unable to save profiles for "Light bleed compensation", "Phased exposure"
- (Fix) PrusaSlicer printer "UVtools Prusa SL1S SPEED": Fix the display width and height, they were flipped
- (Upgrade) AvaloniaUI from 11.0.7 to 11.0.9
v4.2.0
- Layers:
- (Add) Brotli compression codec with good performance and compression ratio (Choose it if you have low available RAM)
- (Improvement) Use
RecyclableMemoryStream
instead ofMemoryStream
forGZip
andDeflate
compressions, this results in faster compressions and less memory pressure - (Improvement) Changed how layers are cached into the memory, before they were compressed and save for the whole image. Now it crops the bitmap to the bounding rectangle of the current layer and save only that portion with pixels.
For example, if the image is empty the cached size will be 0 bytes, and in a 12K image but with a 100 x 100 usable area it will save only that area instead of requiring a 12K buffer.
The size of the buffer is now dynamic and will depends on layer data, as so, this method can reduce the memory usage greatly, specially when using large images with a lot of empty space, but also boosts the overall performance by relief the allocations and the required memory footprint.
Only in few special cases can have drawbacks, however they are very minimal and the performance impact is minimal in that case.
When decompressing, the full resolution image is still created and then the cached area is imported to the corresponding position, composing the final and original image. This is still faster than the old method because decompress a larger buffer is more costly.
In the end both writes/compresses and reads/decompresses are now faster and using less memory.
Note: When printing multiple objects it is recommended to place them close to each other as you can to take better advantage of this new method.
- Issues Detection:
- (Fix) When detecting for Islands but not overhangs it will throw an exception about invalid roi
- (Fix) Huge memory leak when detecting resin traps (#830)
- (Improvement) Core: Changed the way "Roi" method is returned and try to dispose all it instances
- (Fix) EncryptedCTB, GOO, SVGX: Huge memory leak when decoding files that caused the program to crash (#830)
- (Fix) UI: Missing theme styles
- (Fix) PrusaSlicer profiles for Creality Halot Mage's: Enable the "Horizontal" mirror under the "Printer" tab to produce the correct orientation when printing (#827)