Releases: sn4k3/UVtools
Releases · sn4k3/UVtools
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)
New layer compression sample comparison:
v4.1.0
- File formats:
- (Add) Emake3D Galaxy 1 (QDT) file format and PrusaSlicer printer profile
- (Add)
ManufacturingProcess
property to get the manufacturing process used by the file/printer combination - (Add)
SupportAntiAliasing
property to get if the file supports antialiasing usage (grey pixels) - (Improvement) Goo: On encode image do not use gradient compression when going from grey to black or white
- (Change) PZR: Disable gradient compression for this file format as it corrupt layer for Phrozen Sonic Mini 8K S (#776, #810, #814)
- (Fix) Thumbnail text generation and for partial open files
- (Fix) Parse transition step time and count from layers throw an exception when the file only have one layer
- UI:
- (Add) Title bar: Display the loaded file size and re-arrange the last operation run time to the right
- (Improvement) Re-arrange some items on
File
andHelp
menu - (Improvement) Use icons instead UTF-8 character for buttons with drop-down menus
- (Fix) Benchmark tool: Allow to show percentages larger than 100% and increase progress height
- Tools:
- Suggestions:
- (Fix) Bottom layers count: Do not trigger the suggestion when the file layer count are equal or less than the configured minimum bottom layers
- (Fix) Transition layers: Do not trigger the suggestion when it can't fade exposure time or when bottom time is equal to normal time
- (Fix) PrusaSlicer Printer: "Elegoo Mars 4" is wrongly named, renamed to "Elegoo Mars 4 DLP" and added the corresponding "Elegoo Mars 4"
- (Upgrade) .NET from 6.0.25 to 6.0.26
- (Upgrade) AvaloniaUI from 11.0.6 to 11.0.7 (Fixes #803, #812)
v4.0.6
- (Add) Setting: Automations - Restrict the file name to valid ASCII characters (Default: Off)
- (Add) New check when opening a file that verify if the file name have invalid characters and prompt for rename based on the above introduced setting
- (Add) Rename file: Add a option to allow only ASCII characters on the file name
- (Improvement) LZ4 layer compression by reusing pools of memory buffers, this relief the LOH allocations and improves the overall performance
- (Fix) Phased Exposures: Disallow AnyCubic file formats from run the tool
v4.0.5
- (Add) Tool - Phased Exposure: Replace "Double Exposure" with "Phased Exposure" tool, same effect but allow to define more steps (#778)
- (Fix) Infill: Honeycomb Infill does not completely infill model (#789)
- (Improvement) File -> Open recent: Disable all inexistent files (Can no longer be clicked)
- (Upgrade) .NET from 6.0.24 to 6.0.25
- (Upgrade) AvaloniaUI from 11.0.5 to 11.0.6
v4.0.4
- FileFormat Anycubic:
- Tools:
- (Upgrade) .NET from 6.0.23 to 6.0.24