- **(Improvement) SL1:** (#314)
- Complete the SL1 file format with some defaults for convertions
- Change some data types from bool to byte as in recent prusaslicer changes
- (Upgrade) .NET from 5.0.10 to 5.0.11
- (Upgrade) AvaloniaUI from 0.10.7 to 0.10.8
- (Fix) PWS, PW0, PWM, PWMX, PWMO, PWMS: Incorrect set of layer height for the layer definition when using same positioned layers
When looking for candidate groups to check intersection of contours, we used to restrict this to only groups whose last item's layer was 1 above tthe current layer. However, in the event that 2 contours on the same layer intersect with the same group end up in a situation where the "last item" has a layer index of the current layer.
To fix this we loosen the restriction and now scan groups that have a lowest layer index of either current layer index or current layer index + 1
Fix for edge case where a contour is in multiple groups and they get merged. Doesn't fix root cause of the contour being placed in 2 groups, but for the time being this works around it be deduping during the merge
- **Pixel arithmetic**
- (Add) Apply to - Model surface: Apply only to model surface/visible pixels
- (Add) Apply to - Model surface & inset: Apply only to model surface/visible pixels and within a inset from walls
- (Add) Preset: Fuzy skin
- (Improvement) Speed up the Corrode method
- (Change) Heal anti-aliasing threshold from 169 to 119
- **Calibration - Grayscale:**
- (Add) Enable or disable text
- (Fix) Calibration - Grayscale: Crash program when redo (Ctrl+Z)
- (Change) Some defaults to better values
- (Fix) Layer arithmetic: Crash program when redo (Ctrl+Z)
- (Add) Apply to - Model surface: Apply only to model surface/visible pixels
- (Add) Apply to - Model surface & inset: Apply only to model surface/visible pixels and within a inset from walls
- (Improvement) Speed up the Corrode apply method
- **Pixel arithmetic**
- (Add) Corrode: Random dithering, use for eliminating visual prominence of layer lines. Can also be used to add a microtexture to enhance paint bonding (#307)
- (Add) Ignore areas smaller or larger than an threshold
- (Add) Preset - Heal anti-aliasing: Discard uncured faded pixels and turn them into solid black (0)
- (Fix) Resin traps: Discard traps with drain holes directly on first layer / build plate
- (Fix) The setting 'Auto flip layer on file load' is not respected when off
Added switch to random offset as it smooths the diffusion service by
leveraging grey values.
Added UI, preserves void option duplicates the "model only" option but
is significantly faster as it avoid the calculation for void voxels.
Incorporated crypto random and using spans for array access based on PR feedback.
Add pixel arithmetic operation to randomly remove pixels based on
intensity. The random dithering significantly reduces layers lines and
also provides an excellent bonding surface for paints. Intial
implementation is a primitive PoC.
- **Issues:**
- (Add) Suction cups: Additional setting to specify the required minimum height to be flagged as a issue (#302)
- (Change) Allow touching bounds to have a bounding rectangle and zoom into the issue
- (Change) Disable the ability to copy issues row text from list as this is crashing the program
- (Change) Decrease cache count of the layers from x10 to x5 to free RAM
- (Fix) Touching bounds are reporting areas of 0
- (Fix) Draw crosshair for issues are called multiple times
- (Fix) Detection error when resin traps are enabled on some cases (#303)
- (Fix) Resin trap false-positives (#305)
- (Fix) When removing multiple islands at once only the first is cleared from the issue list
- **UI:**
- (Change) Tool - Resize icon
- (Change) Move "Crosshairs" button inside "Issues" button
- (Add) Tool - Morph - Offset crop: Like erode but discards the outer pixels
- (Fix) Corrected bottom lift unit label in light-off delay calculator (#304)
This fixes the "layer 28" bug where recesses higher than the point of air contact do not get properly marked as suction cups during 2nd pass of resin trap detection.
- (Change) Allow touching bounds to have a bounding rectangle and zoom into the issue
- (Fix) Touching bounds are reporting areas of 0
- (Fix) Draw crosshair for issues are called multiple times
- (Fix) Issue:Equals
Both the repair operation as well as the deletion of an issue will now leverage common code for executing a repair. Repair operation will repair all suction cups, and deleting a specific suction cup will only repair that one.
- 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
This commit removes the Parent/Child issue structures that were added to Issue, and instead opts for a more lean approach to determining the layers affected by an operation. Instead of building out the entire parent/child tree for ever single suction cup issue, we know only calculate what we need when we need it.
During a repair operation, we calculate only the suction cup issues that have no overlapping suction cup issue below it. For "delete issue" behavior we only calculate the suction cup issues that overlap the selected on in both directions (following that direction until no more overlaps are found).