Commit Graph

83 Commits

Author SHA1 Message Date
jiaxi.chen 0bbf795400 FIX: sharptail missing when topz=0
jira: none
Change-Id: I627ab5503e47dafb32a548ae1123b6a50610c9a8
2025-04-15 08:22:34 +08:00
jiaxi.chen b35c05e1c2 FIX: SHARPTAIL missing or discontinuous
jira: STUDIO-10792
Change-Id: Idfc1f17c4daacc8687c96e5efc3cf6427fec1e6f
2025-04-15 08:20:28 +08:00
jiaxi.chen 8dd8979201 FIX: bottom layer of erSupportTransition dont overlap with base_support
It's because the angle pramater is initialized outside of parallel computing

jira: STUDIO-11015
Change-Id: I2746880683f705cedc5eaca8a41d7b385e22368f
2025-03-24 11:06:42 +08:00
jiaxi.chen 1864b22478 FIX: gen floating areas when holes of support_area propagate
jira: STUDIO-10271
Change-Id: Ib45d78c6f920613ba29cb97cead9192813cbb4fe
2025-03-24 09:12:13 +08:00
Arthur d77848fa9f ENH: don't generate bottom interfaces for tree support
Previously we set bottom_z = 0 when soluble_interface is true and generate
bottom interfaces for tree support. This may cause tree supports unstable.
Now all tree supports will have no bottom interfaces.

jira: STUDIO-10505
Change-Id: I3c74f98fc171d28ff24ace3fd594ef5c925ff34d
2025-03-24 09:11:29 +08:00
jiaxi.chen 3366b13fd6 FIX: wrong number of outer_walls
1. when some area is need_extra_wall, the whole layer has double walls.
2. set circles above soluble interface with double walls

jira: STUDIO-10505
Change-Id: I5846c712a36e2e5bfc5018013b44e2712229b6ad
(cherry picked from commit 5675d9c14e57c4615249ec665603dd662a9a7ee3)
2025-03-24 09:04:49 +08:00
jiaxi.chen 5728474378 FIX: dont need roof1stlayer if there is no roof above
jira: STUDIO-10573
Change-Id: Ie6ef6e3321f076511f0caf24b906f75761aacfc8
2025-03-24 09:04:23 +08:00
jiaxi.chen 1a58c3f1c8 FIX: when params change, clear detected overhangs
jira: STUDIO-10575
Change-Id: If38fc21a97657980b4dfae17699f3fb41a46fa0a
2025-03-24 09:04:23 +08:00
jiaxi.chen f61beec992 FIX: fix for the previous changes
1. keep growing when collison do not contain the circle of the node.
2. when contact_node is nullptr,  cannot assign it a type.

jira: none
Change-Id: I6168a3a19ceec087e93c919625c0c3b654fc7d7e
2025-03-24 09:04:22 +08:00
jiaxi.chen 6266a987d4 FIX: first layer overlaps
still need to check if layers' bottom_z is under initial_layer_height since z_heights[0] is fixed to it.

jira: STUDIO-10282
Change-Id: Ia2d0565039389c8eb7edbb6b5403996b5ee412c2
2025-03-24 09:03:27 +08:00
Arthur f65f5fc208 FIX: Rectilinear Interlaced pattern not working
Rectilinear Interlaced interface pattern not working for normal support.

jira: STUDIO-8847
github: #5307
Change-Id: Ia17c9a0f8f20e3ac7a98ce13b1ea5065c200ac3a
2025-03-24 09:03:27 +08:00
jiaxi.chen adb3fbcfcf Fix: only one overlapping area can be added to cluster
1. Wrong generation of cluster when there are multiple overlapping areas in one layer.
2. set interface_bottom_spacing = interface(_top)_spacing.

jira: STUDIO-10241, STUDIO-10506, STUDIO-10507
Change-Id: Ic7a0d61e43c5cd8d8094cb75ac257f83bc2952b6
2025-03-24 09:03:26 +08:00
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
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
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 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
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 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 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