Commit Graph

78 Commits

Author SHA1 Message Date
jianjia.ma 427deda14e FIX: Top surface bridging fail on 3DHC & FL infill
Add 45 degree angle offset when processing the bridge.
Need to raise infill_direction to invalidate posPrepareInfill

jira: 6774
Change-Id: I5e6bef3aa814b01c5f30398ac745937a67e3ef4c
(cherry picked from commit 7b12cab10b88f432a11414f8caa1c6427777a1ba)
2024-04-23 20:07:49 +08:00
xun.zhang 0e1eafecbe FIX: redo prepare_infill when change infill dir
As title

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I1f59ea5ab44835ea14e690d836e76b5c1ef7340e
2024-04-23 20:07:49 +08:00
xun.zhang 385e7ffe3e FIX: crash when change infill pattern
1. Fix crash when change infill pattern. Now change infill pattern will
influence prepare infill
2. Remove with loop param, no longer use now

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ibee8808e462bd418d83b7e5781dd2bc5cc772eb1
2024-04-08 19:50:03 +08:00
xun.zhang 609a133336 ENH: disable internal_bridge_support_thickness
1.In the new algorithm,we no longer use this param

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie7660c0f9744cb1f33bce4fa1ccbfef06b3df712
2024-04-08 19:50:03 +08:00
xun.zhang 081ac40f38 ENH: readd ensure vertical thickness option
1.The new algorithm still generate unnessary infill some time.
So we readd the option

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I65fdd58e19db85582d89facb5038adf8e87f299a
2024-04-08 19:50:03 +08:00
xun.zhang 3d75210ad1 ENH: port of new infill algorithm from prusa
1. initial port of new ensure vertical thickness algorithm from prusa
2. initial port of new internal bridge algorithm from prusa
3. readd interface shell

Based on prusa commit 11c0e567a68979e96085b3763a76464cb793ea12
and commit f8e7d1b01c114b4d45f9e221c6b5bb935065d650
Thanks prusa.

original author:
PavelMikus <pavel.mikus.mail@seznam.cz>
Vojtech Bubnik <bubnikv@gmail.com>

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0d36be065a29cf87315918d720f726975a43ef9f
2024-04-08 19:50:03 +08:00
Noisyfox ad89f63fce ENH: Merge Scarf seam method from orca
Jira:none

BBL:Merged scarf seam and
add imorovemnt to improve seam on defalue setting
--as default setting wipe before rectract get good seam on end
--clip slope at start and end
--clip more on inner wall slope start than outer wall
--slowdown slope speed to get better sea
--todo-slope path had error double dE
  reduce it could improve seam,but slope could not stick well.
--check slope path overhang and avoid it while on conditional scarf mode

Co-authored-by: qing.zhang <qing.zhang@BambuLab.com>

Change-Id: I583a1c25e534b2aa5c9d710dcf207aefbea64347
2024-03-25 15:29:19 +08:00
XunZhangBambu c96d472af5 ENH: recover the origin order of prepare infill
1.Change small sparse infill to solid infill after doing expand
introduces too much solid infill.

jira:NEW

Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Change-Id: If8ac07356185729c192d42bae8d9325ebe5fee87
2024-03-25 15:29:19 +08:00
Arthur 29da3bc441 NEW: add support_object_first_layer_gap option
jira: STUDIO-6202
github: #3521

Change-Id: I6f1ce9f5312e9482c0f5bf6ac3215861c501106c
(cherry picked from commit 83027d923a6e67fa0013e5d9f627283c68e996de)
2024-03-25 15:29:19 +08:00
XunZhangBambu 117a2aa2d9 ENH: do not split top/bottom when shell param is 0
1. When detect surface type,do not detect top/bottom
surface if top/bottom shell layers is zero

jira:STUDIO-5843

Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Change-Id: I844b24d061f3fc9aef56dab941140c567340eeae
2024-03-25 15:29:19 +08:00
lane.wei 07f965313a FIX: seq_print: fix an invalid warning caused by sinking
github: https://github.com/bambulab/BambuStudio/issues/3007
Change-Id: I1111910f2c625d5a871ea01b37dbfa7b04a849ee
(cherry picked from commit a3db95bb0940d5afe07ef0bb07113cc2acd7cd0a)
2024-03-25 15:29:19 +08:00
Arthur fa61ee6abd FIX: Checking support necessity not working
Only early stop detect_overhangs if support is disabled AND not checking support necessity.

jira: STUDIO-6158
Change-Id: I2d9662231d941827d6392d57344f7d911f641e09
(cherry picked from commit b811a6031d1afe0e7b1cb73050fe6391a65411ef)
2024-03-25 15:29:19 +08:00
Bastien Nocera 4c836314a6 libslic3r: Fix Slic3r::format declaration 2024-01-02 17:42:37 +08:00
SoftFever bdaba79455 ENH: add small perimeter speed and threshold
The original param is added by Prusa. Thanks orca for adding threshold.

1. Re add small perimeter speed and threhold.

github: #2221

Change-Id: I35b269b26f085d80f0edca28650bb21fc04898d7
2023-11-22 08:23:38 +08:00
Arthur a006286465 FIX: organic support doesn't work with raft
Fix organic support issues by syncing with Prusa's changes. Thanks to Prusa.

Jira: none

Change-Id: I96fa1a939767bb0b0d2e8a5fd72966bb10a2042e
(cherry picked from commit 89607dc73313e1b5d389674ed2d8f4f358bcb8b9)
2023-11-09 10:09:10 +08:00
xun.zhang 9719fa81ef ENH:support interface filament not for body option
1. Add a option to prevent support interface filament being used in
support body

jira:STUDIO-4847

Change-Id: Ic6e9f663b71a7e4d9cd1bca399c0da2ce22bb5b5
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
2023-11-09 10:09:10 +08:00
salt.wei 560c33c452 ENH: save overhang polygons in cache data
JIRA: none

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I6887774f986843b094c05da48de3e2d6234a2c9e
2023-11-01 09:33:21 +08:00
Arthur ad9fa81b01 ENH: add a new support style "Tree Organic"
Add a new suport style "Tree Organic" from Prusa, as organic support is
faster and seems more strong in some cases. Thanks to Prusa.

Feature detection including sharp tail, small overhang, long cantilever,
are still kept.

Known issue: first layer support path may go outside build plate.

Jira: STUDIO-2358
Github: #2420

Change-Id: I4cec149bf4fa9eb733ae720ac1a7f65098e3b951
(cherry picked from commit d977bc5d3b4609f4fec0aa68152a33cacf184c4a)
2023-11-01 09:33:21 +08:00
lane.wei 80e1b74703 ENH: Support: set the float air warning also to non-critical
JIRA: STUDIO-4217
Change-Id: Ic587acde0a566e4ea5217a5dc4f1ab8b6b155f5c
2023-11-01 09:33:21 +08:00
Lukáš Hejl 11b55ccd73 ENH: Added option for enabling interlocking between segmented regions
by the multimaterial painting.
This commit is cherry pick from Prusa, the commit number is
9bce0fcf9bb479c289c396e7e23ce95841a61628
Thanks to Prusa.
Jira: XXXX

Change-Id: I29ad1fa9ab3ccc393a1e2affde1ae869d0a33afa
2023-11-01 09:33:21 +08:00
lane.wei 60333adc96 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
2023-11-01 09:11:19 +08:00
qing.zhang 7a7a9f4296 ENH: add top_area_threshold param
Jira: 4136

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ic8a3d05cea769ae92dd5f2f2fcd685d660075c95
2023-11-01 09:11:19 +08:00
qing.zhang 0d837e2587 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-11-01 09:11:19 +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
Arthur 646b259972 ENH: merge tree support layers to support layers
Will greately reduce repeated codes.

Change-Id: I506a97a907b5b393fe41e13ae53e2f7c9247c4c5
2023-01-10 19:08:26 +08:00
Arthur 29dbc77e91 NEW: add new tree support style "Tree Slim"
1. Add a new style "Tree Slim". If enabled, tree
support branches are merged more aggressively, and the support volume
is minimized.
2. Enable support style, add back Snug for normal support.
3. Remove hybrid(auto) type and use "Tree Hybrid" style to represent it.
4. Fix a bug in plan_layer_heights that may generate empty layers when
   layer height is set to 0.3mm.
5. Fix a bug where no raft is generated if there is no overhang.
6. Fix the bug where no bottom interface or bottom gap is generated when
   tree slim is selected.
7. Use physical distance to calc radius

Change-Id: Iacd57018ae5496cdc9acd28551c44d1c88c53fe0
2022-12-26 05:31:54 -05:00
Arthur 6a644c271c FIX: lightning infill may fail for some cases
Change-Id: Ibc6e4e4262ef9fc0b36a936acc52a3b60dca2cb4
(cherry picked from commit e3b7c5c3404aa200c4b852b3963a7a0aae8837d2)
2022-12-15 04:38:15 -05:00