Skip to content

Releases: sn4k3/UVtools

v4.2.2

17 Feb 21:07
Compare
Choose a tag to compare
  • 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

10 Feb 03:44
Compare
Choose a tag to compare
  • 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

29 Jan 23:34
Compare
Choose a tag to compare
  • 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

19 Jan 23:06
Compare
Choose a tag to compare
  • 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)

v4.0.6

24 Dec 19:43
Compare
Choose a tag to compare
  • (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

12 Dec 03:46
Compare
Choose a tag to compare
  • (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

09 Nov 04:59
Compare
Choose a tag to compare
  • FileFormat Anycubic:
    • (Fix) Preview marker size and PropertyFields for given file version
    • (Fix) Do not cache and reuse layer images if equal on file write, as that is causing "file damage" message (#782, #787)
  • Tools:
    • Mask:
      • (Improvement) Apply the mask with Multiply instead of BitwiseAnd (#747)
    • Layer and pixel arithmetic:
      • (Improvement) Use the byte scale value (1/255) for multiply operations
    • Infill:
      • (Add) Floor/Ceil thickness (#785)
      • (Fix) Remove the debug blocking window when selecting the honeycomb pattern
  • (Upgrade) .NET from 6.0.23 to 6.0.24

v4.0.3

19 Oct 00:53
Compare
Choose a tag to compare
  • (Change) macOS: Change from Control to Command key to activate shortcuts from main menu (#766)
  • (Upgrade) .NET from 6.0.22 to 6.0.23
  • (Upgrade) AvaloniaUI from 11.0.4 to 11.0.5

v4.0.2

02 Oct 01:14
Compare
Choose a tag to compare
  • (Change) UI: Layer height inputs minimum from 0.01mm to 0.001mm (#761)
  • (Fix) Goo: The value of "RetractHeight" was not being set to the file (#763)

v4.0.1

18 Sep 15:46
Compare
Choose a tag to compare
  • (Fix) Suggestions settings were not displaying