- Issues:
- (Add) Suction cups: Add a auto repair feature for this issues by drill a vertical vent hole (#296)
- (Add) Layer issue track bar: Colorize the issue tracker map with it own colors (Configurable)
- (Add) Allow to group issues by type and/or layer
- (Improvement) Order issues by area in descending order
- (Improvement) Always bring the selected issue into view on the list
- (Fix) When manually removing a issue from the list, it will no longer reselect other and make the user lost track of the remove issue
- (Fix) Allow to ignore all issue type
- (Fix) Material ml calculation was calculating a bad value for PhotonWorkshop files
- **UI:**
- **Menu:**
- (Add) File - Open recent: Open any recent open file from a list
Shift + Click: Open file in a new window
Shift + Ctrl + Click: Remove file from recent list
Ctrl + Click: Purge non-existing files
- (Add) File - Send to: Copy the file directly to a removable drive (Windows only)
- **(Add) Layer navigation buttons:**
- SB: Navigate to the smallest bottom layer in mass
- LB: Navigate to the largest bottom layer in mass
- SN: Navigate to the smallest normal layer in mass
- LN: Navigate to the largest normal layer in mass
- (Add) Layer outline - Distance detection: Calculates the distance to the closest zero pixel for each pixel
- **Tools:**
- **Dynamic Lifts:**
- (Improvement) Select normal layers by default
- (Improvement) Hide light-off delay fields when the file format don't support them
- (Fix) Light-off delay fields was not hidding when set a mode that dont require the extra time fields
- **Exposure time finder:**
- (Fix) Fix the 'light-off delay' field not being show on files that support wait time before cure
- (Change) Field name 'Light-off delay' to 'Wait time before cure'
- (Add) Fade exposure time: The double exposure method clones the selected layer range and print the same layer twice with different exposure times and strategies
- (Add) Double exposure: The double exposure method clones the selected layer range and print the same layer twice with different exposure times and strategies
- (Add) Clone layers: Option to keep the same z position for the cloned layers instead of rebuild model height
- (Improvement) The layer range selector for normal and bottom layers now selects the correct range based on IsBottom property rather than layer index
- (Fix) The layer range selector was setting a very high last layer index when bottom layer count is 0
- (Fix) Pixel arithmetic: Threshold types "Otsu" and "Triangle" are flags to combine with other types, it will auto append the "Binnary" type
- (Add) Support for Encrypted CTB (read-only)
- (Add) Setting - Max degree of parallelism: Sets the maximum number of concurrent tasks/threads/operations enabled to run by parallel method calls.
If your computer lags and freeze during operations you can reduce this number to reduce the workload and keep some cores available to other tasks as well.
<= 0: Will utilize however many threads the underlying scheduler provides, mostly this is the processor count.
1: Single thread. (#279)
- **(Fix) Layers:**
- Round properties before comparing to avoid the precision error
- Prevent 'Wait time' properties from having negative values
- The `RetractSpeed` or `RetractSpeed2` property wasn't setting the bottom speed for bottom layers, instead the normal retract speed was always used
- Set the `RetractHeight2` or `RetractSpeed2` property was not notifing the timer to update the print time no
- Propagate global settings to layers now identfies the bottom layers per height instead of layer index
- (Add) UVJ: Support TSMC for the file format
- (Fix) UVJ: Soft save was not updating the layer settings
- (Fix) CTB: TSMC not working properly due incorrect layer `LiftHeight` value calculation
- (Add) Allow to change wait time for bottoms and normal layers separately
- (Change) Software version field to 1.9.0
- (Fix) Bottom layer count field was not being set in one of the tables
- **File Formats:**
- (Fix) Setting a global property that haven't a bottom counter-part will notify and set that value to bottom layers too
- (Fix) TSMC: Update lift or retract height for the first time will set the `RetractHeight2` property to 0
- (Fix) TSMC: `RetractHeight` is the first fast sequence paired with `RetractSpeed`
- (Fix) TSMC: `RetractHeight2` paired with `RetractSpeed2` is performed after the `RetractHeight` and controls the height to retract to the next layer position (The slow stage)
- (Improvement) When converting from a TSMC enabled to a TSMC unable file, the slowest retract speed will be enforced
- **Layer:**
- (Add) `Number` property to get the layer number, 1 started
- (Fix) `HaveGlobalParameters` property was not comparing the `PositionZ` resulting in `true` when different heights are used but keeping all other settings the same
- (Fix) `HaveGlobalParameters` property was not comparing the `WaitTimeAfterCure` for bottom layers
- (Fix) `MaterialMilliliters` calculation with the real layer height instead of global information and recalculate when height changes (#266)
- **CTB:**
- (Improvement) Discovered more unknown fields and set them accordingly
- (Improvement) When all layers share same settings as globals it will set to follow global table instead of per layer settings
- (Fix) VDT: Wrong binding to json 'retract_distance2' key
- (Fix) XYZ Accuracy: 'Total height' text showing a F3 and no decimals
--decrypt-ctb <filepath> will decrypt all encrypted fields in the CTB. The file is replaced with the decrypted contents.
--encrypt-ctb <filepath> will encrypt header and footers of the CTB. No layer data is encrypted (not required). The file is replaced with the encrypted contents.
- **Layer:**
- (Add) `Number` property to get the layer number, 1 started
- (Fix) `HaveGlobalParameters` property was not comparing `PositionZ`
- (Fix) `HaveGlobalParameters` property was not comparing `WaitTimeAfterCure` for bottom layers
- (Fix) CTB: Discovered more unknown fields and set them accordingly
- (Add) Setting - Allow to resize the tool windows: Check this option if you have problems with content being cut on some windows, down-size the height by a bit and then expand to fix the content.
- (Fix) File formats: When converting from a TSMC-able file to an TSMC-unable file, the LiftHeight will be set to the total lift (1+2) as fail-safe guard
- (Fix) Pixel Arithmetic: Keep pattern visible by default to prevent content from being cut when made visible
- **(Fix) CTBv4:**
- LiftHeight and LiftHeight2 properties when using TSMC, LiftHeight on CTB is the total of lifts 1+2
- Soft-save is corrupting the file
Helpers.cs: Added new SHA256 and AES helper methods
FileFormat.cs: Add as available file format, does not appear in the UI
CTBEncryptedFile.cs: New FileFormat implementation for these encrypted CTB files. Keys are left as an excercise