UVtools Versions Save

MSLA/DLP, file analysis, calibration, repair, conversion and manipulation

v4.3.2

4 weeks ago
  • (Fix) "Index was outside the bounds of the array" when detecting issues (Fixes #869)

v4.3.1

4 weeks ago
  • 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

1 month ago
  • 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)
  • (Upgrade) .NET from 6.0.27 to 6.0.28
  • (Upgrade) Wix from 4.0.4 to 5.0.0

v4.2.5

2 months ago
  • (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

2 months ago
  • 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 that 0 is only equal to Max 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)
  • 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

2 months ago
  • (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

3 months ago
  • 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

3 months ago
  • UI:
    • Pixel editor:
      • (Add) Shortcut: Ctrl/⌘+E to de/activate pixel editor
      • (Add) Profiles (#604, #831)
      • (Improvement) Use DataGrid row header to show the operation count instead of process and store indexes for the objects
      • (Fix) Drawings and Text controls are not stretched to fill the available space to the right
    • (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 of CountNonZero 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

3 months ago
  • Layers:
    • (Add) Brotli compression codec with good performance and compression ratio (Choose it if you have low available RAM)
    • (Improvement) Use RecyclableMemoryStream instead of MemoryStream for GZip and Deflate 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:

image

v4.1.0

3 months ago
  • 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 and Help 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:
    • (Fix) Layer actions - Import layer(s): Unable to process image files (#815)
    • (Fix) PCB Exposure: Draw circles using ellipses in order to use non-square pixels (#822)
  • 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)