Commit graph

131 commits

Author SHA1 Message Date
andrewboktor
7c3d97c287
Fuzzy skin fixes + on/off for first layer (#2903)
* Fixing fuzzy skin so it doesn't exit the desired geometry at line ends
Adding option to enable/disable fuzzy skin on first layer

* Whitespace + removing extra file
2023-11-28 15:40:26 +08:00
Ioannis Giannakas
ce9a8d7b20
Internal Bridge Flow rate parameter introduction (#2859)
* Internal Bridge Flow rate parameter introduction

* updated incorrect capitalisation

* Updated parameter ordering
2023-11-26 21:43:47 +08:00
Ioannis Giannakas
cd475f0f94
Add option to "Reverse only internal perimeters" under the reverse on odd feature to reduce part warping (#2722) 2023-11-19 19:02:47 +08:00
Noisyfox
c0a8f430f8
Add back the option to disable ensure vertical shell thickness and detect narrow internal solid infill (#2626)
* Add back the option to disable `ensure vertical shell thickness` (#2602)

* Add back the option to disable `detect narrow internal solid infill` (#2623)
2023-11-06 23:21:07 +08:00
SoftFever
d6146ecc84 Add accel and jerk to object config 2023-10-24 00:05:50 +08:00
SoftFever
a7729ca83f Merge BS 1.7.7.89
# Conflicts:
#	bbl/i18n/ko/BambuStudio_ko.po
#	localization/i18n/OrcaSlicer.pot
#	localization/i18n/de/OrcaSlicer_de.po
#	localization/i18n/en/OrcaSlicer_en.po
#	localization/i18n/es/OrcaSlicer_es.po
#	localization/i18n/fr/OrcaSlicer_fr.po
#	localization/i18n/hu/OrcaSlicer_hu.po
#	localization/i18n/it/OrcaSlicer_it.po
#	localization/i18n/ja/OrcaSlicer_ja.po
#	localization/i18n/nl/OrcaSlicer_nl.po
#	localization/i18n/sv/OrcaSlicer_sv.po
#	localization/i18n/zh_cn/OrcaSlicer_zh_CN.po
#	resources/i18n/de/BambuStudio.mo
#	resources/i18n/en/BambuStudio.mo
#	resources/i18n/es/BambuStudio.mo
#	resources/i18n/fr/BambuStudio.mo
#	resources/i18n/hu/BambuStudio.mo
#	resources/i18n/it/BambuStudio.mo
#	resources/i18n/ja/BambuStudio.mo
#	resources/i18n/ko/BambuStudio.mo
#	resources/i18n/nl/BambuStudio.mo
#	resources/i18n/sv/BambuStudio.mo
#	resources/i18n/zh_cn/BambuStudio.mo
#	resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json
#	src/OrcaSlicer.cpp
#	src/libnest2d/include/libnest2d/selections/firstfit.hpp
#	src/libslic3r/GCode/GCodeProcessor.cpp
#	src/libslic3r/Print.cpp
#	src/libslic3r/Print.hpp
#	src/libslic3r/PrintConfig.cpp
#	src/slic3r/GUI/CalibrationWizardPresetPage.cpp
#	src/slic3r/GUI/GLCanvas3D.cpp
#	src/slic3r/GUI/PartPlate.cpp
#	src/slic3r/GUI/PartPlate.hpp
#	src/slic3r/GUI/ReleaseNote.cpp
#	src/slic3r/GUI/Tab.cpp
#	version.inc
2023-10-21 19:41:49 +08:00
Noisyfox
951252c597
Change direction for perimeter extrusion at odd layers. (#2413)
* 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>
2023-10-21 17:23:05 +08:00
Noisyfox
075a08bca8
Initial port of the new ensure vertical thickness algorithm from PrusaSlicer (#2382)
* 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>
2023-10-19 19:55:05 +08:00
salt.wei
e209c5de09 ENH: save overhang polygons in cache data
JIRA: none

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I6887774f986843b094c05da48de3e2d6234a2c9e
2023-10-10 14:19:23 +08:00
SoftFever
cd17209516
Ported automatic hole to polyhole conversion from superslicer (#2336)
I've ported automatic polyhole conversion from super slicer.

I'm happy to change the PR as required.

Closes #626
2023-10-07 10:03:02 +08:00
LovelyTwo
3359dadd32 Port automatic hole to polyhole conversion from SuperSlicer
Co-authored-by: supermerill <merill@free.fr>
2023-10-07 10:15:21 +11:00
Noisyfox
993e653c54 Fix crash when switching infill pattern between cubic & adaptive cubic
Cheery picked from prusa3d/PrusaSlicer@2b0a7ccb2c
2023-10-06 23:09:01 +08:00
bitingsock
bda8249e06
Add elephant foot compensation over multiple layers (#2254)
#https://github.com/prusa3d/PrusaSlicer/pull/10976

Co-authored-by: Roberto Mozzicato <bitblasters@gmail.com>
2023-09-30 18:12:12 +08:00
SoftFever
59bab91da9 Merge branch 'merge-upstream'
Signed-off-by: SoftFever <softfeverever@gmail.com>

# Conflicts:
#	src/libslic3r/Preset.cpp
#	src/libslic3r/PrintConfig.cpp
#	src/libslic3r/PrintConfig.hpp
2023-09-30 09:51:56 +08:00
Noisyfox
ee0e6a7227
Port "Extend sparse infill" from Prusa (#2134)
* 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>
2023-09-29 23:39:12 +08:00
SoftFever
b8172316b8 Merge branch 'v1.7.2-remote'
Signed-off-by: SoftFever <softfeverever@gmail.com>

# Conflicts:
#	deps/ZLIB/ZLIB.cmake
#	localization/i18n/OrcaSlicer.pot
#	localization/i18n/de/OrcaSlicer_de.po
#	localization/i18n/en/OrcaSlicer_en.po
#	localization/i18n/es/OrcaSlicer_es.po
#	localization/i18n/fr/OrcaSlicer_fr.po
#	localization/i18n/hu/OrcaSlicer_hu.po
#	localization/i18n/it/OrcaSlicer_it.po
#	localization/i18n/ja/OrcaSlicer_ja.po
#	localization/i18n/ko/OrcaSlicer_ko.po
#	localization/i18n/list.txt
#	localization/i18n/nl/OrcaSlicer_nl.po
#	localization/i18n/sv/OrcaSlicer_sv.po
#	localization/i18n/zh_cn/OrcaSlicer_zh_CN.po
#	resources/calib/PressureAdvance/pa_pattern.3mf
#	resources/handy_models/Disc.stl
#	resources/i18n/de/BambuStudio.mo
#	resources/i18n/en/BambuStudio.mo
#	resources/i18n/es/BambuStudio.mo
#	resources/i18n/fr/BambuStudio.mo
#	resources/i18n/hu/BambuStudio.mo
#	resources/i18n/it/BambuStudio.mo
#	resources/i18n/ja/BambuStudio.mo
#	resources/i18n/ko/BambuStudio.mo
#	resources/i18n/nl/BambuStudio.mo
#	resources/i18n/sv/BambuStudio.mo
#	resources/i18n/zh_cn/BambuStudio.mo
#	resources/profiles/Anycubic.json
#	resources/profiles/Anycubic/machine/Anycubic Kobra 2 0.4 nozzle.json
#	resources/profiles/BBL.json
#	resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.4 nozzle.json
#	resources/profiles/BBL/filament/Bambu ASA @BBL X1C.json
#	resources/profiles/BBL/filament/Bambu PA-CF @base.json
#	resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1C.json
#	resources/profiles/BBL/filament/Bambu PA6-CF @base.json
#	resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json
#	resources/profiles/BBL/filament/Bambu Support W @BBL X1.json
#	resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1.json
#	resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json
#	resources/profiles/BBL/filament/Generic PA-CF.json
#	resources/profiles/BBL/filament/Generic PC.json
#	resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json
#	resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json
#	resources/profiles/BBL/filament/Generic PLA High Speed @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/Generic PLA High Speed @BBL P1P.json
#	resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json
#	resources/profiles/BBL/filament/Generic PLA-CF.json
#	resources/profiles/BBL/filament/Generic PLA.json
#	resources/profiles/BBL/filament/Generic TPU.json
#	resources/profiles/BBL/filament/Overture Matte PLA @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/Overture Matte PLA @BBL P1P.json
#	resources/profiles/BBL/filament/Overture Matte PLA @BBL X1.json
#	resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json
#	resources/profiles/BBL/filament/Overture Matte PLA @base.json
#	resources/profiles/BBL/filament/Overture PLA @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/Overture PLA @BBL P1P.json
#	resources/profiles/BBL/filament/Overture PLA @BBL X1.json
#	resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/Overture PLA @BBL X1C.json
#	resources/profiles/BBL/filament/Overture PLA @base.json
#	resources/profiles/BBL/filament/P1P/Bambu TPU 95A @BBL P1P.json
#	resources/profiles/BBL/filament/P1P/Generic PLA @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/P1P/Generic TPU @BBL P1P.json
#	resources/profiles/BBL/filament/P1P/eSUN PLA+ @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/P1P/eSUN PLA+ @BBL P1P.json
#	resources/profiles/BBL/filament/PolyLite ABS @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/PolyLite ABS @BBL P1P.json
#	resources/profiles/BBL/filament/PolyLite ABS @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/PolyLite ABS @BBL X1C.json
#	resources/profiles/BBL/filament/PolyLite ABS @base.json
#	resources/profiles/BBL/filament/PolyLite ASA @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/PolyLite ASA @BBL P1P.json
#	resources/profiles/BBL/filament/PolyLite ASA @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/PolyLite ASA @BBL X1C.json
#	resources/profiles/BBL/filament/PolyLite ASA @base.json
#	resources/profiles/BBL/filament/PolyLite PETG @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/filament/PolyLite PETG @BBL P1P.json
#	resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json
#	resources/profiles/BBL/filament/PolyLite PETG @base.json
#	resources/profiles/BBL/filament/PolyLite PLA @BBL X1.json
#	resources/profiles/BBL/filament/PolyTerra PLA @BBL X1.json
#	resources/profiles/BBL/filament/eSUN PLA+ @BBL X1.json
#	resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json
#	resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json
#	resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json
#	resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json
#	resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/process/0.08mm Extra Fine @BBL P1P.json
#	resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json
#	resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json
#	resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/process/0.12mm Fine @BBL P1P.json
#	resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json
#	resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json
#	resources/profiles/BBL/process/0.16mm Optimal @BBL P1P.json
#	resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json
#	resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json
#	resources/profiles/BBL/process/0.20mm Standard @BBL P1P.json
#	resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json
#	resources/profiles/BBL/process/0.20mm Strength @BBL P1P.json
#	resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json
#	resources/profiles/BBL/process/0.24mm Draft @BBL P1P.json
#	resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json
#	resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json
#	resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json
#	resources/profiles/BBL/process/0.28mm Extra Draft @BBL P1P.json
#	resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json
#	resources/profiles/BBL/process/0.30mm Standard @BBL P1P 0.6 nozzle.json
#	resources/profiles/BBL/process/0.30mm Standard @BBL X1 0.6 nozzle.json
#	resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json
#	resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json
#	resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json
#	resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json
#	resources/profiles/BBL/process/0.40mm Standard @BBL P1P 0.8 nozzle.json
#	resources/profiles/BBL/process/0.40mm Standard @BBL X1 0.8 nozzle.json
#	resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json
#	resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json
#	resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json
#	resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json
#	resources/profiles/BBL/process/fdm_process_bbl_common.json
#	resources/profiles/Creality.json
#	resources/profiles/Creality/machine/Creality CR-10 Max 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json
#	resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json
#	resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality Ender-5 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality Ender-5 Plus 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality Ender-5 S1 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality Ender-5S 0.4 nozzle.json
#	resources/profiles/Creality/machine/Creality Ender-6 0.4 nozzle.json
#	resources/profiles/Elegoo.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 2 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 2D 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 2S 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 3 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 3 Max 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 3 Plus 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune 3 Pro 0.4 nozzle.json
#	resources/profiles/Elegoo/machine/Elegoo Neptune X 0.4 nozzle.json
#	resources/profiles/Prusa.json
#	resources/profiles/Prusa/machine/Prusa MINI 0.4 nozzle.json
#	resources/profiles/Prusa/machine/Prusa MK3S 0.4 nozzle.json
#	resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json
#	resources/profiles/Qidi/machine/Qidi X-Max 0.4 nozzle.json
#	resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json
#	resources/profiles/Qidi/machine/Qidi X-Plus 0.4 nozzle.json
#	resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json
#	resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json
#	resources/profiles/Tronxy.json
#	resources/profiles/Tronxy/machine/Tronxy X5SA 400 0.4 nozzle.json
#	resources/profiles/Tronxy/process/0.08mm Extra Fine @Tronxy.json
#	resources/profiles/Tronxy/process/0.12mm Fine @Tronxy.json
#	resources/profiles/Tronxy/process/0.15mm Optimal @Tronxy.json
#	resources/profiles/Tronxy/process/0.20mm Standard @Tronxy.json
#	resources/profiles/Tronxy/process/0.24mm Draft @Tronxy.json
#	resources/profiles/Tronxy/process/0.28mm Extra Draft @Tronxy.json
#	resources/profiles/Voxelab/machine/Voxelab Aquila X2 0.4 nozzle.json
#	resources/web/data/text.js
#	src/OrcaSlicer.cpp
#	src/libslic3r/GCode.cpp
#	src/libslic3r/GCode/SeamPlacer.cpp
#	src/libslic3r/GCode/SeamPlacer.hpp
#	src/libslic3r/GCodeWriter.cpp
#	src/libslic3r/GCodeWriter.hpp
#	src/libslic3r/Preset.cpp
#	src/libslic3r/PresetBundle.cpp
#	src/libslic3r/Print.cpp
#	src/libslic3r/PrintConfig.cpp
#	src/libslic3r/PrintConfig.hpp
#	src/libslic3r/TreeSupport.cpp
#	src/libslic3r/calib.cpp
#	src/libslic3r/calib.hpp
#	src/slic3r/GUI/BackgroundSlicingProcess.cpp
#	src/slic3r/GUI/BedShapeDialog.cpp
#	src/slic3r/GUI/ConfigManipulation.cpp
#	src/slic3r/GUI/GUI.cpp
#	src/slic3r/GUI/GUI_App.cpp
#	src/slic3r/GUI/GUI_Factories.cpp
#	src/slic3r/GUI/GUI_ObjectList.cpp
#	src/slic3r/GUI/Jobs/ArrangeJob.cpp
#	src/slic3r/GUI/OptionsGroup.cpp
#	src/slic3r/GUI/PartPlate.cpp
#	src/slic3r/GUI/PartPlate.hpp
#	src/slic3r/GUI/Plater.cpp
#	src/slic3r/GUI/StatusPanel.cpp
#	src/slic3r/GUI/Tab.cpp
#	src/slic3r/GUI/Widgets/AMSControl.hpp
#	version.inc
2023-09-29 19:46:49 +08:00
Noisyfox
7ef43f6849
Various support improvements and bugfixes (#2202)
* 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>
2023-09-24 22:58:04 +08:00
lane.wei
4bb913bcc8 ENH: Support: set the float air warning also to non-critical
JIRA: STUDIO-4217
Change-Id: Ic587acde0a566e4ea5217a5dc4f1ab8b6b155f5c
2023-09-22 16:21:26 +08:00
lane.wei
bf8ac4c436 ENH: CLI: optimize the logic for message
1. treat the critical slicing warnings as error
2. save more information into result
including the triangle counts and the non-critical warnings

JIRA: STUDIO-4217

Change-Id: I25b746d06c9a1ef2d642c67852577982a2986322
(cherry picked from commit 1d9707ed04cbb6dc12b440b70f3581c619136ac3)
2023-09-22 16:21:26 +08:00
Noisyfox
685e058c35
Parallelized PrintObject::bridge_over_infill() (#2132)
Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
2023-09-17 11:22:11 +08:00
igiannakas
61437b2c76
Detection of curled edges to enhance slowdown for overhangs algorithm (#2056)
* Overhang perimeter handling

Updated code to handle overhang perimeters as an overhang and not as a bridge.

* Preparing to add curled extrusions identification

* Porting curling calculations from Prusa Slier 2.6.1

* Prototype 1 - slowdown extended to detect curled edges and further reduce speed

First prototype of the code submitted.

* Working prototype - 2

Code is now finally working - external perimeters are slowed down as needed when there is likelyhood of curling up.

ToDo:
1. Reslicing the model causes the algorithm not to run - need to find where this fails to trigger the call for this.
2. Slowdown of internal perimeters not working yet.

* Updated to use overhang wall speed instead of bridging speed for this algorithm

* Fixed bug in speed calculation and tweaked parameters for high speed printer

Fixed bug in speed calculation and tweaked parameters for high speed printer

* Attempting to fix "set started" not being set

* Parameter tweak after print tests

* Fixed estimation not running when model is re-sliced.

* Removing debug printf statements and fixed threading flag.

* Fixed threading

* Parameter tweaks following print tests

* Made this as an option in the GUI

* Reintroduced handling of bridges as per original design

* UI line toggling when option makes sense to be visible.

* Fixed bug in field visibility & made it default to off

* Code optimisation

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2023-09-16 22:24:18 +08:00
SoftFever
e6269dd852 tweak default organic tree settings. 2023-09-13 20:10:33 +08:00
Noisyfox
a1464735ce
Initial port of organic tree support from PrusaSlicer (#1938)
* 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>
2023-09-02 17:29:43 +08:00
Noisyfox
b9ca1c8720
Port overhang extra perimeters from PrusaSlicer (#1939)
* Port overhang extra perimeters from PrusaSlicer

* Reduce duplicated code

* Add credits

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: PavelMikus <pavel.mikus.mail@seznam.cz>
2023-08-28 19:56:09 +08:00
SoftFever
2a478ab4f9 post changes after merging BS1.7.4
Remove tracking etc..
2023-08-26 18:45:43 +08:00
qing.zhang
0aa638c729 ENH: top one wall for arachne
split to 3 mode
not apply
all top surface
topmost surface

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Id9bb1a6ded7414b2f093ac01e4ecb4b93057d022
2023-08-04 18:15:25 +08:00
salt.wei
bc0273d734 ENH: should apply instance shift in is_through_overhang
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I07ca04d459c3e98650c8e5a33f56dac20f99b9a2
2023-07-07 17:52:43 +08:00
qing.zhang
546322d1cc ENH: add solid infill pattern
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I8878c8d5f0024c9cbde6040f317d0783dfc5eccd
2023-07-07 17:29:08 +08:00
qing.zhang
739d8c9b28 ENH: filter small gap
thanks SoftFever

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I9bffe629419455b2a7b4494aa595b711619939da
2023-07-07 17:29:08 +08:00
qing.zhang
4f4516357f ENH: add seam parameters and increase wall loops
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Id5c6cd6e97493f8912ce1857aed56eecace66cee
2023-07-07 17:29:08 +08:00
Arthur
0ce835dcd4 ENH: add option "remove_small_overhang"
Let the user choose remove or not.

Github issue: #1810
Jira: STUDIO-2992

Change-Id: I9c5e087d171d16d8d7318b36efe825a6cbc29c33
2023-07-07 17:29:08 +08:00
salt.wei
3a1e112d49 ENH: separate the simplifying of infill and wall
This can avoid to simplify wall twice when
the only invalid step is infill.

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Ie5a9ccc10d5331c29c716aece08cdb195352cfe3
2023-07-07 17:25:51 +08:00
salt.wei
3ea602091e ENH: add back infill anchor for special case
These two settings is necessary for some
specific user case.

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I9d70679932ac90c34296393d0e8bb8aebd8ebe48
2023-07-07 17:25:51 +08:00
qing.zhang
1d0476fa44 ENH: optimize the efficiency of auto lift
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I9c1679cc80ae23ff066df6e2fe98b5530a9d2288
2023-07-07 17:25:51 +08:00
Arthur
3d1f61c7ed NEW: add tree_support_brim_width option
Jira: STUDIO-2921

Change-Id: Id5fddc0b6f5ffe3beb9afb0be5f81a766fc5b21e
(cherry picked from commit 86d7b6016e48143aad03744a58d44042ff0a0b4c)
2023-07-07 17:25:51 +08:00
qing.zhang
b5c7532700 NEW: only one wall for first layer
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I4ed31db361230b7192c210e506717e16bd28a6f3
2023-07-07 17:25:51 +08:00
Arthur
611b2812d3 FIX: do not redo slicing after changing support params
This reverts part of the commit d4490af, because redo slicing is unacceptable after changing support params.

Known issue:
Bottom surface type depends on support parmas, that's why we add the steps dependency of slicing against support params in commit d4490af.
With this commit, bottom surface type may not be right with the initial params, and the user can't do anything to make it better.

Change-Id: Iff079c4d1205b8a07468be6396990fe87634a3fe
(cherry picked from commit c663a844629c07dd40973832df4e4d1e1827235a)
2023-07-07 17:25:51 +08:00
Arthur
3d710609d9 ENH: improve cantilever detection's speed and accuracy
Cantilever detection should be done layer by layer, instead of using
merged_poly of clusters.

Jira: STUDIO-2198

Change-Id: Ifea017fc4c13425a944ee80f7dedb603a8e14cc2
(cherry picked from commit 0803a439a458ffeb9c6d91e90344a5b78794a6bd)
2023-04-17 15:39:02 +08:00
Arthur
6facd65530 FIX: sharp tail detection in normal support was wrong
1. Fix sharp tail detection in normal support.
The not operator in front of overlaps was missing.
2. Fix bridge removal.
After adopting Prusa's smart bridge direction detection, the bridge
angle may be pi, so our previous method (comparing angle to 0 and pi/2)
was not right. Now we simply check if the bridge direction normal vector
is aligned to x-axis or y-axis.

Change-Id: I4e1fd937e432aca97cdd374ba66a0d869794126e
(cherry picked from commit c0d82003a5e4c44345219294072c54051fc5711a)
2023-04-17 15:39:02 +08:00
Arthur
0c2ba2b0a2 ENH: improve sharp detection for small regions
1. improve sharp detection for small regions.
   When the region is around 1 extrsion width, previous method may miss some sharp tails.
Now we reduce the width threshold to 0.1*extrusion_width for sharp
tails.
   When checking "nothing below", need to expand the poly a little. Example:
benchy.
2. improve is_support_necessary.
   Only popup warning for sharp tail and large cantilever (longer than 6mm).

Jira: STUDIO-2567
Change-Id: I5e977e7766b35409891d1b41e36278e3f07fa372
(cherry picked from commit c9d8a7c1c3bbd4367c7fc44408c67e5c534167f4)
2023-04-17 15:39:02 +08:00
arthur.tang
6c489808a7 ENH: boost is_support_necessary's performance
1. Parallelize the majority of overhang detection, leaving only a small
part of sharp tail detection as sequential. This strategy makes
is_support_necessary 10 times faster.
2. Use the overlaps function to detect overlapping, instead of using
intersection().empty()
3. Control the max recursion depth to prevent crashing due to too deep
recursion.

Jira: STUDIO-2445, STUDIO-2458
Change-Id: I35283da3e4a22d7afe251b804ce30b90a9d754df
(cherry picked from commit 1a6fedd1a0c82906f1807234ea1b816247ca6fd7)
2023-04-17 15:39:02 +08:00
zhimin.zeng
0846c6b9fe FIX: re-slice when modify "top_shell_layers"
STUDIO-2293 re-slice when change top_shell_layers form 0 to other, or from other to 0.

Change-Id: I57545b9d84a618e9a37a8169111916af3e524898
2023-02-24 17:44:15 +08:00
MusangKing
1d92895456 FIX: withdraw support enforcers on vertical faces
JIRA: studio-2274

Now support enforcer on vertical faces function is invalid. Previous
enhancement of support enforcer on vertical faces brounght more conficts
than benefits.

Change-Id: Icbb0df3995d8ac8b3c22dda1bd4615da78af963b
(cherry picked from commit bca003cbc35791838484afe4032276be8fa91db0)
2023-02-22 20:09:17 +08:00
chunmao.guo
cbb84d2fb6 ENH: support filament_z_hop_types
Support override z top type in filament

This is handling for STUDIO-2082

Change-Id: I885d1d5e44d626e28b260ff569d0359e462a5f8d
2023-02-22 20:09:17 +08:00
Arthur
088668994c FIX: bottom bridge was not correctly detected
A bottome surface is detected as stBottom only if:
 1. has support, top z distance=0 (soluble material), auto support
 2. for normal(auto), bridge_no_support is off
 3. for tree(auto), interface top layers=0, max bridge length=0, support_critical_regions_only=false (only in this way the bridge is fully supported)

 Note:
 Since now the surface type depends on more parameters, changing them will trigger re-slicing and making the whole process slower.

github issues: 1253

Change-Id: I0fe719e0dbf7147206008c8726dd9c7be2b19226
(cherry picked from commit d4490afa6b9e4fbb583033a125bbebb50dc5f0bb)
2023-02-22 20:09:17 +08:00
Arthur
63222d50de FIX: unsupported cantilever was not warned
1. fix unsupported cantilever was not warned. We need to set support
  type to stTreeAuto in is_support_necessary() to fully utilize the
  power of feature detection.
2. fix tree support not generated on non-first plate.

Change-Id: I5b8aa827c9d62df0119db4e8e9212f33ce75ddaa
(cherry picked from commit 60f21b6fcb45fe56f7fc867a7fcad433282bc055)
2023-02-02 16:53:45 +08:00
MusangKing
92f594ea4a FIX: support blocker not work on vertical+horizontal faces
Jira: STUDIO-2088

Change-Id: I6803e8e90ebcc4c67d81473f60fdf97929011e12
(cherry picked from commit 738800c5af48ab8a2cde40b6f2b3c48a88bfee8b)
2023-02-01 16:24:44 +08:00
Arthur
30bb96aa47 FIX: spiral mode couldn't be enabled
Support layers should be released in is_support_necessary.

Jira: STUDIO-2120
Change-Id: Id1c6fa2d8635e55be745095408dfbac38a25efa6
(cherry picked from commit f911e8d084c4fa273f8c9211112fa2f83515cfb1)
2023-02-01 16:24:44 +08:00
Arthur
81ee7bb99b ENH: improve is_support_necessary
Use tree support to detect if there are sharp tails and so on.

Jira: STUDIO-1898

Change-Id: I148e14ca4024849875133a646a8fdd36c265b2fb
(cherry picked from commit bc74015d45e96e409d34d611876e3a24e289e029)
2023-02-01 16:24:44 +08:00
yifan.wu
5d9bb61f8e ENH: use spiral lift only when it is needed
If a travel path goes through an overhang expolygons, and their distance
is shorter than threshold, lift type will be set to SpiralLift.

Signed-off-by: yifan.wu <yifan.wu@bambulab.com>
Change-Id: I345788711755dd8611ecf385818e6052cd8abe9e
2023-01-10 19:08:26 +08:00