Commit Graph

89 Commits

Author SHA1 Message Date
jiaxi.chen ab018130d7 FIX: support_on_buildplate_only is not working
jira: STUDIO-10473
Change-Id: I58839e4281089d477087f9cad3db8027ea71cd9e
2025-03-24 08:37:52 +08:00
jiaxi.chen 2e3edc4518 FIX: wall count fixed && overlapping of interface filling path
jira: STUDIO-10419, STUDIO-10420
Change-Id: Ib7274420ceb8149a02e82d896757ce5ace908fb9
2025-03-24 08:35:26 +08:00
jiaxi.chen aeba1ebfa2 ENH: set filler_angle of roof layers to interlace with bottom bridge
jira: STUDIO-10239
Change-Id: I8dfebb289b30293a39f9737073e992e97b4b46d4
2025-03-24 08:34:32 +08:00
Arthur 93d98a6a69 FIX: crash when raft = 1 && has wipe tower
jira: STUDIO-10265
Change-Id: I2f932b2cffad6b16075adda95ebd8c453beea753
(cherry picked from commit 27c18dca4130f872ea96dbb3b321b9dcee1f1068)
2025-03-24 08:34:30 +08:00
Arthur 2debc31c4d ENH: fixed crash issue of lightning infill of tree support
Use clipper2 and remove colinear points.
Later on we can try to set lightning infill as the default infill pattern of tree support.

jira: none
Change-Id: Id545b15d778071cec6e56d212ab68db1ab90ad2a
2025-03-24 08:34:30 +08:00
jiaxi.chen 05365a7a3f FIX: wrong cantilever check of circular ring overhangs
jira: STUDIO-10240
Change-Id: Ic4ff176a017e0aa7333404e1f5eec6cac6700484
2025-03-24 08:34:00 +08:00
jiaxi.chen f2cb4f747c ENH: improve quality of interface
1. change type of transition layers below interface to erSupportTransition,
2. fix the number of transition layer above tree branches,
3. change the default setting of support_interface_pattern to smipRectilinearInterlaced,
4. change the default support_style to HybridTree when interface is soluble
5. FIX: conflict between xy_expansion && split_hole

jira: STUDIO-10239, STUDIO-10314, STUDIO-10319
Change-Id: I3eb392ccd005acedb001aa862d5bf3eb104c5293
2025-03-24 08:34:00 +08:00
jiaxi.chen 4f9f1bbba0 FIX: useless expand for tree nodes
jira: STUDIO-10235
Change-Id: I2a6780b4d010253452249c426437aba2bcc6ff60
2025-03-24 08:29:27 +08:00
jiaxi.chen 7745c29c51 FIX: useless expansion of top_interface && hybrid tree may collide with model
1. only expand 2mm for BigFlat/ThinPlate overhangs, unnecessary for tree node overhangs without big areas.
2. avoid the situation that some overhangs are extended to fall on models when smoothing.

jira: STUDIO-10177
Change-Id: Icec0bb59627bb85332ad1435cbe29a07f57f922e
2025-03-23 20:31:58 +08:00
jiaxi.chen 90d8a136f9 FIX: wrong number of interface_layer && add brim to ePolygon nodes
Change-Id: I4842dec3534713f48dad07637ff31b045599f67c
2025-03-23 20:30:30 +08:00
jiaxi.chen f9a4581e42 FIX: Alternating change of wall layers
must be double walls between a double wall and another double wall, or it's easy to break with low strength filament

Change-Id: I2bb3a3b77e7ea964d2e94aaf7407449b86df84b2
2025-03-23 20:29:17 +08:00
Arthur 8fcd627087 FIX: tree support missing in some case
jira: none
Change-Id: Idf0e6de7b395930423eca084c971b53db6c98e54
2025-03-23 20:29:09 +08:00
Arthur b5e3b96764 ENH: add Clipper2::Union and fix a command line hang issue
jira: STUDIO-9623

Change-Id: I8b40f66fed0fc9e5b13f0f10337267065fef1056
2025-03-23 20:25:13 +08:00
Arthur 976b5062c1 ENH: improve tree support
ENH: [tree support] use 2 walls if necessary

Add impact_strength_z for filaments. Use 2 walls more for weaker filaments.

jira: none

Change-Id: I0c7cfcff31f1026d57630283775e7aeb6c311146

ENH: [tree support] ease removal of large area supports

Use xy_expansion to expand overhangs for better removal of large area supports

jira: none
Change-Id: Ief59a811204478e0e0a63ae10a9d63f24512fcfb

ENH: [tree support]shrink polygon support

jira: none
Change-Id: I621aa30191d235329156015ef98d260c5b1d9ca8

FIX: fix organic tree, remove ePolygon support more easily

1. add protection to organic tree when xy_distance is set to 0.
2. add detailed classification of nodes(BigFlat && Thinplate && SharpTail && Cantilever && Normal)
3. modify the corresponding generation logic when drawing ePolygon node circles

Change-Id: I5c52522b9adad832c9542a400ebf4e1e27a61754

FIX: dont set overhang with large areas to 'SharpTail'

Change-Id: Ib118abc54edcb0024be5b0d5d6a51b4bd7b5cb47

FIX: merge support interfaces into a continuous large one

jira: STUDIO-8611
github: #5132
Change-Id: I12ee4a9f88a78304a98f354bfaa92e2a05f19ec2

ENH: dont expand sharp tails

Also add interface below sharp tails when using soluble supports.

Change-Id: Ibf3af1fe466dd7f02f00357c49ad639249efab16

FIX:split holes to help remove

when one overhang area contains holes, split it into 4 pieces with one hole's center. when choosing this center hole, consider if it's collided in lower layers, then choose the bigger hole.
new: add xy_expansion to gap_width to balance the offset later in draw_circles

Change-Id: Ib2452a5f5afdc56e219e69caf8c373d9d9ce8cbf

FIX: sync printer preset when sync extruder info

jira: none
Change-Id: I0b856d38f75816036e428844aabe6fb4c58471f2

FIX: wall count=1 not working

Change-Id: Ib9c174b49f217cc76b42c6ecdb8acdec4f7051b7

ENH: merge circle nodes into polygon overhangs nearby

AND set the number of support_roof_layers below interface to 2, which developing the interface quality.

Change-Id: I3675d37a12321317672a096dc63a9e51e2b1e984

FIX: smooth, floor embedding, delete useless codes

Change-Id: I3a5e2634e35e2ed1c310e89fd22b1d75d9cde682

FIX: remove include "Brim.cpp"

Change-Id: Id99ff4495f6d0f78d8a865d14d997a5cd9aa0791

FIX: fix sharptail detection in organic tree

Change-Id: Ic1b9a0ebf595c814f7d58356270b2a740980c3b4
(cherry picked from commit f9bbc160ae44f3126ae10c4b964fa730d7deb03f)
2025-03-23 20:18:49 +08:00
jiaxi.chen 0f98abde37 FIX: misreport warning message caused by float region when slicing relief
Unnecessary warning messages are called when slicing reliefs, because some small overhangs with only one gap layer are set as SHARPTAIL.

jira: none
Change-Id: I9abcebbcfa41d75e32f86efa64ac3bb8848247d7
2025-03-22 21:57:15 +08:00
lane.wei 43773d7701 ENH: buildvolume: add logic to support extruder_printable_height
jira: no-jira
Change-Id: I962c4aed8c536c0fd8b89ae090cd0463c5d645db
2025-03-22 21:11:22 +08:00
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