* Travel very close to the inner holes, could cross external perimeter when the avoid crossing perimeters was enabled.
(cherry picked from commit prusa3d/PrusaSlicer@6c51e5148c)
* Modified variable offset in the avoid crossing perimeters to not cause scars on thin objects (#7699).
Previously, the minimum contour width was chosen too conservative and, on some thin objects, only allowed minimal (or non) offset. This could result in travels being planned along the outer perimeter.
Now, the minimum contour width is chosen much smaller at the start and tested if the variable offset wasn't failed (the outer contour broke up into more parts, more or fewer holes, etc.).
If any problem is detected, the variable offset is recalculated with a larger minimum contour width.
(cherry picked from commit prusa3d/PrusaSlicer@dc00f0bf98)
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Add back the option to disable `ensure vertical shell thickness` (#2602)
* Add back the option to disable `detect narrow internal solid infill` (#2623)
* Change direction for perimeter extrusion at odd layers.
Initial test code based on supermerill/SuperSlicer@87245ae3c1
* Perimeters for both contours and holes can have alternating direction, to support overhangs on both side.
Also fixes wipe on loop.
* Only reverse order if the loops have steep overhang
* Support a special case that treat every layer as steep overhang
* Add options
* Disable overhang reverse if vase mode is enabled
* Allow extrusion reversal and skip overhang detection if fuzzy skin
---------
Co-authored-by: supermerill <merill@free.fr>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Initial port of the new ensure vertical thickness algorithm from PrusaSlicer.
Based on prusa3d/PrusaSlicer@1a0d8f5130
* Remove code related to "Detect narrow internal solid infill" as it's handled by the new ensuring code
* Support different internal solid infill pattern
* Ignore removed options
---------
Co-authored-by: Pavel Mikuš <pavel.mikus.mail@seznam.cz>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Remove BambuLab's implementation of solid infill bridging enhancement
, will use Prusa's instead
* Port "Extend sparse infill" from Prusa
* Improve anchoring by shifting the lines half-spacing
* Add missing fill patterns
* Improve anchoring by keeping fine details
* Make sure the opposite directions do not cancel each other
---------
Co-authored-by: Pavel Mikus <pavel.mikus.mail@seznam.cz>
* Organic supports: Added check for variable layer height, with which
Organic supports are not compatible.
Fixes prusa3d/PrusaSlicer#9528 and similar.
Check the object max Z against build volume Z in Print::validate().
Cherry-picked from prusa3d/PrusaSlicer@5b94971
* Fix crash with default tree support
* Show "support_critical_regions_only" only when using auto normal tree supports (#2195)
* Fix organic tree check
---------
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
Follow-up of 6be84d529d740c44c1e9bf533e70e167b3442063 - Fixed processing of spiral vase mode in GCodeProcessor::process_G1
Co-authored-by: enricoturri1966 <enricoturri@seznam.cz>
* Initial port of organic tree support from PrusaSlicer
* Port missing Organic support parameters from PrusaSlicer
* Update parameter naming
* Reorganize the `raft_first_layer_expansion` and `raft_first_layer_density` parameters as they are not only used by rafts
* Reset support style only in simple mode
* Sync latest update from PrusaSlicer & copyrights
* Fix organic tree support crash with invalid parameters
---------
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
* First working brim ear impl, ported from SuperSlicer
* Make brim ears configurable
* Generate ears only if ear size > 0
* Fix `Polygon::convex_points` as well as brim ear max angle
* Fix another error in `Polygon::convex_points` and `Polygon::concave_points`
* Apply brim ears to inner brims as well
* tweak hide and disable condition a bit
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* First working conical overhang impl
* Add settings for Make overhang printable
* Added an Advanced setting to the Quality menu for Make overhang printable
* Allow toggling the feature and adjusting the angle threshold
* Retain recesses in the bottom of the model when "Make Overhangs Printable" is turned on
* Add settings for Make overhang printable hole size
* Allow disabling conical overhang per modifier
* Should check upper layer instead
* Skip unnecessary layers
* Apply conical overhang before any size compensation
which fixs the `lslices` not being updated issue and also the elephant foot compensation
* 1. Fix an issue that changing make_overhang_printable related parameters won't clear caches properly.
2. Tweak the logic of make_overhang_printable parameter so that it works for per region/object/print level. Remove make_overhang_printable_disable parameter.
* Change default make_overhang_printable_angle to 55
* One more missing commit
* 1. Skip checking default_region_config()->make_overhang_printable
2. Handle make_overhang_printable_angle and make_overhang_printable_hole_size value change
---------
Co-authored-by: David Bern <odie5533@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Port single wall on top surface from classic wall generator to Arachne
* Move the surface split code into a separate function to be shared between classic and Arachne. This also adds bridge detection to Arachne as well.
* Remove unwanted infills
* Fix insets calculating
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>