Commit Graph

444 Commits

Author SHA1 Message Date
Tiago Conceição e727a097b3 v3.8.1
- **Tools:**
  - **PCB Exposure:**
    - (Add) Allow to scale the drawing sizes per gerber file
    - (Add) Allow to invert the drawing polarity per gerber file (#592)
    - (Add) Allow to drag and drop files into "Add files" button and grid header
    - (Improvement) Do not add empty layers when usable to draw or when draw a all black image
    - (Improvement) "Merge all gerbers into one layer" will now draw all gerber into one image instead of perform the Max(of all gerbers pixels), allowing to subtract areas as they are on gerbers
  - **Import layers:** Fix error when trying to insert layers
  - **Export layers images:** Better compression of contours for SVG export, resulting in smooth curves, better visuals and lower file size
- (Add) Outline: Triangulate
- (Remove) Avalonia.Diagnostics dependency in release mode
2022-11-02 23:39:21 +00:00
Tiago Conceição 6dc26f7434 v3.8.0
- **File formats:**
  - (Add) Property: DisplayTotalOnTime
  - (Add) Property: DisplayTotalOffTime
  - (Add) SL1File Property: high_viscosity_tilt_time
- **Tools**
  - **I printed this file**
    - (Add) Display on time for the print information
    - (Improvement) Labels on numeric box
    - (Improvement) Show print time label formatted as hh:mm:ss
  - **PCB Exposure:**
    - (Improvement) Increase "Exposure time" maximum from 200s to 1000s (#592)
    - (Fix) Set `BottomLightHeight` to 0
    - (Fix) Set `TransitionLayerCount` to 0
- **Issues:**
  - (Improvement) Overhang detection by using a dynamic cross kernel
  - (Improvement) Bring back the discard logic of "false-positive" islands based on overhang detection but improve the threshold of the detection to be safer (#591, #591)
- **PrusaSlicer:**
  - (Change) Elegoo Mars 2 to use file version 4
  - (Change) Elegoo Mars 2 Pro to use file version 4
- (Add) Status bar: On and Off time (hh:mm:ss) as tooltip in the Print time label
- (Improvement) When any of libcvextern dependencies are missing, it try to show the missing libraries in the error message (Linux only)
- (Improvement) Auto-upgrade procedure for non-Windows systems
- (Improvement) macOS arm64 (M1/M2) can now run natively if installed via the auto installer script
- (Fix) Error on Mat cache manager when file have only one layer
- (Fix) Suggestion "Transition layer count" shows as never applied when using with file formats that use in-firmware transition layers
- (Upgrade) openCV from 4.5.4 to 4.6.0
  - Custom library is now built to strip unused dependencies and reduce library size
- (Remove) arch and rhel packages in favor of a generic linux
2022-10-30 00:52:49 +01:00
Tiago Conceição 18b208bf31 (Improvement) Auto-upgrade procedure for non-Windows systems 2022-10-23 22:19:38 +01:00
Tiago Conceição 9276735203 v3.7.2
- **File formats:**
  - (Add) AnyCubic PM3R (#587)
  - (Add) AnyCubic PMX2
  - (Fix) LGS: `LightOffDelay` is `WaitTimeBeforeCure` in this format
- **PrusaSlicer printer:**
  - (Add) AnyCubic Photon M3 Premium
  - (Add) AnyCubic Photon Mono X2
- (Fix) Scripting: Unable to use sub-classes (#583)
- (Fix) Loading an image as file cause application to crash
- (Fix) "File - Send to" doesn't ignore case on file extension names resulting in ignore files in a uppercase even if extension is correct
- (Fix) Do not show layer material milliliters when value is 0 or the percentage is NaN
- (Fix) Auto-upgrade on Linux with AppImage integrated on system causes the file name to grow with hash strings
2022-10-20 21:42:31 +01:00
Tiago Conceição 1c95048298 Move documentation project 2022-10-17 04:38:31 +01:00
Tiago Conceição c4aeb4939d v3.7.1
- (Add) PrusaSlicer printer: Elegoo Saturn 2
- (Fix) PCB Exposure: Possible error when drawing outline primitive macros that contains duplicate points (#580)
2022-10-17 04:25:16 +01:00
Tiago Conceição 7768862f78 Fix possible error when drawing outline primitive macros that contains duplicate points (#580) 2022-10-12 19:19:30 +01:00
Tiago Conceição 9f7722d369 v3.7.0
- **File formats:**
   - (Add) `TransitionLayerCount` modifier to: Chitubox Zip, CWS, JXS, OSLA, PW*, UVJ, ZCodex, ZCode
   - (Add) Utility methods for transition layers calculation/parse
   - (Improvement) Calculate and set `TransitionLayerCount` property in file decode based on layer exposure time configuration
- **GCode:**
   - (Improvement) GCode: Able to parse layer image file with appended numbers on the filename (Afecting CWS) (#577)
   - (Fix) Bad parsing of the file when it comes from Lychee or NovaMaker slicer (Afecting CWS)
   - (Fix) Incorrect parse of "Wait time before cure" from layers when printer require wait sync moves (Afecting CWS)
- **Tools:**
   - (Add) External tests: The Complete Resin 3D Printing Settings Guide for Beginners
   - (Add) External tests: 9 settings for faster printing
   - (Improvement) Fade exposure time: Set `TransitionLayerCount` property with the affected layer count
- **Suggestions:**
   - (Add) Transition layers: If you are printing flat on the build plate your model will print better when using a smooth transition exposure time instead of a harsh variation, resulting in reduced layer line effect and avoid possible problems due the large exposure difference.
                              This is not so important when your model print raised under a raft/supports unaffected by the bottom exposure, in that case, it's fine to ignore this.
   - (Add) Model position: Printing on a corner will reduce the FEP stretch forces when detaching from the model during a lift sequence, benefits are: Reduced lift height and faster printing, less stretch, less FEP marks, better FEP lifespan, easier to peel, less prone to failure and use the screen pixels more evenly.
                           If the model is too large to fit within the margin(s) on the screen, it will attempt to center it on that same axis to avoid touching on screen edge(s) and to give a sane margin from it.
- **Status bar:**
   - (Add) Transition layers: 0/-0.00s
   - (Improvement) Change "Layer Height: 0.000mm" to "Layers: count @ 0.000mm"
   - (Improvement) Change "Bottom layers: 0" to "Bottom layers: 0/0.000mm"
- (Change) Show user informative message about CTB Encrypted file format once per ten file loads
- (Upgrade) .NET from 6.0.9 to 6.0.10
- (Fix) Windows MSI installation not upgrading well when downgrade libraries
2022-10-12 01:16:34 +01:00
Tiago Conceição 6c38a83c05 v3.6.8
- (Fix) Occasional crash when detecting islands and/or repair issues (#568, #569)
2022-10-04 01:12:12 +01:00
Tiago Conceição ca6f623a9f v3.6.7
- **Layer:**
   - (Add) Property: `LayerMatBoundingRectangle`
   - (Add) Property: `LayerMatModelBoundingRectangle`
   - (Add) Method: `GetLayerMat(roi)`
- **Issues:**
   - **Islands:**
      - (Improvement) Islands detection performance
      - (Improvement) Required area to consider an island is now real area instead of bounding box area
      - (Fix) Logic bug when combining with overhangs
   - **Overhangs:**
      - (Improvement) Overhangs detection performance
      - (Improvement) Overhangs are now split and identified as separately in the layer
      - (Improvement) Overhangs now shows the correct issue area and able to locate the problem region more precisely
      - (Improvement) Compress overhangs into contours instead of using whole pixels, resulting in better render performance and less memory to hold the issue
      - (Fix) Bug in overhang logic causing to detect the problem twice when combined with supports
   - (Improvement) Touching bounds check logic to spare cycles
- **Tool - Raise platform on print finish:**
   - (Add) Preset "Minimum": Sets to the minimum position
   - (Add) Preset "Medium": Sets to half-way between minimum and maximum position
   - (Add) Preset "Maximum": Sets to the maximum position
   - (Add) Wait time: Sets the ensured wait time to stay still on the desired position.
           This is useful if the printer firmware always move to top and you want to stay still on the set position for at least the desired time.
           Note: The print time calculation will take this wait into consideration and display a longer print time.
- (Add) FileFormat: AnyCubic custom machine (.pwc)
- (Downgrade) OpenCV from 4.5.5 to 4.5.4 due a possible crash while detecting islands (Windows)
2022-10-02 00:44:39 +01:00
Tiago Conceição 57dbbce784 v3.6.6
- **UI:**
   - (Improvement) Auto show a horizontal scroll bar on wider than screen contents on the tool windows
   - (Improvement) Move normal windows to zero position if negative and auto constrain height if necessary
   - (Improvement) Set a minimum width and minimum height for tool windows
   - (Fix) Setting - "Allow resize the tool windows" had been lost and no effect when checked
- (Add) Windows MSI - Option: Add installation directory to system PATH environment variable
- (Improvement) Better fetch of UVtools.Core.dll on PowerShell scripts under Windows
- (Improvement) Better handling in get the process output, this fixes processor name not being shown on macOS
2022-09-20 19:40:26 +01:00
Tiago Conceição 4ff621a080 v3.6.5
- **UI:**
  - (Add) Groups to convert menu
  - (Improvement) Re-arrange convert menu order
  - (Fix) Settings: Open file dialog filter dropdown width
- **PrusaSlicer:**
   - (Add) AnyCubic Photon D2
   - (Add) Creality Halot Ray CL925
   - (Add) Elegoo Saturn 8K
   - (Add) Uniformation GKtwo
   - (Add) Nova3D Whale3 Pro
   - (Add) Phrozen Sonic Mighty 8K
- (Add) AnyCubic Photon D2 (.dl2p) compatibility to AnyCubic file format
- (Fix) Hide "Debug tools" from "Help" menu
2022-09-18 16:32:11 +01:00
Tiago Conceição 6ff9fee77c v3.6.4
- **Windows MSI installer:**
   - (Add) UVtools folder to start menu with:
      - UVtools
      - UVtoolsCmd
      - Uninstall UVtools
   - (Add) Prompt for add open in UVtools when right-click on supported files
   - (Add) Prompt for create desktop shortcut
   - (Add) Prompt for launch UVtools after the installation
   - (Improvement) Cleanup and simplify the install project
- (Add) PrusaSlicer printer: Peopoly Phenom Forge
- (Upgrade) .NET from 6.0.8 to 6.0.9
- (Fix) Corruption in file after attempt to save to a locked file (#551)
2022-09-15 17:01:00 +01:00
Tiago Conceição 9b2cb427a5 v3.6.3
- **File formats:**
   - **Anycubic file format:**
      - (Add) Compatibility with the next version 517 of the format
      - (Improvement) Discovered and implemented more unknown fields
      - (Improvement) Dispose layer RLE bytes after encoding
      - (Fix) When creating or converting to anycubic file, it don't set the extra table mark name
      - (Fix) Only attempt to activate the advanced mode (TSMC) when the BottomLiftHeight2 or LiftHeight2 gets changed
   - (Add) Methods: `OnBeforeEncode` and `OnAfterEncode`
   - (Improvement) `IsUsingTSMC` now also checks for BottomLiftHeight2 and BottomRetractHeight2
- (Fix) OSF: Can't decode some files
- (Fix) Undo cause application to crash (#543)
2022-08-30 19:08:15 +01:00
Tiago Conceição 94aae77bb5 Anycubic file format improvements
- (Add) Compatibility with the next version 517 of the format
- (Improvement) Discovered and implemented more unknown fields
- (Improvement) Dispose layer RLE bytes after encoding
- (Fix) When creating or converting to anycubic file, it don't set the extra table mark name
- (Fix) Only attempt to activate the advanced mode (TSMC) when the BottomLiftHeight2 or LiftHeight2 gets changed
2022-08-30 18:57:49 +01:00
Tiago Conceição 9f36303d4f Prepare issues to be serializable in the future 2022-08-30 18:54:13 +01:00
Tiago Conceição ddb9390e06 New methods OnBefore/AfterEncode and IsUsingTSMC improvement
- (Add) Methods: `OnBeforeEncode` and `OnAfterEncode`
- (Improvement) `IsUsingTSMC` now also checks for BottomLiftHeight2 and BottomRetractHeight2
2022-08-30 01:07:24 +01:00
Tiago Conceição f8dbcd803d Refactorings 2022-08-28 18:53:30 +01:00
Tiago Conceição 466f328c63 (Fix) OSF: Can't decode some files 2022-08-23 20:50:12 +01:00
Tiago Conceição e550fdc266 v3.6.2
- (Add) Debug sub menu to test some behaviours (Only when compiled in debug mode, not visible on public release)
- (Add) Utility method `LayerExists` to the file formats to know if specific layer index exists in the collection
- (Improvement) Add loaded file information to the crash dialog message
- (Fix) Message dialog height do not expand with text (#537)
- (Fix) Crash when all layers get removed and UI attempt to show a layer (#538)
2022-08-21 23:39:20 +01:00
Tiago Conceição f7d989d29f v3.6.1
- (Fix) GCode: Improve the regex for parsing layer index from comments, also fixes chitubox zip format layer parsing
- (Fix) MacOS: Auto updater was not copying the files to the right location, leading to not upgrade the program. However this version still need to update manually
2022-08-19 03:26:05 +01:00
Tiago Conceição 57f077f444 v3.6.0
- **File formats:**
   - (Add) OSF (Vlare Open File Format)
   - (Fix) CTB Encrypted: Bottom Retract Height for TSMC was constraining incorrectly with the normal total retract height
   - (Fix) CWS: Only issue `;<Slice>` command when the exposure is about to happen (#514)
- **GCode:**
   - (Add) Command `CommandWaitSyncDelay` for movement wait sync delay instead of depending on G4 wait command
   - (Fix) Wrong parsing and set of wait times when using a wait after lift / wait before retract
- (Improvement) Auto update: Make sure the download url exists before attempt the download, if not, instead it will prompt for manual download and update
- (Improvement) MacOS: Remove `com.apple.quarantine` flag from the auto downloaded files
- (Upgrade) .NET from 6.0.7 to 6.0.8
- (Upgrade) AvaloniaUI from 0.10.17 to 0.10.18
2022-08-17 21:23:51 +01:00
Tiago Conceição 0805133048 v3.5.6
- **Tools**
   - **PCB Exposure:**
      - (Add) Able to choose the size midpoint rounding method (#520)
      - (Fix) Allow to flash alone D03 commands (#520)
      - (Fix) Correct line thickness to have at least 1px error (#523)
   - (Improvement) Layer arithmetic: Use ; to split and start a new arithmetic operation
- (Add) Cmd: Convert command now allow to pass 'auto' as target type to auto convert specific files, valid for SL1 files configured with FILEFORMAT_xxx (#522)
- (Add) GCode: Command to sync and wait for movement completion [Only enabled for cws format] (#514)
- (Add) VDT: Transition layer count
- (Upgrade) AvaloniaUI from 0.10.16 to 0.10.17
2022-07-29 18:10:48 +01:00
Tiago Conceição 315ce3bc0d v3.5.5
- **File formats:**
   - (Add) `LayerImageType`: Gets the layer image data type used on this file format
   - (Improvement) jxs, rgb.cws and xml.cws: Improve the layer image read/write performance by a significant amount
   - (Fix) xml.cws: Wanhao printers need 32 bit png instead of 8 bit png (#514)
2022-07-18 23:04:08 +01:00
Tiago Conceição 43c1a6a944 v3.5.4
- **PCB Exposure:**
   - (Add) Parse of deprecated commands (G70, G71, G90, G91)
   - (Fix) Able to have parameterless macro apertures (#503)
- **UI:**
   - (Add) Menu -> File -> Free unused RAM: Force the garbage collection of all unused objects within the program to free unused memory (RAM).
                                            It's never required for the end user run this. The program will automatically take care of it when required.
                                            This function is for debug purposes.
   - (Improvement) Window title bar: Show elapsed minutes and seconds instead of total seconds minutes and second
- (Fix) Tool - Mask: Loaded image resolution shows as (unloaded)
- (Fix) Applying a large set of modifications in layer depth with pixel editor cause huge memory spike due layer aggregation without disposing, leading to program crash on most cases where RAM is insufficient (#506)
- (Upgrade) AvaloniaUI from 0.10.15 to 0.10.16
2022-07-14 23:24:39 +01:00
Tiago Conceição 6bd3bb7bca v3.5.3
- (Add) Layer action - Export layers to HTML: Export file information and layers to an html file
- (Change) CXDLP: Validate header and footer value must start with "CXSW3D" instead of force equal to "CXSW3DV2" (#501)
- (Upgrade) .NET from 6.0.5 to 6.0.6
2022-07-07 02:56:11 +01:00
Tiago Conceição 9711bb7474 v3.5.2
- **PCB Exposure:**
   - (Add) Gerber file extensions: gko, gtl, gto, gts, gbl, gbo, gbs, gml
   - (Fix) Trailing zeros suppression mode and improve the parsing of the coordinate string (#492)
   - (Fix) Allow coordinates without number `XYD0*` to indicate `X=0` and `Y=0`
   - (Fix) Do not try to fetch apertures lower than index 10 when a `D02` (closed shutter) is found alone
2022-06-25 02:02:59 +01:00
Tiago Conceição 67fbec1fff v3.5.1
- **PCB Exposure:**
   - (Fix) Able to omit X or Y coordinate and use last known value in place
   - (Fix) Reusing macros in apertures was causing to use the last aperture values for all previous apertures that share the same macro name
   - (Fix) Implement the inch measurement (%MOIN*%)
   - (Fix) Crash when redo the operation (Ctrl + Shift + Z)
- **UI - Issue list:**
   - (Add) Context menu when right click issues to select an action
   - (Add) Option to solidify suction cups when right click on the issue
   - (Improvement) Better confirmation text when click on remove issue(s) with detailed list of actions
2022-06-24 04:53:54 +01:00
Tiago Conceição 15c500ecaf v3.5.0
- **PCB Exposure:**
   - (Add) Able to select multiple files and create a layer per file or merge them into one layer
   - (Add) Able to import files from a zip file
   - (Improvement) Round pixel coordinates and line thickness
   - (Improvement) Better position precision for primitives
   - (Improvement) Disable the ok button if no files were selected
   - (Change) Do not auto mirror based on printer lcd mirror type
   - (Fix) Limit line thickness to 1px minimum
   - (Fix) Allow leading zero omit from XY coordinates (#492)
   - (Fix) Mirror option was shifting the board position
- (Add) Calibrate - Blooming effect: Generates test models with various strategies and increments to measure the blooming effect
- (Add) Setting: Issues - Default order by, changes the default order on the issues list (#482)
- (Improvement) CTBv4 and encrypted: Fetch `BottomWaitTimes` virtual property from first bottom layer that has at least 2 pixels (#483)
- (Fix) Linux: Enable desktop integration for AppImages (#490)
- (Fix) Extracting zip contents inside folders would cause a error and not extract those contents
- (Upgrade) AvaloniaUI from 0.10.14 to 0.10.15 [Fixes auto-size problems]
2022-06-19 04:19:23 +01:00
Tiago Conceição 13ff766d05 v3.4.3
- (Add) Information about the loaded file when copying from the about box
- (Improvement) Tools are now disabled on the menu if not supported by the file format once each file load (#476)
- (Fix) Tool - Edit tool parameters: Overlap label on "per layer override" mode (#478)
- (Fix) Corruption of `GZip` and `Deflate` layer compression methods
2022-05-21 00:59:28 +01:00
Tiago Conceição c800f887d2 v3.4.2
- **Core:**
   - (Add) Getter `FileFormat.DisplayPixelCount` Gets the display total number of pixels (ResolutionX * ResolutionY)
   - (Add) Getter `Layer.NonZeroPixelRatio` Gets the ratio between non zero pixels and display number of pixels
   - (Add) Getter `Layer.NonZeroPixelPercentage` Gets the percentage of non zero pixels relative to the display number of pixels
   - (Add) Getter `Layer.PreviousHeightLayer()` Gets the previous layer with a different height from the current, returns null if no previous layer
   - (Add) Getter `Layer.NextHeightLayer()` Gets the next layer with a different height from the current, returns null if no next layer
   - (Add) Method `Layer.GetPreviousLayerWithAtLeastPixelCountOf()` Gets the previous layer matching at least a number of pixels, returns null if no previous layer
   - (Add) Method `Layer.GetNextLayerWithAtLeastPixelCountOf()` Gets the next layer matching at least a number of pixels, returns null if no next layer
   - (Add) Method `Operation.GetRoiOrVolumeBounds()` returns the selected ROI rectangle or model volume bounds rectangle
   - (Add) Documentation around `Operation` methods
   - (Fix) Open files in partial mode when the resolution is not defined would cause a `NullPointerException` (#474)
- **Suggestion: Wait time before cure**
   - (Add) Proportional maximum time change: Sets the maximum allowed time difference relative to the previous layer (#471)
   - (Add) Proportional mass get modes: Previous, Average and Maximum relative to a defined height (#471)
   - (Change) Proportional set type sets fallback time to the first layer
   - (Fix) Proportional set type was taking current layer mass instead of looking to the previous cured layer (#471)
- **Tools:**
   - **Edit print parameters:**
      - (Change) Incorporate the unit label into the numeric input box
      - (Change) Allow TSMC speeds to be 0 as minimum value (#472)
   - (Fix) PCB Exposure: The thumbnail has random noise around the image
- **Settings:**
   - (Add) Tools: "Always prompt for confirmation before execute the operation"
   - (Fix) Changing layer compression method when no file is loaded would cause a error
- **UI:**
   - (Add) Holding Shift key while drag and drop a .uvtop file will try to execute the operation without showing the window or prompt
   - (Add) Drag and drop a .cs or .csx file into UVtools will load and show the scripting dialog with the file selected
- (Add) Errors that crash application will now show an report window with the crash information and able to fast report them
- (Add) "Version" key and value on registry to tell the current installed version (Windows MSI only)
- (Upgrade) AvaloniaUI from 0.10.13 to 0.10.14
- (Upgrade) .NET from 6.0.4 to 6.0.5
2022-05-16 01:25:21 +01:00
Tiago Conceição 1280510eba v3.4.1
- (Add) Suggestion - Wait time before cure: Allow to set the number of layers to smooth transition from bottom to normal wait time (Defaults to 8)
- (Fix) Tool - PCB Exposure: Pixels per millimeter was been set to fixed value instead of use printer lcd pitch, causing wrong dimentions on different from 50µm pitch
- (Fix) Tool - PCB Exposure: Unable to run the tool when the display size information isn't available
2022-05-02 04:38:55 +01:00
Tiago Conceição 3130ebe0f2 v3.4.0
- **Tools:**
   - (Add) PCB exposure: Converts a gerber file to a pixel perfect image given your printer LCD/resolution to exposure the copper traces.
   - (Improvement) Export settings now indent the XML to be more user friendly to edit
   - (Improvement) Layer import: Allow to have profiles
   - (Improvement) Layer import: Validates if selected files exists before execute
   - (Fix) Lithophane: Disallow having start threshold equal to end threshold
- (Add) Windows explorer: Right-click on files will show "Open with UVtools" on context menu which opens the selected file on UVtools (Windows MSI only)
- (Improvement) Island and overhang detection: Ignore detection on all layers that are in direct contact with the plate (On same first layer position)
- (Improvement) Cmd: Better error messages for convert command when using shared extensions and no extension
2022-05-02 01:02:13 +01:00
Tiago Conceição 2625c13cc3 v3.3.2
- **UI:**
   - (Add) Setting: Restore window last position - If enabled, it will restore the main window last known client position on startup (#460)
   - (Add) Setting: Restore window last size - If enabled, it will restore the main window last known client size on startup (#460)
   - (Improvement) If there are missing dependencies it will show a proper window with information instead of crashing application without any visuals
   - (Improvement) Start maximized is set before windows spawn to prevent the flicker effect on main window
- (Add) File formats: Property `IsUsingTSMC` - Indicates whatever file globals are using TSMC or not
- (Change) Lithophane: Noise removal and gap closing iterations defaults to 0
- (Fix) Anycubic files: Printers are unable to use TSMC values after save (#457)
- (Fix) Pixel Editor button is hidden when using screens with scalling > 100% [dirty-fix] (#458)
- (Upgrade) .NET from 6.0.3 to 6.0.4
2022-04-14 04:01:03 +01:00
Tiago Conceição 395ee1b8e6 v3.3.1
- **PrusaSlicer:**
   - (Add) AnyCubic M3
   - (Add) AnyCubic M3 Max
   - (Add) AnyCubic M3 Plus
   - (Change) AnyCubic Photon Mono 4K: Display size and remove offset from bed shape
   - (Change) AnyCubic Photon Mono X 6K: Display size and remove offset from bed shape
- (Add) File format: AnyCubic PM3 and PM3M (#454)
- (Fix) Tool - Lithophane: Value unit for "Lithophane height" was in px instead of mm
2022-04-11 23:36:56 +01:00
Tiago Conceição 99e3e33ac6 v3.3.0
- **Shortcuts:**
   - (Add) **Delete:** While on layer preview and with roi or mask(s) selected, will remove the selected area from layer
   - (Add) **Alt + Delete:** While on layer preview and with roi or mask(s) selected, will remove the selected area from all layers
   - (Add) **Ctrl + Delete:** While on layer preview, will remove the current layer
   - (Add) **Insert:** While on layer preview and with roi or mask(s) selected, will keep only the selected area in layer
   - (Add) **Alt + Insert:** While on layer preview and with roi or mask(s) selected, will keep only the selected area in all layers
   - (Add) **Ctrl + Insert:** While on layer preview, will clone the current layer
   - (Add) **Home:** While on layer preview will go to first layer
   - (Add) **End:** While on layer preview will go to last layer
   - (Add) **Page up:** While on layer preview will skip +10 layers
   - (Add) **Page down:** While on layer preview will skip -10 layers
- (Add) Tool - Lithophane: Generate lithophane from a picture
- (Fix) Pixel arithmetic: When run with masks it produce a incorrect outcome
- (Fix) CXDLP: Layer area table miscalculation, causing slow down prints
2022-04-11 00:08:15 +01:00
Tiago Conceição 331d37be7c v3.2.2 - Birthday release 🎁 (2 years old) 🥳
- **Settings:**
   - (Add) Remove source file after automatic conversion (#444)
   - (Add) Remove source file after manual conversion (#444)
   - (Add) **Average resin bottle cost:** The average cost per one resin bottle of 1000ml.
           Used to calculate the material cost when the file lacks that information.
           Use 0 to disable this feature and only show the cost if file have that information.
           If this value is changed, you need to reload the current file to update the cost.
   - (Change) Move "Expand and show tool descriptions by default" to From `General` to `Tools` tab (Setting will reset to default)
- **File formats:**
   - (Add) Property `StartingMaterialMilliliters`: Gets the starting material milliliters when the file was loaded
   - (Add) Property `StartingMaterialCost`: Gets the starting material cost when the file was loaded
   - (Add) Property `MaterialMilliliterCost`: Gets the material cost per one milliliter
   - (Improvement) Update `MaterialCost` when `MaterialMilliliters` changes (#449)
- **Raft relief:**
   - (Add) Linked lines: Remove the raft, keep supports and link them with lines
   - (Improvement) Change the supports detection parameters to be more effective and precise on detect the starting layer
   - (Fix) Brightness percentage not getting updated
   - (Fix) Remove anti-aliased edges from Tabs
- (Improvement) Core: Minor clean-up
- (Fix) Issue repair error when 'Auto repair layers and issues on file load' is enabled (#446)
- (Fix) UI: Selecting a object with ROI when flip is verically, will cause 1px up-shift on the preview
- (Fix) macOS permission error due loss of attributes on the build script, WSL have bug with mv, using ln&rm instead
2022-04-06 18:17:48 +01:00
Tiago Conceição 71f6407845 Update MaterialCost when MaterialMilliliters changes (#449)
- (Add) Property `StartingMaterialMilliliters`: Gets the starting material milliliters when the file loaded
- (Add) Property `StartingMaterialCost`: Gets the starting material cost when the file loaded
- (Improvement) Update `MaterialCost` when `MaterialMilliliters` changes (#449)
2022-04-05 22:19:50 +01:00
Tiago Conceição db821cae89 Update Enumerations.cs
Text
2022-04-03 19:28:40 +01:00
Tiago Conceição a77b9187a2 Auto Remove source file after convertion (#444)
- **Settings:**
   - (Add) Remove source file after automatic conversion (#444)
   - (Add) Remove source file after manuall conversion (#444)
2022-04-03 19:26:45 +01:00
Tiago Conceição 3c5d231290 Fix release notes for nuget package 2022-04-02 03:39:30 +01:00
Tiago Conceição d38e9ee62d v3.2.1
- **AnyCubic file format:**
   - (Fix) Lift height and speed are not being correctly set on old version, keeping a constant value (#441)
   - (Fix) Retract speed getter was not return value from TSMC if using version 516
- **Tool - Infill:**
   - (Add) Waves infill type
   - (Add) Concentric infill type
   - (Add) Gyroid infill type (#443)
   - (Change) Increase the default spacing from 200px to 300px
   - (Improvement) Fastter infill processing by use the model bounds
- (Add) `FormatSpeedUnit` property to file formats to get the speed unit which the file use internally
- (Fix) UI: ROI rectangle can overlap scroll bars while selecting
2022-04-02 03:14:28 +01:00
Tiago Conceição 57b8a9dc84 v3.2.0
- **Core:**
   - (Add) Machine presets and able to load machine collection from PrusaSlicer
   - (Improvement) Core: Reference EmguCV runtimes into core instead of the UI project
- **File formats:**
   - **CXDLP:**
      - (Add) Detection support for Halot One Pro
      - (Add) Detection support for Halot One Plus
      - (Add) Detection support for Halot Sky Plus
      - (Add) Detection support for Halot Lite
      - (Improvement) Better handling and detection of printer model when converting
      - (Improvement) Discovered more fields meanings on format
      - (Fix) Exposure time in format is `round(time * 10, 1)`
      - (Fix) Speeds in format are in mm/s, was using mm/min before
   - (Add) JXS format for Uniformation GKone [Zip+GCode]
   - (Improvement) Saving and converting files now handle the file backup on Core instead on the UI, which prevents scripts and other projects lose the original file in case of error while saving
   - (Fix) After load files they was flagged as requiring a full encode, preventing fast save a fresh file
- **UVtoolsCmd:**
   - Bring back the commandline project
   - Consult README to see the available commands and syntax
   - Old terminal commands on UVtools still works for now, but consider switch to UVtoolsCmd or redirect the command using `UVtools --cmd "commands"`
- **Tools:**
   - **Change print resolution:**
      - (Add) Allow to change the display size to match the new printer
      - (Add) Machine presets to help set both resolution and display size to a correct printer and auto set fix pixel ratio
      - (Improvement) Real pixel pitch fixer due new display size information, this allow full transfers between different printers "without" invalidating the model size
      - (Improvement) Better arrangement of  the layout
   - (Add) Infill: Option "Reinforce infill if possible", it was always on before, now default is off and configurable
   - (Improvement) Always allow to export settings from tools
- **GCode:**
   - (Improvement) After print the last layer, do one lift with the same layer settings before attempt a fast move to top
   - (Improvement) Use the highest defined speed to send the build plate to top after finish print
   - (Improvement) Append a wait sync command in the end of gcode if needed
   - (Fix) When lift without a retract it still output the motor sync delay for the retract time and the wait time after retract
- **PrusaSlicer:**
   - (Add) Printer: Creality Halot One Pro CL-70
   - (Add) Printer: Creality Halot One Plus CL-79
   - (Add) Printer: Creality Halot Sky Plus CL-92
   - (Add) Printer: Creality Halot Lite CL-89L
   - (Add) Printer: Creality Halot Lite CL-89L
   - (Add) Printer: Creality CT133 Pro
   - (Add) Printer: Creality CT-005 Pro
   - (Add) Printer: Uniformation GKone
   - (Add) Printer: FlashForge Foto 8.9S
   - (Add) Printer: Elegoo Mars 2
   - (Improvement) Rename all Creality printers
   - (Fix) Creality model in print notes
2022-03-26 03:38:39 +00:00
Tiago Conceição 75bfd9aa4c Fix auto-upgrade for AppImage
Trying to execute before make sure chmod is applied
2022-03-21 05:38:55 +00:00
Tiago Conceição a5bef99372 v3.1.1
- (Add) Raft relief: Tabs type - Creates tabs around the raft to easily insert a tool under it and detach the raft from build plate
- (Add) Linux AppImage binaries (You won't get them with auto-update, please download AppImage once before can use auto-update feature in the future)
- (Change) Rename "layer compression method" to "layer compression codec", please redefine the codec setting if you changed before
- (Improvement) Linux and macOS releases are now compiled, published and packed under Linux (WSL). Windows release still and must be published under windows.
2022-03-21 03:43:24 +00:00
Tiago Conceição 22897ea389 v3.1.0
- **Benchmark:**
   - (Add) PNG, GZip, Deflate and LZ4 compress tests
   - (Change) Test against a known image instead of random noise
   - (Change) Single-thread tests from 100 to 200 and multi-thread tests from 1000 to 5000
   - (Improvement) Same image instance is shared between tests instead of create new per test
   - (Fix) Encode typo
- **Core:**
   - (Add) Layer compression method: Allow to choose the compression method for layer image
      - **PNG:** Compression=High Speed=Slow (Use with low RAM)
      - **GZip:** Compression=Medium Speed=Medium (Optimal)
      - **Deflate:** Compression=Medium Speed=Medium (Optimal)
      - **LZ4:** Compression=Low Speed=Fast (Use with high RAM)
   - (Improvement) Better handling on cancel operations and more immediate response
   - (Fix) Extract: Zip Slip Vulnerability (CWE-22)
- **File formats:**
   - (Improvement) Better handling of encode/decoding layers from zip files
   - (Fix) ZCode: Canceling the file load can trigger an error
   - (Fix) VDA: Unable to open vda zip files
- **Tools:**
   - (Improvement) Allow operations to be aware of ROI and Masks before execution (#436)
   - (Improvement) Scripting: Allow save and load profiles (#436)
   - (Fix) Adjust layer height: When using the Offset type the last layer in the range was not taken in account (#435)
- **UI:**
   - (Improvement) Allow layer zoom levels of 0.1x and 64x but constrain minimum zoom to the level of image fit
   - (Improvement) Update change log now shows with markdown style and more readable
   - (Fix) Windows MSI upgrade to this version (#432)
   - (Fix) Auto-updater for Mac ARM, was downloading x64 instead
2022-03-17 23:50:47 +00:00
Brett Gyarfas 67c8bbe4ad Fix indexing when using Tools->Adjust layer height->Offset. Previously it left the last layer un-changed 2022-03-14 14:52:56 -04:00
Tiago Conceição 4600e81b08 v3.0.0
- **(Add) Suggestions:**
   - A new module that detect bad or parameters out of a defined range and suggest a change on the file, those can be auto applied if configured to do so
   - **Avaliable suggestions:**
      - **Bottom layer count:** Bottom layers should be kept to a minimum, usually from 2 to 3, it function is to provide a good adhesion to the first layer on the build plate, using a high count have disadvantages.
      - **Wait time before cure:** Rest some time before cure the layer is crucial to let the resin settle after the lift sequence and allow some time for the arm settle at the correct Z position as the resin will offer some resistance and push the structure.
                                   This lead to better quality with more successful prints, less lamination problems, better first layers with more success of stick to the build plate and less elephant foot effect.
      - **Wait time after cure:** Rest some time after cure the layer and before the lift sequence can be important to allow the layer to cooldown a bit and detach better from the FEP.
      - **Layer height:** Using the right layer height is important to get successful prints:
                          Thin layers may cause problems on adhesion, lamination, will print much slower and have no real visual benefits.
                          Thick layers may not fully cure no matter the exposure time you use, causing lamination and other hazards. Read your resin dtasheet to know the limits.
                          Using layer height with too many decimal digits may produce a wrong positioning due stepper step loss and/or Z axis quality.
- **Core:**
   - Convert the project to Nullable aware and "null-safe"
- **File Formats:**
   - (Add) `Volume` property to get the total model volume
   - (Add) `SanitizeLayers` method to reassign indexes and force attribute parent file
   - (Improvement) Merge `LayerManager` into `FileFormat` and cleanup: This affects the whole project and external scripts.
   If using scripts please update them, search for `.LayerManager.` and replace by `.`
   - (Change) Chitubox encrypted format can now be saved as normal
   - (Fix) Converted files layers was pointing to the source file and related to it
- **Layers:**
   - (Add) Methods: `ResetParameters`, `CopyParametersTo`, `CopyExposureTo`, `CopyWaitTimesTo`
   - (Improvement) `IsBottomLayer` property will also return true when the index is inside bottom layer count
- **Scripting:**
   - (Add) Configuration variable: `MinimumVersionToRun` - Sets the minimum version able to run the script
   - (Improvement) Allow run scripts written in C# 10 with the new namespace; style as well as nullables methods
   - (Improvement) Convert scripts to use Nullable code
- **UI:**
   - (Add) Fluent Dark theme
   - (Add) Default Light theme
   - (Add) Default Dark theme
   - (Change) Use fontawesome and material design to render the icons instead of static png images
   - (Change) Some icons
   - (Change) Move log tab to clipboard tab
   - (Change) Tooltip overlay default color
   - (Improvement) Windows position for tool windows, sometimes framework can return negative values affecting positions, now limits to 0 (#387)
   - (Fix) Center image icon for layer action button
   - (Fix) Center image icon for save layer image button
- **Tools:**
   - (Add) Layer re-height: Offset mode, change layers position by a defined offset (#423)
   - (Improvement) Rotate: Unable to use an angle of 0
   - (Improvement) Remove layers: Will not recalcualte and reset properties of layers anymore, allowing removing layers on dynamic layer height models and others
   - (Improvement) Clone layers: Will not recalcualte and reset properties of layers anymore, allowing cloning layers on dynamic layer height models and others
   - (Fix) Exposure time finder: Very small printers may not print the stock object as it is configured, lead to a unknown error while generating the test. It will now show a better error message and advice a solution (#426)
- **Terminal:**
   - (Add) More default namespaces
   - (Improvement) Set a MinHeight for the rows to prevent spliter from eat the elements
   - (Change) Set working space to the MainWindow instead of TerminalWindow
- **(Upgrade) .NET from 5.0.14 to 6.0.3**
   - This brings big performance improvements, better JIT, faster I/O operations and others
   - Read more: https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6
   - Due this macOS requirement starts at 10.15 (Catalina)
   - Read more: https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md
- (Add) Native support for MacOS ARM64 architecture (Mac M1 and upcomming Mac's) (#187)
- (Exchange) Dependency Newtonsoft Json by System.Text.Json to parse the json documents
- (Remove) "Automations - Light-off delay" in favor of new suggestion "wait time before cure" module
- (Fix) File - Send to: Winrar or 7zip have a wrong extension on the list (uvt) when should be (uvj)
- (Upgrade) AvaloniaUI from 0.10.12 to 0.10.13
2022-03-12 21:04:47 +00:00
Tiago Conceição 069c521d72 v2.29.0
- **File formats:**
   - (Add) Transition layer count to the supported files and auto compute transition time on corresponding layers in software mode
   - (Add) `HaveTransitionLayers`, `TransitionLayersType`, `BottomLayers`, `NormalLayers`, `TransitionLayers`, `TsmcLayers` properties
   - (Add) Layer: `IsTransitionLayer` property
   - (Add) SL1: Keyword `TransitionLayerCount_xxx` - Sets the number of transition layers
   - (Improvement) CTB, PHZ, FDG: Implement the `ModifiedTimestampMinutes` field, it was the MysteriousId before as an unknown field
   - (Fix) CWS: Open in partial mode will cause an exception and prevent file from load
- **CCode:**
   - (Add) Allow inverse lifts to work as an retract
   - (Fix) Parsing of WaitTimeAfterLift was incorrect when lacking a lift sequence
   - (Fix) Layers lacking an exposure time was defaulting to global time, now defaults to 0
   - (Fix) Layers without a LED ON (M106) was setting `LightPWM` to the max value (255), now defaults to 0
- **Tools:**
   - **Timelapse:**
      - (Add) Information: Raise Layer count equivalence
      - (Add) Information: Additional lifts to be generated
      - (Add) Option: Ensure the last layer - If enabled, it will generate an obligatory layer to cover the last layer
      - (Improvement) Optimize lift for virtual layer mode, allowing set a slow and fast lift / retract by using another virtual layyer to emulate a lift
      - (Improvement) Allow to define slow and fast speed for virtual layer mode even if TSMC isn't supported
   - (Add) Fade exposure time: Setting 'Disable firmware transition layers' - Attempt to disable firmware strict transition layers in favor of this tool
   - (Add) Calibration tests: Attempt to auto disable the firmware transifiton layers
   - (Change) Edit print parameters: Allow set `BottomLiftHeight` and `LiftHeight` to 0mm
- **UI:**
   - (Improvement) Disallow drop files into UI when is processing data / disabled and prevent crashing from that action
   - (Improvement) Information tab visibility and MinHeight for data grids
   - (Improvement) Hide/show GCode tab when necessary (dependent on file format)
   - (Improvement) The 'save as' will show the new file into 'Open recent' files
- **PrusaSlicer printers:**
   - (Add) Elegoo Jupiter
   - (Add) EPAX X1 4KS
   - (Add) EPAX DX1 Pro
   - (Add) EPAX DX10 Pro 5K
   - (Add) EPAX DX10 Pro 8K
   - (Add) EPAX E10 8K
   - (Add) EPAX X133 6K
2022-02-21 05:15:55 +00:00
Tiago Conceição 374e590574 v2.28.1
- (Add) File - Terminal: Inject C# code into UVtools with an interactive terminal
- (Improvement) Modifiers: Better increment values for the spin up/down buttons
- (Improvement) Tool - Timelapse: Better lift and feeds for virtual layer, also allow to set custom lift speed for that mode
- (Fix) Tool - Edit print parameters: Disallow to change PositionZ in layers with an active alternating pattern
- (Fix) GCode: When generating layers higher than the next, it will not return to the correct position z
2022-02-15 22:14:52 +00:00