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