only check slope overhang on conditional mode
add not apply speed slow down for gloss of print result
Jira: none
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I22f7ea7785aeed5833f28103d51f36be84fc7c56
not working correctly with short objects
jira: STUDIO-6489
Change-Id: I33e1a165f448e1c3e272d4045934c63ad345db2f
(cherry picked from commit 9348eaa22a056db5384a38ea966cec9ba4a533a7)
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
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)
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
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)
1. raft under organic trees are not generated
2. Studio may crash when generating organic supports for some objects.
jira: STUDIO-6407
Change-Id: I6e7ff2423b9fee95e4a4a85ccc2844549142f0c8
(cherry picked from commit 00db6c241270f5524bf1618109a2b45872073fd0)
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)
1.Union first layer convex hull with object's bbox to detect whether
model enter head_wrap_detect_zone
jira:NEW
Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Change-Id: I11f26967d7421f41e9c824e62794c96591e6ae71
1. Raft was not generated when tree support is selected but enable_support is false.
2. Raft angle and density of tree support was incorrect
github: #3675
Change-Id: Ifd78bf619a28eb03a908e75ad56af4934b6b08b7
(cherry picked from commit 2a448095a2fb4a2abebb0a5c8082a2ddbb635f16)
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
Jira: STUDIO-6166
Referenced some code from PrusaSlicer,and i made some improvements:
Change the measurement object to a local coordinate system and support measurement of multiple model_objects
thanks for PrusaSlicer and enricoturri1966
commit 928a642eb94ae8f04aee26e8242deb836cc1d3c3
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Fri Sep 2 11:24:06 2022 +0200
Measuring: Added features selection in GLGizmoMeasure
Change-Id: I9cec73398f0cdbd9a7718cb1d52145bf2562d9e1
1. prompt sync user presets when create custom filament
2. Fix the issue of not displaying printers when creating custom Filaments based on presets when selecting PLA Aero Type.
3. Optimizing the traversal logic during AMS Setting Pop up reduces time complexity and allows for quick pop ups. Additionally, using nozzle calibers for retrieval and repairing custom materials may result in inaccurate retrieval.
4. Implement synchronization logic with the printer
-a. Received slot information, reset the slot when the "filament_id" in the information does not exist in Studio
-b. Received slot information, the nozzle temperature in the information is different from the preset nozzle temperature in Studio, reset the current temperature.
Jira: none
Change-Id: I511dc82563ec77a341839671d398607048ce1985
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
Jira: STUDIO-6166
most of the code come from orca
The original code is from PrusaSlicer and referring to the implementation of OrcaSlicer. Thanks for PrusaSlicer and OrcaSlicer , thanks for Lukas Matena and enricoturri1966 and so on.
commit f72d42f920334a05b0efa01f18eb4cc066809c00
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Tue Oct 31 11:43:04 2023 +0800
Measure: Initial porting of Measure Gizmo
diff --git a/resources/images/copy_menu.svg b/resources/images/copy_menu.svg
new file mode 100644
Change-Id: I81afa52165f14c34e0c63f2c40c953a04d76fc8b
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)
1. accurate top z distance for tree support
Also fix a bug that bottom z and top z distances are misused.
jira: STUDIO-3000, STUDIO-5990
github: #1827
2. Change interface pattern to interlaced rectilinear when using
support material.
2. clean up tree support code
Change-Id: Icc8ce1b6844c841a6fbd1d623df707fdc8ed0f7b
(cherry picked from commit da7412a48dfb5767918ef125b9d0fb9718c03a61)
1. export stl with proper translation
If the object is not on first plate, previous export will give the
vertices very big coordinates.
jira: STUDIO-5991
2. add log for boolean failure reasons.
Change-Id: I52cec4e3ca31b215fbe60246f0266de3d4b8cb61
(cherry picked from commit 6c4dbc8c6c43dd5789e5ce3a572f465548068b77)
1. FIX low-level NFP bug with auto-arranging due to correctNfpPosition's
bug.
jira: STUDIO-5756, STUDIO-4874
2. FIX large items may not be able to be packed due to a too large inflation
jira: STUDIO-5566, STUDIO-5716
github: #3194
Change-Id: Id63fb3a5f5fe7ce3a5675c86a3d1440f46866ca3
(cherry picked from commit 9a789262cee4e14f10b673a4f00126d27bcf071b)
1. skip_useless_pick support
2. fix the relation incorrect issue between plates and objects
JIRA: no-jira
Change-Id: I8aba229ca99292914583a1bbd036c2d8421b414d
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)
For UNION and A_NOT_B(difference), the merged parts can be safely skipped.
jira: none
Change-Id: Ie931dba3d3f8c65565ff1f5ac24ff23292f8156f
(cherry picked from commit 37d49a0a49ddc15a187d3fac34b580f3192af86f)
Simultaneously solve: When downloading Preset from the cloud, the filament_id of the preset in m_preset is null.
Jira: 5846
Change-Id: I6ba1b46fe92e345614b6a4af3fffa87d81fa2456
JIRA: STUDIO-5441
Fix the issue of floating after flattening caused by Euler angle
calculation
thanks Lukas Matena and Prusa
Author: Lukas Matena
Data: Sep 23,2022
Fixed issue with Euler angles:
the function to extract Euler angles did not work reliably in some of the corner cases.
The bug was not present in 2.5.0 release.
Change-Id: Ie8e2c000ae38522b4f32d8557671519f86d19820
Jira: request from 1.9
1. add nozzle_height to machine profile
2. auto arranging and sequential_print_clearance_valid don't consider objects conflicting if they are all shorter than nozzle_height and close.
3. do not detect conflict when all models are short.
Change-Id: I8d1eebb15d5bfa8c40d7491e033149e360531b89
(cherry picked from commit 6b4b52653db5f08d724a556c5c766c0bfa00f34d)
JIRA: STUDIO-5551
1. flushing volume auto-calc when sync ams list
2. flushing volume takes the larger calculation value when filament has
multi-colors
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: I72e6f9780ea56103a44c2da6068440a4615c254d
Variable layer height is not supported with Organic supports.
This is picked from Prusa. Thanks.
jira: STUDIO-5614, STUDIO-5615
Change-Id: Iea462ecf8dd56e2a5a25cbe071519c29a2a763d3
(cherry picked from commit 708c5f0f7a00a30f9fe414b3dabe007ebdc48ca6)
1. Cut with multiple volumes are OK now.
2. Close mesh boolean fail error with new object or open object
3. Fix wrong name and config of boolean resulting object
github: #3118
jira: none
Change-Id: If2c9dbfb36cbdfe4917a2371217923891bb7909c
(cherry picked from commit 982c0ecb92cf7c2b5ae5972ab900a6b10e7dda50)
Principles of removal:
1. Don't translate common symbols such as mm/s, °C, etc.,
they are the same in most languages.
2. Don't translate professional terminology, such as CoreXY,
I3, PLA, TPU, HMS, etc.
3. Don't use unicode codes, use symbols instead. Eg. \u2103 -> °C.
Dont' worry, gettext and modern compilers can recognize them.
4. Fix some encoding warnings (don't use GB2312, use UTF-8 instead).
jira: none
Change-Id: Ifa847d4f32a6f8dcba660ae2026ad09fc914c7fb
/Users/ci.slave/slicer/patch_build/1/bamboo_slicer/src/libslic3r/GCode/GCodeProcessor.cpp:486:33: error: cannot pass non-trivial object of type 'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char>>') to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
get_time_dhms(machine.time));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
github pull request: https://github.com/bambulab/BambuStudio/pull/3360
Change-Id: If13ee145b20ef9532b23a58bb3b0a29f30d8c0a8
Change-Id: I98fd87417c432c3afae67a3d2bc29c79f8bffa3c
/run/build/BambuStudio/src/libslic3r/Preset.hpp:772:10: error: ‘mutex’ in namespace ‘std’ does not name a type
772 | std::mutex m_mutex;
| ^~~~~
/run/build/BambuStudio/src/libslic3r/Preset.hpp:14:1: note: ‘std::mutex’ is defined in header ‘<mutex>’; did you forget to ‘#include <mutex>’?
13 | #include "ProjectTask.hpp"
+++ |+#include <mutex>
14 |
1.Add "in_head_wrap_detect_zone".Detect if the model projection enters
a specified area.
jira:[NEW]
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I6aed5a782d2f33f023bdc19cf06dff0957828eeb
Now normal support also uses this option, so we can't default it to 1, otherwise normal supports will be too hard to remove.
jira: none
Change-Id: Ic5700af5c17e3a7b265c8915f28b0db35c6e06e6
(cherry picked from commit 6b84a9826da108b76569e686bd9def0b23ae29fd)
1. Add a base_interface_layer when using Supp.W
2. Fix a bug where base_angle and interface_angle are wong
jira: STUDIO-5386
Change-Id: I52ab32c63b3cd1e6e2ba6463b01ae26699cf13d3
(cherry picked from commit 92ddd4a10b793572a1fa009da5b9e44fcdf81de2)
Revert "ENH: do not leave a gap for top interface if the top z distance is 0"
This reverts commit 79ea32c7cbbdb7e689637980af7c36caf42284c9.
Revert reason: the supports are impossible to remove in some cases.
jira: STUDIO-5385
Change-Id: I376a6f4dfd78da6dfea68b9ac3d552cddd0b4272
(cherry picked from commit 34e38b705fde7f5d7f9a3a89c96a3627ce0c998e)
1. If layer range exceeds maximum/minimum layer range in printer
settings,pop up a window to warn
jira:[NEW]
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I0304ee790e557ecf967f355c171993d1f51b5057
1. open support wall count for normal support
Enabling this option makes normal support stronger and gives
better overhang quality, but also more difficult to removal.
Jira: STUDIO-5192
2. fix a bug where tree support (hybrid style) may get overlapped
extrusions near the walls.
3. fix a bug where raft layers can't be 1 in tree support
Jira: STUDIO-5261
Change-Id: Iadc0c67a9b50b5b221c8e83d5aa22ed282018cf8
(cherry picked from commit c0bb0084e386cb70ed6e16edf93190e4b38f5b90)
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
Thanks for PrusaSlicer and YuSanka
Jira:STUDIO-5175
commit 510d59687b3b19c4a0f4e6540620d0694dd1b7ac
Author: YuSanka <yusanka@gmail.com>
Date: Thu Oct 5 14:13:14 2023 +0200
Follow-up 1b451cdf: Fixed#11415 - Connectors disappear when slicing => only when using multiple cut planes AND excluding parts
Change-Id: I9ccd5b85f482d723d21fccf5e104c9e0a9cc4849
This is a bug introduced in 7fbb650 when solving jira STUDIO-4695.
Now we use a more decent way to solve it.
Change-Id: I92deffcb9fe53e8a24c93fe973446ae37df07375
(cherry picked from commit bd98430dbd15eb6c9bb4b447990e0dcf8a50eef0)
1. uptodate_filaments to support update the original filaments to newest config
2. allow_rotations/avoid_extrusion_cali_region for auto-arrange
3. skip_modified_gcodes to support skip modified gcodes
JIRA: STUDIO-5112
Change-Id: I95c09af1b5462cce3bf27aea32228d6d1d1d201d
1. Modify default values of some supports params, so 3rd party profiles are easier to setup.
3. Fix a bug that organic support may cause crash.
Jira: none
Change-Id: Icae348d8fe5985f4287404e96089198a499283f2
(cherry picked from commit 8889cfc703b72e142f288e525b89c87619f2213c)
First layer support can't be top interface, and
min brim width of auto mode should be larger
than 0.
Jira: STUDIO-5010
Change-Id: I02f8b017b535f8a47965387e8679f692b1966e04
(cherry picked from commit 3e7d54abe352e8ab5f9d6492b5a86a96f9067f94)
Jira: XXXX
import config lose xxx_settings_id issue
export process config should not have user printer
export process config shoule remove duplicate presets
export filamnent config: filament list should have no third print compatible presets
Change-Id: I94bac062e07b3a989ff86142e3fb8266a48364c6
Fix organic support issues by syncing with Prusa's changes. Thanks to Prusa.
Jira: none
Change-Id: I96fa1a939767bb0b0d2e8a5fd72966bb10a2042e
(cherry picked from commit 89607dc73313e1b5d389674ed2d8f4f358bcb8b9)
Jira: 4917 4920 4928 4933 4934
4917 filament preset name too long to dialog too long
4920 too long fiilament preset can't save
4928 limit preset tree size
4933 edit filament dialog remove cancel button
4934 update preset tree and refresh
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
Change-Id: Ibf708911576324a58c5640a50f5207b45a69b4e9
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>
1. Option "assemble" assembles multiple input meshes into a single object.
2. Option "load_filament_ids" sets filament ids for each loaded object.
3. Option "clone_objects" add multiple copies for each loaded object
Jira: STUDIO-4848
Change-Id: I707b48767a7c978118490398da440f0fb54351fa
(cherry picked from commit 8ddb456375be1abc6a0f692096068d8eda89b0eb)
1. Improve generation speed by removing unnecessary get_avoidance.
2. Fix a bug of hybrid support's interface (Jira: STUDIO-4878,
STUDIO-4726, Github#2614)
3. Fix a bug of tree support pass through objects (Jira: STUDIO-4252, STUDIO-4608
STUDIO-4298)
4. Fix a bug with first layer + Arachne (Jira: STUDIO-4281, Github #2423)
Change-Id: I40978c93ab93fa6964483514dad552d73a66c710
(cherry picked from commit 2ccbbe49c74d4aab4f086e79a6f8262b7fc80f15)
Jira: XXXX
copy some new parameter for new preset
Change-Id: If17f329eea541d9da332185367b2ea1b7972d2dd
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
1. Add bed macth result after doing gcode export,according to filaments
used in first layer
jira: [NEW]
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Icf70fce0310b86fffc5276fb8fb3bf4cc14afcb0
1. add a hook inside tree branches for improved strength
2. fix the issue that interface may fly as a mess (delete the logic
where gap nodes can skip dropping down)
3. fix the issue that base nodes may fly as a mess (smoothing should
skip polygon nodes, see Jira:STUDIO-4403)
Change-Id: Ie9f2039813c2ca3127ed8913304cc455fec8e7ee
(cherry picked from commit 83cef5f91d49ff3d275a89ec3df8b5f0fd573f8c)
JIRA: STUDIO-4824
add model_id to each plate config
Change-Id: Icdc234fe3b17493016037128f1c187b14014276a
Signed-off-by: Stone Li <stone.li@bambulab.com>
1. Rectangle objects get higher alignment weights, so they are aligned
better and we can now pack more of them.
Jira: https://jira.bambooolab.com/browse/STUDIO-4790
2. Fix the bug that align to Y axis may cause object flip 180 degrees.
Jira: https://jira.bambooolab.com/browse/STUDIO-4695
Change-Id: I0cccc3291c154848f8e0e8ef1aca7045518aef80
(cherry picked from commit 7fbb650d4d3d187277f849273cf76b4d0989a67f)
Auto-arranging allows more filaments to be printed on the same plate
Only HighTemp and LowTemp filaments are not allowed on the same plate.
Jira: https://jira.bambooolab.com/browse/STUDIO-4682
Change-Id: I1bd4966e6aaa55a6dd9dff05f0bd94f2795a62b0
(cherry picked from commit 965040912af0555ca190702e7c7ac92e177a2922)
Auto arranging may put exclusion region may be too close.
Jira: none
Change-Id: I613a2525620cf58cd9da7d27e8bb6d9d0a52d807
(cherry picked from commit a8ed3929d3596b8ee5400c9376ca040c75025524)
when the 3mf contains modified gcodes or self defined presets
a popup window will be shown
JIRA: STUDIO-4628
Change-Id: I975758132ba9d200255e7bf7d3a606fd609da5c8
1. refine some tip
2. alert when bed temperture greq than softening temperature
jira: STUDIO-4532
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ib9623553a40825015744783f30c6e439827a49c6
1. set different bed_shrink for seq_print and layered print
2. fix the bug that seq_print arranging may get collision with exclusion
area.
3. remove unused functions.
Jira: STUDIO-4663
Change-Id: I8b726704cca33fe37bb3cb7c4502963a9ad8d16b
Jira:STUDIO-4227
Approximately 70% of the code comes from Prusa,thanks for PrusaSlcer and YuSanka
commit 492e356a21734b3503caae115fbb280da5fbaa22
Author: YuSanka <yusanka@gmail.com>
Date: Thu Aug 3 16:09:28 2023 +0200
CutGizmo: Fixed and improved Undo/Redo.
...
Change-Id: I63abb69180aec2ab0ce9bc8f30477d9e9a25a5fb
when the first support interface layer is default color, and the support filament is different
Jira: XXXX
Change-Id: Ibec1eb266ca86947cb56f7bfb4546569f66b1036
Astar.hpp, JumpPointSearch.hpp and JumpPointSearch.cpp are from Prusa.
Github: 1793
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Original Authors:
tamasmeszaros <meszaros.q@gmail.com>,
Pavel Mikus <pavel.mikus.mail@seznam.cz>
Change-Id: I72f68d59bc8bb3b7cc0f37276c10811bca2ac38c
(cherry picked from commit 7a14a6a48af68b6a3d7985bdb9c171aabeb70817)
1. only report slicing error when no-check not set
2. skip duplicate when under spiral_mode with by-layer print
JIRA: STUDIO-XXX
Change-Id: I03bf7f45b4cc43dcc1fd2ffb6b53321fe3324dad
(cherry picked from commit 083684c01194787f54fb88787b76c1e16179c6de)
1. sometimes the pipe open failed,
add some retry logic;
2. return the reason when no-check=1 while validate fail;
3. return an error when duplicate object under spiral-mode when not using
by-object print sequence
JIRA: MAK-xxxx
Change-Id: I3792d89dbbe560a8febe0f0154bccb8f573959a5
since the accuracy issue
JIRA-ID: https://jira.bambooolab.com/browse/STUDIO-4534
Change-Id: I68f730abf90e0bf61ac25d4fa66c2c3ac8bacb29
(cherry picked from commit 9751e2504cd5c5748c02d42624318e4723ac9b57)
Including brim_max in bed shrink will make available area of bed be
small when an object has tree support, because this object will have
a brim_width as large as 24mm now.
Jira: MAK-2048
Change-Id: I309c0ec14e4acd75dcfc2fff0e7ea3558b43cc4c
Jira:STUDIO-4227
most of code from PrusaSlcer,thanks for PrusaSlcer and YuSanka
commit 1b451cdf9f8859aff58df54fa89d689aa47518d7
Author: YuSanka <yusanka@gmail.com>
Date: Wed Aug 9 13:22:11 2023 +0200
CutGizmo: Big code refactoring.
All manipulations related to cut are extracted to CutUtils now
...
Change-Id: I4e93e19b8e0d46ec2395247796c59587574851cb
Inner island is the one which inside a hole of the object. the brim area of such island should be limited by the hole
JIRA-ID: https://jira.bambooolab.com/browse/STUDIO-4521
Change-Id: Iae70dbefc87b0cb7dcb19578f29aad16e9bd630d
(cherry picked from commit 2bf63f0ece88a230a37f83d156a44bdc76a0d094)
Previously when the overhang is a slop, it's controled by the xy
distance. Now we control it with top z distance as long as it's an
interface.
Note: Not working with Snug support, which has a different mechanism of
support interface.
Jira: STUDIO-3991
Change-Id: I1b7c4cf892b4c4ec2f3e668bd966ab0971212364
(cherry picked from commit c094b5ec83dc98dca7a8b8c0438b8f1994134db6)
We decide to set brim width of all objects to MAX_BRANCH_RADIUS_FIRST_LAYER if there is an object with tree support after discussion.
Jira: MAK-2009
Change-Id: I4c4940800632c433235966b01c44ac910e33a51c
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)
JIRA: STUDIO-3921
fix the orientation bug that multiple objects does not perform the same
increase num of hull faces to iterate
Change-Id: I9c662e1e7858521585de612d7f1e9cd213e183bb
(cherry picked from commit 6a781a338df9d5a009ac5a667e8b1bc8009e32a9)
For tree support, use lslices as tree support island when generating brim,
as this is faster and more accurate.
For normal support, still use "support_fills.polygons_covered_by_spacing()" as support island when generating brim;
Jira: studio 4332
Change-Id: Ibfadd3a166606f824e5780b57112fff221470aaf
(cherry picked from commit 64960b19818c7029eaaaf3d8a89804aeaa26f11d)
Jira:STUDIO-4227
add TransformationSVD and some apis in Geometry for cut tool
these code from PrusaSlice,thanks for enricoturri1966
the original commit message:
commit 22ccb5657834e1b2fe548dc647a77044bc9c38f4
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Thu Feb 2 09:07:03 2023 +0100
Added class TransformationSVD to detect transformation matrix components using singular value decomposition
...
Change-Id: I4ce736449029d1fec22def20ef50fa20e1f48713
(cherry picked from commit da9e8127f5214f095da2db9a7898d2e0e84a0214)
Jira:STUDIO-4209
some codes are referenced form PrusaSlicer,thanks enricoturri1966 for the original commit
commit cf380fb4564fec4bd731e34819102f66fda23e75
Author: enricoturri1966 <enricoturri@seznam.cz>
Date: Tue Sep 21 13:51:57 2021 +0200
Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Out of bed detection for circular printbeds
...
Change-Id: I1b1e2ff045286566d4fb9f2d8ad4faa1f135f60c
(cherry picked from commit 284bca9f1f4cdb9eb405e8205cd50666a2b0b2a0)
JIRA: STUDIO-4408
1. if min_obj_distance is 0, use auto mode
2. normal support, 5mm gap, tree support, 22mm gap, no support, 0.1mm
gap
Change-Id: I906ccf267bef1f33a946572614d658fd50cfcda3
(cherry picked from commit 771efc935da625d8faa4cc5b77fedc5055f93c6c)
Jira:STUDIO-4227
most of the codes are referenced from PrusaSlicer,thanks YuSanka for the original submits
commit 7cd99d98f537198b78158feced2aa8977bfcbe08
Author: YuSanka <yusanka@gmail.com>
Date: Wed Jul 12 18:06:51 2023 +0200
WIP: Cut with Rivets
* Code refactoring: get_connector_mesh() and apply_cut_connectors() moved from ModelObject to CutGizmo.
* Allow to change values of space and bulges for snaps
7cd99d98f5
...
Change-Id: Id4c7991a0ed5bf9608823601775920a81a3dd1c4
Multiple filament slots does not change the actual filament settings
Jira: 3797
Change-Id: Ib377b4c79aae731caa97b408e84a87a33b3bb155
(cherry picked from commit 7d704d8f0bae14f16087c77c1bd90946632330a6)
adaptive layer height won't work with conflict checker because m_fake_wipe_tower's path is generated using fixed layer height.
Jira: STUDIO-4442
Change-Id: I964a69af2fa0be8224ffc11e4c86f8ccf6dbf152
(cherry picked from commit e8c915f9e0b8c8f6cb549259b20d6d850a06d7d3)
1.Support get filament required hrc by filament type
jira:STUDIO-3518
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: If0c1699331b75da17380b9eeca7bb155d98a14c2
1. If there is already a wipe tower on current plate, leave it there regardless need_wipe_tower flag.
This is useful when we have toolchange custom gcodes.
2. Correct wipe tower pos to prevent it outside bed.
Jira: STUDIO-4426
Change-Id: Iedecc7c5fe7ced01533d0a302253841046a7fb42
(cherry picked from commit e8d728e46b12baaf9fb0e87e3d14197ae3616826)
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)
Dominant direction is more accurate (solve the problem that cubes are
not arranged neatly).
Jira: STUDIO-4356
Change-Id: I8931f51a97bee96d5d9e75306481eae2e0cdc059
Z height after timelaps gcode is changed. Should get
the new z height and save into gcode writer.
Jira: none, bug is found by self-test
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I25516def507782600f0f270a339c88ea01a472a3
in brim generation, object's first layer extruders are obtained from regions.
If the extruders are changed at certain layers in by layer slicing mode,
the extruders from layer regions are not right.
this patch fix that issue by updating the extruder overridding in
a new member "object_first_layer_wall_extruders" in "print_object" class during
constructing "Tool_ordering" class. then using the new member directly when generating brim.
besides, support contour, which should be no_brim_area, is obtained from "support_infills" instead of "lslices" of "support_layers"
JIRA-ID: https://jira.bambooolab.com/browse/STUDIO-4332
Change-Id: I271d0ea0d8c01c412d4fb9ade5296c6a6471aed6
(cherry picked from commit 9919ce9d1b9105b859273eee4fe9481c4dff6189)
1.Use json to store nozzle hrc
2.Use json to store filament temp type
jira: STUDIO-3488
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I8eb226e26352a41418f4e46d8cda403dc22ecff4
by the multimaterial painting.
This commit is cherry pick from Prusa, the commit number is
9bce0fcf9bb479c289c396e7e23ce95841a61628
Thanks to Prusa.
Jira: XXXX
Change-Id: I29ad1fa9ab3ccc393a1e2affde1ae869d0a33afa
in previous codes, we generate brim for an object with raft, which do not need brim.
jira-ID: https://jira.bambooolab.com/browse/STUDIO-4238
Change-Id: I4b2c2c1c744c098cdcfdb03c2100b06a458e983a
(cherry picked from commit 0d06415d42c95e40f79a228f75827588171d410c)
Add cmd line option to pass layer change gcode.
This is useful for lithophane auto change colors.
Cmd: --custom-gcode custom_gcode_toolchange.json
Examples of the input json file can be found in the jira.
Jira: STUDIO-4070
Change-Id: I5beb5ff7d6d81028e95013e79f955e498cd3ba30
For i3 printers, best object position may not be the bed center,
we need to align objects to the specified best_object_pos.
Jira: STUDIO-4133
Change-Id: I06e31e597d2dd8288eb24a52d836cc8a134a4111
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
1. use extruder_clearance_max_radius instead
2. set the value of P1P/P1S to the same value of X1C
JIRA: STUDIO-4214
Change-Id: I1ae5e4203db0933854b4388b5505dbf34b40edae
1. Add align_to_y_axis option for auto-arrange.
This is useful for auto-arranging of i3 type printers.
2. Change default value of align_to_origin to true when switching
from non-i3 printers to i3 printers.
JIRA: STUDIO-2583
Change-Id: I7dabab846022a0da030a9fec060a60a4207537a0
(cherry picked from commit 9c549c18ecc1f513644e1bc4a60d6936721a13ac)
1. Enable open support_activate_air_filtration
2. Fix display exhaust fan params when support_activate_air_filtration is closed
jira:STUDIO-4230
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ieddba4bb104b6068b5afb4c109ea6b90d7c4045b
1. move the global functions to Model
2. set brim automation paremeters before process
JIRA: STUDIO-4208
Change-Id: I3f75175ec74d214ca2a6d5f3ade56d08e0ecd4f3
As title. Also add time for waiting chamber temp in printing time
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I8054080d2e8821e421a6d03222b8b25365b5977f
Updated sandwich mode code to cater for edge case where two sets of internal perimeters were causing the perimeters of another island to not be re-ordered correctly.
Github pull request: #2182
Change-Id: Ib58722db8cb76aa6b6474412c71993bb8e4dc007
Z hop will only come into effect when it is between retract_lift_above and retract_lift_below.
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: If43aea7024018eb8f532c6af5d8000973f2edee3
so that it does not decimate all triangles on very high detailed models
Relevant issue 8834 Access Error when slicing
Github: #2283
Change-Id: I047361c88c561962ef4d3cf67bc0126402c41941
In adaptive layer height, smoothing 1 time is not usable.
There'll be layer lines at the layer height change boundaries.
Change-Id: I84a8b69744db4936062d631864836f0a8cd99cf6
(cherry picked from commit ca77408f38c9a57bee4ab8ee4989024f7f105317)
As title.Use the same way to decide exhaust fan.
Removes end print exhaust fan control.
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ib848b04361dc1214eabe2819a6d120d9e0646689
(cherry picked from commit 02ef3a05141710172b1ec2cc45c1e3f9908c82a3)
Support controlling chamebr temperature and exhaust fan for air filtration
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I31627ce4f8acce99e132b0436ab7dcd0bcebf81d
(cherry picked from commit 215878864e1410085ddf9735595e1b1cb00c1e47)
allow changing the relative angle between the top surface and the ironing.
Signed-off-by: wenjie.guo <wenjie.guo@bambulab.com>
Change-Id: I85e8ff3d05d3a6d9408da011631e7d71a6d85178
fix the ironing be apply to the preview layer of bridge
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I53cb4e6ff80176953c2927c1d9dc5eecc590764c
The bottom interface layers were not right when "independent support layer height" is enabled.
This commit ensures there are always 2 bottom interface layers and the gap
is not less than specified. However, the gap may be slightly larger.
Jira: STUDIO-3842, STUDIO-2138
Github: #2127
Change-Id: Ifd8fbc4c7bc6dd92f2534fdd0179458a9e93c79a
Add a new calibration pattern method for pressure advance calibration, which can better test the influence of k value on the corner. The changes of this patch are picked from OrcaSlicer by thewildmage, thanks to thewildmage for the great work!
github issue: https://github.com/bambulab/BambuStudio/issues/2222
Change-Id: Icc8fd4d52b20c1668bfa08716b48549dfada515b
(cherry picked from commit eb72d8b681bef270906406a2d10a36d4efbce900)
Updating position to gcode writer in wipe tower
miss plate offset.
This is handling for github issue #2256
github: github issue #2256
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I915591ee919d10bb5bd2c2dcd5f1e98fd4b66503
We planed to skip uncessary filament changing when skip
object. However, this caused color mixing.
If we try to fix the color mixing issue, the flush gcode
should be generated by printer itself. This is not a short
time job.
So currently we never skip changing filament when skip
object. This will not save much time and flushing. But better
than none.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I6046cd2765cf68058712b4256402acc0be771144
Can't delete nodes with no children, otherwise the parent-child relations may be corrupted.
Jira: STUDIO-3737, MAK-1557
Change-Id: I1de39e182bac4a55a8739c00e59fdf7b9b5e4dfb
fix bug with zero width tree supports throwing exception.
This a PR from @scottmudge commited to OrcaSlicer.
More than the original commit, we also unify the usage of line_width and
support_extrusion_width, making things simpler.
Change-Id: I0b7a4344cbda4fdf05dfd9f8965f598ad6844429
Previously holes of enforcer_polygons was taken as contours,
which caused enforcers inside a hole were too large.
Jira: STUDIO-3877
Change-Id: If38c34e2469b822012a2ed0b082783563fe99228
split to 3 mode
not apply
all top surface
topmost surface
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Id9bb1a6ded7414b2f093ac01e4ecb4b93057d022
bug: There is a part of the overhang area in the model that cannot be applied
Change-Id: Ia1045225776ccb0e8730912aae1d4c7509f40c5b
(cherry picked from commit daa3e131564690e9e169313d147fd84537b898ca)
Add filament density and filament diameter in header block
Add max z height in header block
Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I128f9bde4188882baed76340e3f9d752d8a9b645
corner cases
this patch is cherry-picked from PrusaSlicer's 84722876012ca310e29b291e10fef9d18ae26cea
thanks to 'Vojtech Bubnik' for the fix
Implementing a test whether the current thread is the main (UI) thread
and using it on AppConfig::save() to assert if save is called
from a worker thread.
The old assert was using thread names, which did not always work
on Windows.
Fixes#7839#9178#9370#9420
1. when object skipped, it should not be duplicated
it is set to unprintable before arrange
and the plate needs to be considered a skipped plate also
2. skip the wipe tower if not multi-color after skip
3. load default configs if there are no configs loaded
4. refine the result.json to include key_values
Change-Id: I8c132cabcdd78756673fe900267a226a41ae1b4d
1. load the updated machine/process config from uptodate_settings
2. if don't have uptodate_settings, keep the logic as before, use from local
Change-Id: I3520469ab6094f03895b8e0e4e84c7549190f244
1. from small bed to larger one, auto translate the models based on center;
2. from large bed to smaller one, report an error
Change-Id: I7b7fac1e370ff4daca82c4f36977a86fca268625
Enforcers should also subtract the lower polygons to get overhang areas.
Jira: STUDIO-3692
Github: #2045
Change-Id: I70f4aaae13826efc624e9bc942d2d11e9b1df1a1
(cherry picked from commit fc3d9b24ac1eb14e259488c94fca3469f319b368)
1. We have a logic to add supports at corners for tree(auto), now I extend
it to tree(manual) also.
2. Only show support_critical_regions_only option to tree(auto).
Github: #2008
Change-Id: I161444da93464fd2ef0e0f3b40a0c5852beba351
(cherry picked from commit af4efb4aadc2a4d16de3eea881c6610955985fff)
to avoid integer overflow during the polygon operations in make_brim(),
plateoffset is applied during gcode generation. This results in a wrong
first layer convexhull "m_first_layer_convex_hull" which is used in _make_skrit().
This patch fixs this issue.
JIRA: https://jira.bambooolab.com/browse/STUDIO-3719
Change-Id: Icfe21f4dbab05cc9e1c6f668791a62f954c2e0e5
(cherry picked from commit 6286b3e447b7ac7cbc061dca435091094783f74b)
while the newer version of 3mf be load to older software
pressure_advance be unrecogized
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ie160759f58e573f8ad01a2941763016e9b070e9e
What: As title. The original code is always apply
at the end of last object of last layer, whichi is before
layer change
Why: the fan spped will be skipped if the last object is
skipped. So we must move the layer time fan speed setting
after changing layer, where is common gcode block and does
not belong to any object.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I442f80e00778b524576210b451f81dd15e25e14c
Only use MCut to do boolean, with a little modification to allow input
mesh to have multiple components.
Jira: STUDIO-3167
Change-Id: I4f53010f76fbcacfe966c2ef48e465f97d6516fe
(cherry picked from commit 92d0eb11744820466ee2f67c02d4764e496b7e60)
when the cached object is skipped
we need to reslicing it;
also do overhang detect for all objects
Change-Id: Ic842fd5a441426983a760145aeff9285e398d430
Previously tree supports are harder to remove than normal
supports. We learn from normal supports and improve the gap between
object and supports.
Jira: STUDIO-3530
Change-Id: I229a7b869b334bdf4c5aba96c9450213b83457f2
As title. This function need to be used in calibration
page.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Ia4228cbd195d87f433b59bc14129bd4acdd9df68
This is fix for jira-3493
Remove duplicated height pairs when add height range
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: If74c1f8af1c911d709b9582a15ea8852630c1a67
brim bounding box is now shifted w.r.t. plate origin, need to modify the
no-brim shift the same way.
Change-Id: Iefa7287e2848aadbfc4a468bca394ecec48a1e7c
1. Don't use mcut on splitable volumes
2. If MCut fails, try again with CGAL.
Change-Id: I55d352b166633db9e4548b5c9e6913cf931f5f8f
(cherry picked from commit c1bde5358524d2291db6efa584ff072308ed9d20)
Useless for BambuPrinter. But used by third party printer
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Ib6a63e78816b25696c25952508f76c3d9221e363
When there are multiple empty layers needs to be replaced, error_msg is
assigned multiple times simutaneously by tbb, which causes problem.
Jira: STUDIO-3320
Change-Id: I52a48c9fe284d15aeb8e4e9e5d1db7e0c3321ad6
(cherry picked from commit fba54c063637a1bab4d835e2e5f8558b2affa4e6)
Mark code from OrcaSlicer with same comment tag for follow easily
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: If4db502a1b0e6d0648c73f2f383b6d1cc8e1aa01
1.store each printer's calibration status to appconfig.
2.add retraction calibration
3.add choose fine calibration directly at flowrate calibration
4.add start pages for every calibration
5.add history window for pa calibration
Change-Id: I117fd46e689e0573e70e8579f5a52ba62d99f3d6
1. When the option is not set, print.full_print_config() is empty, so we
can't access opt_bool("scan_first_layer") or opt_bool("enable_support").
Should use wxGetApp().preset_bundle->full_config() instead.
Jira: STUDIO-3264
2. Allow different object having different brim_width to encode support's brim width.
In this way the arranging logic is simpler and more objects can be arranged in a plate.
Change-Id: Ic7178652147b0519d50b2eb9ceb214b4ef4c0251
(cherry picked from commit 0f163d59b40009cd29b8b1e32f730258ad0786dc)
Do not do final align for filling in bed.
Jira: STUDIO-3265
Change-Id: I2ce2ebed575ba05b1d78ec89923f8e91c4de6648
(cherry picked from commit 581aa4fd0ff1c6f64026d7b934d4bd8a79b803ae)
Thanks OrcaSlicer.
This is just function for klipper printer.
NEVER used for BBL printer.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I910abceb67f4dcb4260f74f5dd1b4fb614812670
This is fix for jira-1774, jira-2260, jira-2997.
This is also fix for github issue 1821.
Very old issue...And all caused by same reason.
Instance shift are too large for multi-plate,
which causes overflow in 2D boolean and generates
overlapped brim line.
Only apply local instance shift without plate shift.
And apply the plate offset at last step.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I23f7d1ec75c76dea1b4f5332f16ea8a3db14bddc
Should never use these two setting for bambuPrinter.
Thanks original code from OrcaSlicer.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Ifda4086b71fd2ef170b044c7632d15fe2ef490fd
pa calibration for 3rd party printer and retraction calibration
Change-Id: Ifeb12807cdce366c9d265a0490b320224dfb23fe
(cherry picked from commit 732adceeef43c9c957468ab490f0e3ee20f3173b)
Enable label object when does not print with multi
filament and object number is smaller than 65
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Id670c6a5258f266076bc0a52c50ab5a28386f242
(cherry picked from commit 40248347908788ce6303ed255826011127d8eaa3)
tbb parallelization is used to improved the efficiency of for_each_volume and for_each_polygon loop
JIRA ID: STUDIO-2866
Change-Id: Id5b3a536e3162b148417cbee803bcede3b62a651
(cherry picked from commit 15a6f7ef2f575eaa4b4694ad357d881b39b82f5b)
If support_on_buildplate_only is enabled, and a node will fall into the object,
this node should not be a normal node.
Jira: STUDIO-3047
Change-Id: I65dc6d69d28729732907111c3b34b4d32edff806
(cherry picked from commit d04dc35d45c171e20899cb391d3b192fa123c10e)
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
Optimize support top interface fill direction for bridge.
The direction is set orthogonal to the biggest bridges's infill
direction.
Currently, it only works when thick bridge is off.
Signed-off-by: yifan.wu <yifan.wu@bambulab.com>
Change-Id: I7bd894ae6f5ae24bc597c609e27a16b6d45a9797
Small overhang diameter threshold is reduced,
and use bounding box size instead of area for final decision.
Github: issue 1681
Change-Id: Iabbb49dfc47345bb609214749104c808608c4d65
Previously grid infill may be cut, so the strength on one direction is too weak. Now we switch the order at neighboring layers, so the strength of both directions are good enough.
Change-Id: I0ba768eeee34ce430e43ea57d8f06c209d469d39
These two settings is necessary for some
specific user case.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I9d70679932ac90c34296393d0e8bb8aebd8ebe48
The print z was wrong previously when there is a wipe tower, or there
is an object with floating parts.
Jira: STUDIO-2719
udesk: https://bblcs.s5.udesk.cn/entry/ticket/show/2258732
Change-Id: Ifa070aeb548d692549cf88df0d405ecdf0160c80
(cherry picked from commit be3097d8044ce9e0079ebf7070b15c7aad7aff0e)
Remove all spaces and special symbols like \ / : * ? " < > | in the plate name,allow xml special symbols such as & '
Change-Id: I2b391d13be709af0e47f1573c0e225e63591fd23
(cherry picked from commit 135c97e9916c852a8625d9d9bf0a4dda051b6e2b)