Commit Graph

73 Commits

Author SHA1 Message Date
lane.wei e5be69dedd ENH: dual_extruder: add logic to process extruder_printable_area
JIRA: STUDIO-7498
Change-Id: I1cf53db93acf41b06cb1b9569a0679487c9f1e41
2025-03-22 20:53:19 +08:00
jiaxi.chen da8474882b FIX: no infill in raft layers
jira: STUDIO-10175
Change-Id: I96cd7b0ae5a5f030cda3e3ea71c7c56b1752357a
(cherry picked from commit efa4114715f162c8e6714fbe2804620da7aaa1bd)
2025-02-18 17:19:01 +08:00
Arthur 97de4e87cf ENH: reduce organic tree support log level
jira: none
Change-Id: I17b876d88974e632c592bd36f3fea700a51f86be
2025-01-09 19:32:26 +08:00
jiaxi.chen 0d1bdab97d FIX: fix the bug of missing layers in SlimTree and HybridTree
jira: STUDIO-8756
Change-Id: I12c09ec2e3c1a2ee138472ff7c63675d0ee26ba0
(cherry picked from commit 36d80e7b24a4bdcce2d3957e0fd3ea61c8dc6bdc)
2025-01-09 19:32:26 +08:00
Arthur 849d41576c FIX: top z distance disappears in some cases
jira: STUDIO-8883
github: #5334
Change-Id: Ie70f6dada19cc17cd74fa6aa116d1ca4fb4a07d7
2025-01-09 19:32:26 +08:00
Arthur 7665aeb69c FIX: sharp tail miss detection
jira: STUDIO-7973
Change-Id: I76b0dc56fe6cf44bacad4c35874695efee29c2f9
(cherry picked from commit 3fe1728f40e2a09340b061681895e4691bd1a8f7)
2025-01-09 19:32:26 +08:00
Arthur c331b61cab FIX: merge support interfaces into a continuous large one
jira: STUDIO-8611
github: #5132
Change-Id: I12ee4a9f88a78304a98f354bfaa92e2a05f19ec2
(cherry picked from commit b7c8c7e8feb199b01f52e1fbfbba4469657db3b7)
2025-01-09 19:32:26 +08:00
Arthur f774fda6e6 FIX: inconsistent infill in hybrid tree support
jira: STUDIO-9058
Change-Id: I62f6225d33708e8a161600930c6e0dff229f5995
2025-01-09 19:32:26 +08:00
Arthur 5e476a1385 FIX: apply xy_expansion after support blocker
jira: STUDIO-9040
Change-Id: I30e09a67047f651a547082bff737524aba940f19
2025-01-09 19:32:26 +08:00
jiaxi.chen d4bc450af6 FIX: protect when support_style doesnt match type
jira: STUDIO-8800
Change-Id: I7d42f95ba43b4b3a47a83ae59afaaf9bc94baa5d
2025-01-09 19:32:26 +08:00
Arthur 4655ec449b FIX: normal support missing base interface layers
jira: STUDIO-8642
Change-Id: Ib104fdb195f8766d452138eb85d8b86cbac96981
2024-11-12 15:35:32 +08:00
Arthur 4d219266a1 FIX: 0 top z distance of hybrid tree support not working
1. fix the issue that setting top z distance=0 not working
2. remove too small extrusions of tree support

jira: STUDIO-8578
Change-Id: I8c3face9d6a756698a6fab876fdb1acc0686647c
2024-11-12 15:35:32 +08:00
Bastien Nocera a63070bd4c libslic3r: Fix BOOST_LOG_TRIVIAL declaration
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp: In constructor ‘Slic3r::SupportParameters::SupportParameters(const Slic3r::PrintObject&)’:
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:172:39: error: ‘warning’ was not declared in this scope
  172 |                     BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support";
      |                                       ^~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:172:21: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
  172 |                     BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support";
      |                     ^~~~~~~~~~~~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:175:39: error: ‘warning’ was not declared in this scope
  175 |                     BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height";
      |                                       ^~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/SupportParameters.hpp:175:21: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
  175 |                     BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height";
      |                     ^~~~~~~~~~~~~~~~~
2024-10-30 14:43:27 +08:00
Arthur 64ab78298b FIX: hybrid tree support may crash due to empty extrusion entities
jira: none
Change-Id: I521e27e7a4d12189efc77768d10d264d0d6db111
2024-10-28 20:51:35 +08:00
Arthur e773e3a5ef FIX: normal support crash
jira: STUDIO-8531
Change-Id: Ic4b13b253b8e2647f3bec78b5e9c698a18519285
2024-10-28 20:51:35 +08:00
Arthur 7697eb3dc8 ENH: improve tree supports
1. speedup organic tree support by using parallel for intersection of bed area
jira: STUDIO-8451
2. add extra wall for hybrid tree support's tall branches
3. disable circle fitting for tree support. This feature produces inconsistent
   circles for tree supports.
4. expose the option tree_support_branch_diameter_angle. Tree supports'
   strength can be improved by increasing this value.

Change-Id: If3688ca895df98a77f6ca538077daf8fe94e53f1
2024-10-28 20:51:35 +08:00
Arthur d5b14e5c09 FIX: solve tree support crash
jira: STUDIO-8509
Change-Id: I8658538d7919136efbbf0d48cbf3d366e0621ded
2024-10-28 20:51:35 +08:00
Bastien Nocera c64ab8c08a libslic3r: Fix format calls
src/libslic3r/Support/TreeSupport.cpp:3204:41: error: ‘format’ was not declared in this scope; did you mean ‘boost::format’?
 3204 |             BOOST_LOG_TRIVIAL(trace) << format("plan_layer_heights0 (%.2f,%.2f)->(%.2f,%.2f): ", z1, h1, z2, h2);
      |                                         ^~~~~~
      |                                         boost::format
2024-10-28 08:33:48 +08:00
Arthur 20784d845f ENH: speedup brim generation
Use support_islands for all types of suports to avoid gaps between
support regions of the first layer.

jira: STUDIO-8443
Change-Id: Ic65b47640d8352d406bb11eeff7390532631712b
2024-10-15 15:50:26 +08:00
Arthur 05174d0706 ENH: improve shar tail detection of tree support
The expansion was too large and may miss sharp tails near the object.

jira: STUDIO-8400
Change-Id: Iee5bd15cc7c23f16d30365d5f1c9fbcc0a632c19
2024-10-15 15:50:26 +08:00
Arthur 35bf682f79 FIX: hybrid tree support crash in some case
jira: STUDIO-8313
Change-Id: Ide03d8f666232f457305f3dd298bf8151ba9c57b
2024-10-15 15:50:26 +08:00
Arthur 00e5e84bbd FIX: tree support crashes when it's too short
jira: STUDIO-8277
Change-Id: I327d9fb7beb6cc2822131ca4954066217b1a5c9b
2024-10-15 15:50:26 +08:00
Arthur 647bd4213c FIX: fix hybrid tree support may go outside plate
1. fix hybrid tree support may go outside plate
github: #4769
2. fix false alarm of empty layer warning
jira: STUDIO-8178

Change-Id: I7bcc3959b06184901cbec946e8840c7a94bc1cab
2024-10-15 15:50:26 +08:00
Arthur a557bbe758 ENH: precise tree support wall count
Change the behavior of "tree support wall count" option, let it control precisely.
0 means auto.

jira: STUDIO-8068
github: 4780
Change-Id: I6d1a64cff9b121f5c0a3e910c5ddbfe6db198687
2024-10-15 15:50:26 +08:00
Arthur 2c6a6ae5f4 ENH: clip the organic supports outside bed
1. Clip the organic supports outside bed.
jira: STUDIO-7061, STUDIO-7211, STUDIO-8076,
github: #4175, #4769
2. Move raft_first_layer_density outside raft section. raft_first_layer_density controls both raft and support first layer density.
jira: STUDIO-8083
github: #4773

Change-Id: I6a1300787cef917a9c1395707ef50aaf6dad66e5
2024-10-15 15:50:26 +08:00
Arthur 038b92a536 ENH: improve hybrid tree support
1. keep all polygon nodes in drop_nodes
2. prevent generating too small polygon nodes

jira: STUDIO-8107
Change-Id: I1311158ab15097eb10727a8d6884b0bcd8136ef1
2024-10-15 15:50:26 +08:00
Arthur e42aabebb1 FIX: chain_and_reorder_extrusion_entities crashes
this function crashes if there are empty elements in entities.

jira: STUDIO-7975
Change-Id: I0dbeb6b1151dd089be7617ebc3271691f64ac61e
(cherry picked from commit df30728617a89891c68e36cce771fb6380355b82)
2024-10-15 15:50:26 +08:00
Arthur 04756bf447 FIX: support wall count doesn't work
jira: STUDIO-7975
Change-Id: Ic580d298568fc6eab8b1a2c017fa182869b432bf
(cherry picked from commit 82bcb099e139065cc00c133f507e955d9955b2f4)
2024-10-15 15:50:26 +08:00
Arthur 68625a6e60 ENH: add vertical support enforcer
Previously painting support enforces on vertical faces doesn't work, as projecting the facets downwards will give empty polygons.
Now we use a different mechanism to enable vertical paint-on enforces, by directly adding contact nodes.
Note: this feature only works with tree support as only tree support has contact nodes.

jira: none
Change-Id: Id171b1665566d142a6427285baccb40c0aa00949
(cherry picked from commit 9c882f61eb37350a4486df58de48f0ae489f2d15)
2024-10-15 15:50:26 +08:00
Arthur f2fc996652 ENH: improve hybrid tree support
1. do not add interface for small overhangs so supports are easier to
   remove
2. calculate avoidance more accurately using real layer height
  jira: STUDIO-6285
3. hybrid nodes won't collide with lower layers
4. calculate max move more accurately
5. do not increase radius if next layer has collision
  jira: STUDIO-2296, STUDIO-7883
6. rewrite plan_layer_heights to prevent support layers overlap.
  Now the tree support layers are completely independent to object layers.
6. increase collision areas for interface. The top layers may be too
close to interface with adaptive layer heights and very small overhang angle

Change-Id: I052c3f66e68afb7663e2d70c846dd09ed7086071
(cherry picked from commit aca511caebfdeec270d4fc0ec6bbbadde77cddc9)
2024-10-15 15:50:26 +08:00
Arthur 69cf816b94 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)
2024-10-15 15:50:26 +08:00
Arthur 319b3e2247 FIX: enforcers may not work with contour expansion
To fix this we have to expand the enforcer areas just like organic support.

jira: STUDIO-7538
Change-Id: I8e4e3fd18b0e77db9beb57347d8da895fc83f4b0
2024-10-15 15:50:26 +08:00
Arthur c262a7ea13 FIX: top z distance inaccurate if it's too large
The top z gap should be split if it's too large.
Also we use same logic for both synced and independent support layer.

jira: STUDIO-7232
github: #4191
Change-Id: Idca792e8fa51a83c2a09441ecac64d40b91d6390
2024-10-15 15:50:26 +08:00
Arthur 4bebe9eb6a ENH: remove tree_support_brim_width
This option is duplicated with raft_first_layer_expansion. Now we
use raft_first_layer_expansion for all support types. Note: the name starts with raft, but it actually controls first layer expansion of both raft and support.

jira: none
Change-Id: I3d2bfc86d36c87d75f0bc1d077c6855f668b19b6
(cherry picked from commit 241a77bd6371330aff58b92b63d066054d4920ce)
2024-08-26 17:23:33 +08:00
Arthur da7f1439ce FIX: missing support layers at raft gap
jira: none
Change-Id: I9a7f34c148ee0e228cf2e8e18c85136253f354ad
(cherry picked from commit 615751538a65cdaeb8e398dcc941971c98ec11b8)
2024-08-26 17:23:33 +08:00
Arthur 6a130a19ef FIX: do not break bridges in tree support
jira: STUDIO-7424
github: #4318
Change-Id: Icccf56b129c4910f3b0a49d69871b8df1375a6d9
(cherry picked from commit 99211cde5f2114fd64e2724069540577793f889a)
2024-08-26 17:23:33 +08:00
Arthur d2daa4bd16 FIX: do not use organic tree with height ranger modifier
jira: STUDIO-7351
github: #4313
Change-Id: I5a99f88883ec68ab424613fd8b5fdd0d09ef829b
(cherry picked from commit 0b0c3fcd5bec5ee7f4519d936b31f3fb2926919c)
2024-08-26 17:23:33 +08:00
Arthur f13144d6a9 FIX: empty first layer of tree support
The raft gap layer should only exist if there are raft layers.

jira: STUDIO-7184

Change-Id: Ia4d2a5b7ddf873fb4ef16c7087648214e6bde806
2024-06-11 18:17:08 +08:00
Arthur 461af9e8f6 FIX: top z distance incorrect with adaptive layer height
This bug causes supports difficult to remove.

Rule to remmeber:
    never decrease the top z distance, you can only increase it SLIGHTLY.

jira: STUDIO-7103, STUDIO-7001
Change-Id: I24f71cd67d182d4e2c0902f244a8ca8f4c3ee982
2024-06-11 18:17:08 +08:00
lane.wei 6fa6a1742c ENH: general: reduce log level of some detailed logs
jira: no-jira
Change-Id: I8b074812bf21d982b829f9bdcc65af3996b42eb2
(cherry picked from commit a300bb47e73a25d6851e04efdc7b7a4401b1cda6)
2024-05-13 09:20:46 +08:00
Arthur c413945186 FIX: tree support defaults to hybrid style with adaptive layer height
Organic support doesn't work with adaptive layer height.

jira: STUDIO-6971
Change-Id: I1fa6418bbc49914b3e5887e465861a0dacd42228
(cherry picked from commit dfe1cecb234d86bfbcba741ca3b46725fee43ea8)
2024-05-13 09:20:46 +08:00
Arthur 0d57da5530 FIX: organic support may crash with some model
bad function call when calling empty function throw_on_cancel.

jira: STUDIO-6927
Change-Id: Ib37530b5cf155973d4e21d088e07d3110c2d36e4
(cherry picked from commit 53f27f5968a481bab1666fe0053f9753d585f0da)
2024-04-23 20:07:49 +08:00
Arthur cd9305e3e0 FIX: blockers not working for sharp tails of tree support
also change default style to tree organic

jira: STUDIO-6801
Change-Id: Iab1d8c6117139c9a7a4c1fa71de0a13bcb356dd5
(cherry picked from commit d2c4efad58f16b23bef49bd47d3b70bf322d6f55)
2024-04-23 20:07:49 +08:00
Arthur 39839e3732 FIX: overhang interface may overlap with object
jira: STUDIO-6710
Change-Id: Ie13ec81e07326a2572d698607c03aeb793f119c8
(cherry picked from commit cc49c82793a877c2c4187e6254e4092de9285010)
2024-04-08 19:50:03 +08:00
Arthur 734a70b493 FIX: tree supports may generate flying nodes
Previous parallelization has a bug where two adjacent nodes may be deleted at the same time.

jira: none
Change-Id: I99a29dae9f72aa74ed2721eea4421b15eec10732
(cherry picked from commit 91efe67d723652d3f7e4484dd3cdf31638f769a4)
2024-04-08 19:50:03 +08:00
Arthur 507345deb1 ENH: improve supporting sharp tails of tree support
1. sharp tails are supported by a sparse set of contact points which are
easier to remove than previously dense surrounding support.
   Organic tree support also has this feature, including all other smart
overhang detection techniques (small overhang and cantilever detection),
with the cost of slightly longer time to detect overhangs.
2. improve supporting overhang contours by adding contact points along
   contours.
  jira: STUDIO-3876
2. remove some redundant data structure.

Change-Id: If7f595348506a14aba2d0132d23f97d3539c1e1f
(cherry picked from commit e3cce09b9db12ced2841045ffd337b1f35494e6c)
2024-04-08 19:50:03 +08:00
Bastien Nocera c680128141 libslic3r: Fix missing BOOST_LOG_TRIVIAL declaration
FAILED: src/libslic3r/CMakeFiles/libslic3r.dir/Support/TreeSupport.cpp.o
/usr/bin/c++ -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_NO_LIB -DBOOST_DATE_TIME_NO_LIB -DBOOST_FILESYSTEM_NO_LIB -DBOOST_IOSTREAMS_NO_LIB -DBOOST_LOCALE_NO_LIB -DBOOST_LOG_NO_LIB -DBOOST_REGEX_NO_LIB -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -DHAVE_FREETYPE -DHAVE_OPENGL_EXT -DHAVE_XLIB -DLIBNEST2D_GEOMETRIES_libslic3r -DLIBNEST2D_OPTIMIZER_nlopt -DLIBNEST2D_STATIC -DLIBNEST2D_THREADING_tbb -DOCC_CONVERT_SIGNALS -DOPENVDB_OPENEXR_STATICLIB -DOPENVDB_STATICLIB -DSLIC3R_GUI -DTBB_USE_CAPTURED_EXCEPTION=0 -DUNICODE -DUSE_TBB -DWXINTL_NO_GETTEXT_MACRO -D_UNICODE -DwxNO_UNSAFE_WXSTRING_CONV -DwxUSE_UNICODE -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/run/build/BambuStudio/src -I/run/build/BambuStudio/build/src/platform -I/run/build/BambuStudio/src/libslic3r -I/run/build/BambuStudio/build/src/libslic3r -I/run/build/BambuStudio/deps/build/destdir/usr/local/include/opencascade -I/run/build/BambuStudio/src/libnest2d/include -I/run/build/BambuStudio/src/miniz -I/run/build/BambuStudio/src/glu-libtess/include -I/run/build/BambuStudio/src/clipper2/Clipper2Lib/include -isystem /run/build/BambuStudio/src/eigen -isystem /run/build/BambuStudio/src/libigl -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include/OpenEXR -std=gnu++20 -fext-numeric-literals -Wall -Wno-reorder -O3 -DNDEBUG -std=gnu++17 -fPIC -fsigned-char -Werror=return-type -Wno-ignored-attributes -Wno-unknown-pragmas -DOPENVDB_ABI_VERSION_NUMBER=8 -MD -MT src/libslic3r/CMakeFiles/libslic3r.dir/Support/TreeSupport.cpp.o -MF src/libslic3r/CMakeFiles/libslic3r.dir/Support/TreeSupport.cpp.o.d -o src/libslic3r/CMakeFiles/libslic3r.dir/Support/TreeSupport.cpp.o -c /run/build/BambuStudio/src/libslic3r/Support/TreeSupport.cpp
/run/build/BambuStudio/src/libslic3r/Support/TreeSupport.cpp:832:39: error: ‘info’ was not declared in this scope; did you mean ‘tbb::v1::info’?
  832 |                     BOOST_LOG_TRIVIAL(info) << "detect_overhangs takes more than 30 secs, skip cantilever and sharp tails detection: layer_nr=" << layer_nr << " duration=" << duration;
      |                                       ^~~~
      |                                       tbb::v1::info
In file included from /run/build/BambuStudio/deps/build/destdir/usr/local/include/oneapi/tbb/task_arena.h:31,
                 from /run/build/BambuStudio/deps/build/destdir/usr/local/include/oneapi/tbb/partitioner.h:48,
                 from /run/build/BambuStudio/deps/build/destdir/usr/local/include/oneapi/tbb/parallel_for.h:27,
                 from /run/build/BambuStudio/deps/build/destdir/usr/local/include/tbb/parallel_for.h:17,
                 from /run/build/BambuStudio/src/libslic3r/Support/TreeSupport.cpp:25:
/run/build/BambuStudio/deps/build/destdir/usr/local/include/oneapi/tbb/info.h:125:11: note: ‘tbb::v1::info’ declared here
  125 | namespace info {
      |           ^~~~
/run/build/BambuStudio/src/libslic3r/Support/TreeSupport.cpp:832:21: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
  832 |                     BOOST_LOG_TRIVIAL(info) << "detect_overhangs takes more than 30 secs, skip cantilever and sharp tails detection: layer_nr=" << layer_nr << " duration=" << duration;
      |                     ^~~~~~~~~~~~~~~~~
/run/build/BambuStudio/src/libslic3r/Support/TreeSupport.cpp:884:43: error: ‘debug’ was not declared in this scope
  884 |                         BOOST_LOG_TRIVIAL(debug) << "found a cantilever cluster. layer_nr=" << layer_nr << dist_max;
      |                                           ^~~~~
2024-04-01 08:54:23 +08:00
Arthur 9de69035a0 ENH: speedup tree support generation
1. speedup detect_overhangs by skipping sharp tail and cantilever detection if there are too many overhangs.
   jira: STUDIO-3584, STUDIO-2592
2. drop_nodes with precalculation of avoidance and tbb parallel_for_each for all nodes in each layer.
   jira: STUDIO-1814, STUDIO-2381, STUDIO-2639, STUDIO-5020,
3. don't show too many progress messages

Change-Id: Ia4897089c69c235fb7cd8e5fdcf4690086048b31
(cherry picked from commit 9c08e28b5b5342dfdde2c939fc953f143a42a59b)
2024-03-25 15:29:19 +08:00
Arthur 40a468be3d FIX: compiling error due to template function deduction
jira: none
Change-Id: Ib2a3f03468b7992defef3ff2298882b4435cabd1
(cherry picked from commit 9efa2ee2e2dcd4d1322afa03c7b7ce05b1d69872)
2024-03-25 15:29:19 +08:00
Arthur 47440f040c FIX: reduce unnecessary small parts of tree supports
1. reduce unnecessary small parts of tree supports
    jira: STUDIO-6506
2. fix the bug that zero height tree support may be generated with synced support layer height.
3. fix the bug that tree nodes' radii may change abruptly
    jira: STUDIO-6326

Change-Id: I38153d136e46bf9d797881cc6ca8803767f46736
(cherry picked from commit 59af0a6c2643169463cf18010ffd75f3aa19b704)
2024-03-25 15:29:19 +08:00