Commit Graph

19 Commits

Author SHA1 Message Date
Noisyfox
0b2778e670 Fix max_bridge_length for organic tree (#11295)
* Remove outdated duplicated support code

* Orgainc tree no longer use `bridge_no_support` since #8212
2025-11-08 01:27:15 +08:00
Noisyfox
fe4a72ec94 Upgrade clipper & improve multi-thread performance (#7177)
* Clipper: Verify range of int32 coordinates on input.

Cherry-picked from prusa3d/PrusaSlicer@fa7debf49d

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* ClipperLib: Optimized PointInPolygon() to calculate cross products
 with int64s instead of doubles.

Cherry-picked from prusa3d/PrusaSlicer@9dca8403fe

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Reworked the ClipperLib / Polygon types to use
the tbb::scallable_allocator to better scale on multiple threads.

Cherry-picked from prusa3d/PrusaSlicer@9cde96993e

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* use tbb::scallable_allocator for Polygons and ExPolygon::holes
to better scale on multiple threads

Cherry-picked from prusa3d/PrusaSlicer@b67ad6434d

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Fixed compilation on GCC and CLang

Cherry-picked from prusa3d/PrusaSlicer@b3b44681a9

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Remove clipper2 which is not used

* Removed shiny profiler from clipperlib

Cherry-picked from prusa3d/PrusaSlicer@7e77048593

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* ClipperLib: Further optimization of memory allocation using scalable_allocator.
ClipperLib: SimplifyPolygon() - changed default winding number to positive,
      added strictly_simple parameter.
ClipperUtlis simplify_polygons() - removed "remove_collinear" parameter

Cherry-picked from prusa3d/PrusaSlicer@a7e17df25f

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* ClipperLib: emplace_back() instead of push_back().

Cherry-picked from prusa3d/PrusaSlicer@2e150795b1

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Fixed issue in a 32bit clipper, where IntersectPoint() checked for
the Y coordinate of the calculated intersection point for validity,
but the Y coordinate was already rounded to 32bits, thus an overflow
may have in rare cases masked invalidity of the result.

Cherry-picked from prusa3d/PrusaSlicer@b39c33414f

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Fixed Vojtech's out of boundary assert in Clipper library.

Cherry-picked from prusa3d/PrusaSlicer@0a202dcff3

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Update clipper to 6.4.2.

Cherry-picked from prusa3d/PrusaSlicer@b8b3cccb40

Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>

* Try fix cmake opencv

---------

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
2025-06-18 17:50:44 +08:00
Noisyfox
464b89c3a7 Fix issue that sharp tails are supported regardless of support blockers (#8743)
when using normal support (SoftFever/OrcaSlicer#8737)

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-03-08 11:03:40 +08:00
Arthur
35157c9421 FIX: apply xy_expansion after support blocker
jira: STUDIO-9040
Change-Id: I30e09a67047f651a547082bff737524aba940f19
(cherry picked from commit 5e476a1385286246a312b76bdaa836f18715b523)
2025-02-08 11:34:49 +08:00
Arthur
532dcae37a ENH: add rectilinear interface pattern for organic support
1. add rectilinear interface pattern for organic support
    jira: STUDIO-7181
2. add tree support optgroup

Change-Id: I94882bc34a61c6adc06b8ecbc9f2323f9b039aac
(cherry picked from commit a8142ab3f37e0bd140a31a7e635b8475f471d7e3)
(cherry picked from commit 69cf816b9431bc21ca0187c7db1148e2d2e898ab)
2025-02-08 11:34:38 +08:00
Arthur
107551f7b4 ENH: improve the support of blade-shape overhangs
1. reduce the gap between blade-shape overhang and support
   github: #3667
2. improve sharp tail detection of blade-shape overhangs by introducing
   lslices_extrudable.
   github: #2786, #3367
   jira: STUDIO-5065, STUDIO-6038

Change-Id: I4e899eace1aa28b100a6f4ce2b8d740c317f5530
(cherry picked from commit 08328b848e39c345b6c7b64021d1e0f04df24d08)
(cherry picked from commit 22056d5f7e7bef5574b53fc0453781cd365bf0e1)
2025-02-08 11:34:28 +08:00
Noisyfox
cc9f29c463 Rename smsOrganic to smsTreeOrganic 2025-02-08 11:34:22 +08:00
Arthur
1c498664a5 FIX: several support bugs
1. interlaced rectilinear interface pattern not working with tree supports
2. infill overlaps with walls when wall count>1
3. support blockers can't block sharp tail detection in normal support
   jira: STUDIO-5663
4. bottom z distance=0 not working for normal support.
   jira: STUDIO-5676
   github: #3203

Change-Id: I025eff2aaad90ad565661aa656c59c82ff969bbf
(cherry picked from commit 5aaf7ead0fd697043f673161e0ede0145ec49f4d)
(cherry picked from commit f3bd5ff87021b5c26794751a1f1da4349b603102)
2025-02-08 11:34:21 +08:00
Arthur
8c51f3e693 FIX: crash when support type and style are inconsistent
jira: STUDIO-5428
Change-Id: Ib1e79c71736810099e15282c30524e55e8f60f34
(cherry picked from commit aefb7fbaf25146c03bd2eb336f58ed2eb0e83ea6)
(cherry picked from commit 697a7bbee327901ddff22369b89c8d752ef7e8d7)
2025-02-08 11:34:20 +08:00
Arthur
e8d4291e02 FIX: adaptive layer height may mess up support layers
We must ensure when independent support layer height is enabled, the
support layers are strictly synced with object layers. Otherwise, the
wipe tower toolchange may be messed up.

Jira: STUDIO-4097
Change-Id: I6208653f9665b15d028940d5e130c9e895629fc2
(cherry picked from commit 41d35c8af152c91cb356a68d88a879a115b44778)
(cherry picked from commit 2b593ce378e7294c52f4d96b2403004972ed2a18)
2025-02-08 11:34:19 +08:00
Noisyfox
824f9efb69 Remove duplicated support code 2025-02-08 11:34:13 +08:00
Vovodroid
7a5746b1ae Support threshold overlap (#6606)
* Support threshold overlap

* Update tooltip
2025-01-23 18:01:38 +08:00
Noisyfox
f3fddcb225 Fix issue that support surfaces get filtered out unexpectly (#7988)
Fix issue that support surfaces get filtered out unexpectly (SoftFever/OrcaSlicer#7935)
2025-01-22 10:01:15 +08:00
Noisyfox
10b9928506 Fix issue that the support contact layer is printed in wrong filament (#7924)
Fix issue that the contact layer is printed in wrong filament when interface layer number is set to 0

Cherry-picked from prusa3d/PrusaSlicer@ca5f6da08d

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
2025-01-22 09:57:05 +08:00
Noisyfox
97d1745e5a Update files related to support to match BambuStudio's project structure 2024-09-30 14:12:29 +08:00
SoftFever
b3fff4ffd5 Removed the copyright and credits in the header of each file. This information is outdated and hard to update. Orca Slicer maintains the autoher info in git history so this is not necessary. 2024-06-15 14:56:44 +08:00
SoftFever
9b2c2bff1d Support larger printer sizes by using 64-bit.
SuperSlicer is referenced for some changes.

Co-authored-by: Merill <merill@free.fr>
2024-05-10 23:47:08 +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
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