This placeholder will be used by start gcode
to avoid calibrate support filament which is
the first filament.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I7c8d206346bf3d3a5325c06abb24c58834f7f505
1. use tree slim's merge strategy in hybrid support
2. do not break bridge in hybrid support
3. fix "support on buildplate only" not working. The cause is: with
independent support layer height, contact_nodes are not synced with
object layers, so the previous way of accessing contact nodes in
unsupported_branch_leaves no longer works. To fix that, we add
obj_layer_nr.
Jira: STUDIO-2250
Change-Id: Idfc9b0bb10425de6414f7eae2cf5467cedf1d669
(cherry picked from commit 8780d5a7e92e298cbbccbb3bd1825197d387a340)
sub filament change time from layer time to adjust
layer speed
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I2f1c41a36946765b74ecad58ce102abe98e00dac
now, when XY compensation with negative value is assigned, the brim can be
generated correctly (Studio-2222). In addition, one can add brim to a model whose
first layer is empty while second layer is not empty (studio-1286).
Change-Id: I28443dc6e28bc6fff8c92d3cc35ab7a416d43138
(cherry picked from commit cb62afcfd295ca93962d99350d1dfaf3441c4759)
Change-Id: I6a3b2a67d2950e2c1c5267bb7c65d5594924caec
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit 176e505bcf5f48971302d9aff14e74b118eeafbe)
Change-Id: I19e4e470207d9cf98259be112829b089c1ce23eb
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit 52e0d20b94d52b48ce25c8f2452a16cafd05e7a8)
Change-Id: I72d99277187ea0d6b600e741dcc4306bc5f44036
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit 9ee36044158856e433b19e407094120bd15f4aa0)
Previous precision is not enough, and some mesh is not
of good quality.
This is handling for github issue #825
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I68901b41c1a3279c61678dbbcc93c887020f18a7
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)
Arranging multi-color objects with disabled
multi_materials_on_same_plate option was not currect.
Previously we only consider the first extruder id for multi-color
objects. Now we consider all extruders.
Jira: STUDIO-2164
Change-Id: If64ff4f88f0fe4f6c31ebf657b3449b19bf063f0
(cherry picked from commit f4f6bdd00a0c3d3e13406b69be9b5b0468b27d44)
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)
When using "Flush into objects' infill" with support filament, it also get's flushed into the object's infill which shouldn't be happening.
Change-Id: I0f1cb3d5ee3cf5489ccab957989c6c24336f8845
(cherry picked from commit f83e63feb3ad5a14b0f4304e2e6fb1c5828270ec)
1.fix an occasional crash when slice a new plate after sliced.
2.layer height/line width/flow/fanspeed/temperature shall not display at travel/retract/wipe move, this five only display at extrude move.
Change-Id: I4d9f9d329b5ea656c42cb421ba54123ef7f2d6c5
1. continue post_init when gl window not ready under linux
2. use deleted_wipe_towers in reload_scene to judge whether it is deleted
Change-Id: I5be2ac876842e5432d254d47e4fe31f066455106
(cherry picked from commit 5e61a21d5662ccc656136b6a219c2358364c36d9)
On Linux, GLEW requires (at least, in EGL land) that an OpenGL context be
active before glew_Init is called -- otherwise, GLEW doesn't know what
extension symbols to look up. If glew_Init fails, then some symbols
elsewhere will not exist, and the app will shortly crash. We work around
this by detecting if we're actually ready for postinit, and if not,
resetting the flag so that wxEVT_IDLE will cause us to try again later, when
the window hopefully has gone into the foreground and is ready to be used.
When determining whether or not we need to update the object list, we check
all of the objects that are being deleted to see if they're a wipe tower.
Unfortunately, by the time we check, the objects have already been deleted,
and the memory has been freed! Avoid this by writing down for deleted
objects whether they are wipe towers, and if they were, we can indeed skip
updating the object list.
In generate_contact_points, the rotated_dims don't actually generate a
Point, but generate an abstract expression that holds a reference to
bounding_box_size. Unfortunately, this goes wrong because bounding_box_size
ages out instantly; GCC's Address Sanitizer complains that this is a
"stack-use-after-scope" issue.
Interestingly, the Eigen documentation says that this is a known problem
with using C++11 "auto" to generate matrices (which a Point is)! It is
buried here: https://eigen.tuxfamily.org/dox/TopicPitfalls.html
This is probably an extremely theoretical correctness improvement, and also
an extremely theoretical performance improvement. But it is an improvement
nonetheless, and, more importantly, it enables me to continue to run the
slicer with Address Sanitizer turned on to find other potential issues.
ImGuiWrapper::load_svg previously could load an image that was not of the
aspect ratio specified by the target_width and target_height, and as a
result, could create an output vector that was smaller (or differently
shaped!) than the target_width and target_height. GCC's Address Sanitizer
flagged this because init_font was reading over the end of the allocated
buffer, but this also meant that images with incorrect aspect ratios might
get rendered to the font canvas incorrectly.
To solve this, we pass the generated width and height out from load_svg, and
use it when copying images later.
So tree supports won't go outside the bed.
Known issue:
1. moving won't trigger support re-calculating, so if you want to
clip the supports in a different way after moving, you need to change
the support settings (eg change threshold angle to 31 degrees).
2. clipping with the occlusion region is not complete, and an error
message of "outside toolpath" will still be popped because we use
convex hull to detection confliction.
Jira: STUDIO-2036
Change-Id: I643b14618eb18ffa9825072c44f677e51b0ff937
(cherry picked from commit a6217824dc0f490027e16f80f810d176dec6004b)
fix the text errot of density of PolyTerra
z_hop_type change to auto
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I7f59d2620b42d2f2092ebb4c01ac3a5455c40a4f
Support layers should be released in is_support_necessary.
Jira: STUDIO-2120
Change-Id: Id1c6fa2d8635e55be745095408dfbac38a25efa6
(cherry picked from commit f911e8d084c4fa273f8c9211112fa2f83515cfb1)
Using layer z to calculate total layer number is not
precision, because for some models with sharp top
layer, the top layer may be empty.
Check the final layer change in final gcode file.
This must be same with total layer number.
Jira: Studio-2123
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I5d001a8bb9548c3fb5f67fda966051ac3bb16502
Merge numerically very close Z values when calculate
total layer number
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I4e60ca69fe5b06b66283d6a763d0b231c3d11b5a
previous commit only fix the crash when switch spiral_mode
and will cause crash when switch timelapse_mode
Change-Id: If21acf3701e9519de55a08e183620678378f61b9
Seperate travel time from extrusion role time and
show it seperately.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Icf0aaf63c4d4ed7d1407037e5ae051d61938f973
the root cause is a mismatch between the dimensions of flush matrix and the number of extruders
Change-Id: I3a4ca706cb24d9e5d33969b9e6f5b288e71bb8f2
(cherry picked from commit 7399037eaacdfd7d8407667a2e5a097757265254)
This is fix for jira 2061
Layer height is double and may has small difference, which
influence total layer number when support is enabled.
Should use int data and consider EPSION when calculate total
layer number.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I1bb6c89f2afd162d2d7e7dcff4a9d6a00b94dab3
This reverts commit 1e95803df3733021e80241ecf7b88976708f0cf7.
Reason for revert: some model test not good, need to update curve function
Change-Id: I6afd6115d21198f60453d4f507905b6684a65cff
fix enable status of confirm btn in ams settings dlg
Change-Id: I25c11078bb723647fac6370f966c74c807362e21
Signed-off-by: Stone Li <stone.li@bambulab.com>
refine description for ams not connected
Change-Id: Ic4c01e69cfd9385548a497af5c5c3071614067a2
Signed-off-by: Stone Li <stone.li@bambulab.com>
(cherry picked from commit 4158f1e06ed20fa5dd4c3ef412d4c8fab76054a8)
Use tree support to detect if there are sharp tails and so on.
Jira: STUDIO-1898
Change-Id: I148e14ca4024849875133a646a8fdd36c265b2fb
(cherry picked from commit bc74015d45e96e409d34d611876e3a24e289e029)
For pa-cf, the default setting of cooling is
forcing cooling for all outer wall.
And internal tester found that the slowing down by
layer time does not work for outer wall under
this situation.
This is fix for this issue.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I05aaa16d246f5ea6dc1ae9808050e1281646e184
Tree support didn't fill the first layer when the tree is too short
udesk: 0284
Change-Id: I2702b26733e7360445e19847abb48f75f173da4e
(cherry picked from commit e317f9e19fbbfe21efb495e23a8ff78661bfee79)
1. display factor of extrusion calibration
2. add progress to calibration extrusion
3. support ext spool
Change-Id: Ic124a0097f16e6287c09f5f133eea84eeefb4000
Signed-off-by: Stone Li <stone.li@bambulab.com>
wxWidgets on Linux uses GStreamer as its back-end for wxMediaCtrl, which
doesn't have a bambu: URI handler. On Windows, this is handled by a Windows
Media subsystem plugin, and on Mac, this is handled with a BambuPlayer
class. Luckily, the libBambuSource.so binary that is distributed with the
network plugin package already contains support for receiving h.264 data
from the network, and the API is the same as is used by the tiny
bambusource.exe binary on Windows; we glue this into a GStreamer source
plugin that registers a URI handler for bambu:.
To make this work, we make a few additional changes elsewhere. GStreamer
seems to have trouble rendering an Xv overlay onto a 32bpp X visual, but
Bambu Slicer seems to request a 32bpp visual for some background
transparency in the Notebook; it doesn't seem to use it in an interesting
way on Linux, though, so we remove that request for transparency to allow
Bambu Studio to render to a 24bpp visual. The media controller
infrastructure also makes a few assumptions about when sizing information
can be queried from a wxMediaCtrl backend that do not hold true on Linux; we
either fix those assumptions, or fake them out, as needed. We also make a
few changes needed to successfully compile C.
This has only been tested with the GStreamer backend for wxWidgets --
notably, not the GStreamer-play backend (these are, astonishingly, two
different things!). If you find that this seems not to work, consider
*un*installing the libgstreamer-plugins-bad1.0-dev package and then
rebuilding wxWidgets.
On Linux, wxGTK by default attempts to use EGL if it is available on the
system, rather than GLX. Unfortunately, the ancient version of GLEW that we
packaged in did not support EGL, and even if it did, the configuration was
not set up to enable EGL. To solve this, we:
* upgrade GLEW to version 2.2.0, from upstream GitHub
* modify the Bambu build process to enforce that we use GLEW from the
built dependency
* remove the "extra" even older GLEW that was packaged
* modify GLEW's CMake configuration to enable EGL support when it is
available on the system (using the same test as wxWidgets uses to decide
whether to enable EGL support); if EGL isn't available at compile time,
both GLEW and wxWidgets will fall back on GLX
Note that you probably will have to blow away your CMakeCache for this to
work correctly -- otherwise, you may end up with the system GLEW, if you
have one installed (which is probably not what you want -- on Ubuntu, the
system GLEW is GLX, not EGL).
Clipper2 doesn't solve wrong line issue for some
specific model and sometimes has performance issue.
Return to clipper1.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I906f8b81083ac8c03ecc9fe3e8d2ade20be95c04
1.add pauseprint will not cause preview page refresh
2.fix add custom Gcode window and jump to layer window cannot input after reslice
Change-Id: I4f75457b6d6172080715393c975169c8f16464b9
This is fix for jira STUDIO-1501
Global_endpoints should not include seam vertex.
So the initial value should be gcode_ids.size(),
rather than m_move_vertex
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Id4162e63640509521cc7c76bc0d860f27e0c316e
1.by right-click on slider, multiple menu-windows can be opened at the same time
solution: change opened window to modal window.
2.close opened menu window after reslice
Change-Id: I4973e1cf4c2ecce83602417be051d249f1aae6a4
(cherry picked from commit 8890f1b3bdf8f1374136ec40e3f44de583c71e7f)
1. async fetch user presets from server (in thread)
2. always load default user presets
3. load user presets from cache immediately
4. not remove user presets cache
5. hide some loading ui
Change-Id: I1d29ed18e09606d0b2f69a69eea2eb5042c26223
Previously we used layer_nr-1 as the next support layer below layer_nr,
which was not right when we used independent support layer heights.
And this would make it difficult for the tree branche to avoid the object.
Change-Id: Ic705fbd093e4bd555470646044380703ca259904
(cherry picked from commit 245e1cf4fd071b1f1fea4c5d616ff87432a76911)
1.support hide funtion in assemble view
2.fix an issue that switch printable in assemble view will make
model-in-assemble-view turn transparent instead of model-in-view3D
3.fix a crash: right-click on objectlist after entering assemble view
Change-Id: Ia1a7ca492637eeaacd862ba015c440a55a83ca6e
When fuzzy skin is used, it's unmeaning to calculate
the overhang degree of extrusion line, because there
are a lot of random fuzzy point which change the line.
Disable in this case. This can also speed slicing up
when fuzzy skin is used.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Ia65e20e24fd7a5cd224635fd69a272387135ba12
Brim will be croped to ensure it does not exceed the bed area. However,
plate offsets are not considered and thus the croping does not work in
multi-plate cases. This can be fixed by this patch.
Change-Id: Iffcce6cba23a82de1fdd9fffe8c48c4e303e9e15
(cherry picked from commit 9c53fb12153cc8a31448ae4a670171c495243dae)
This is fix for z hop issue that z hop of
layer change is always spiral list even when set
to normal lift
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I7b235a640b0538bedfe4cef61ca24108c1ba7246
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
1.layer number display in disorder under ByObject case
2.disable unworkable functions in ByObject case:add pause, add custom Gcode, change filaments
Change-Id: Ib0413e047db1daf1ca582e1369c70b6b93c1bd64
allow generate wipe tower when print ByObject if there is only one object
Change-Id: I199e9cab7bd7c963edf58e829c663bb91c12f4f8
(cherry picked from commit 7153c30800022f3afb9811c67f88ba28c9b25d20)
even though there is only one color, the wipe tower is still exist
Change-Id: I5c68a4ca7239cfc74aba452a6588d74f6d622f47
(cherry picked from commit 032c2e6718c65aa4c5b18eecd0ccce27f3f489bb)
1. When sharp tail region suddenly grows a lot, it means it connects to
a well supported region and is no longer a sharp tail.
Jira: STUDIO-1862
2. First layer of sharp tail can not be reducible (must have extrusion,
i.e. won't disappear after slicing), otherwise thin spikes at the
top of the object are also treated as sharp tails.
Model: knight_seadra
3. Increase sharp_tail_max_support_height to 16mm
Model: Crane_reversed
Jira: STUDIO-1859 (for this issue I don't what is the exact cause,
but adding these three improvements solves the problem)
Change-Id: I3cd57b184d78dba8862ab3c214057ae78fe49d1f
(cherry picked from commit 9242c6a6d1f23f11ebc43a9049ce10229a15c60e)
Detour travel is wrong in multi color printing when
current position is unclear.
Don't generate detour travel in this case to avoid
colour mixture.
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I2d24b04d99b8a0b34a46c9f88e522e97cb0fe354
1. Previously we used integer Point type to detect corner, which was wrong.
2. Delete duplicate points more aggressively to prevent too many points
around curved overhangs.
3. Do not generate roof_1st_layers if there is no interface at all.
Change-Id: I1167ac04c533ec8f29dc9e656ba7072d1b54197f
(cherry picked from commit 1329347c4bf9c8207cf21e591a6ad113bb565673)
auto select grid infill for tree hybrid, and set default wall count to
1.
Change-Id: Icbecd540d06f353da2e63533f8f7cf7d7f20fbdb
(cherry picked from commit 246335cc195c88a4101dddd1eeda42d9ca16589f)
1. fix possible empty layers (caused by continues walls)
2. fix normal node may be absorbed in drop_nodes in "tree hybrid"
3. popup message to ask the user to select best parameters for tree strong
and tree hybrid.
4. auto select lightning infill for tree hybrid.
Change-Id: I7d172887a9b0e4f268267684e83fc02dc7ec6a0c
(cherry picked from commit bc6d130e86c252d7fc1f84c4df7da95050dd5d51)
1. change base pattern "None" to "Hollow", and add an icon image
2. fix a bug of not initializing m_highest_overhang_layer
3. fix a bug where normal(auto) with Tree* styles won't generate any
supports.
4. add popup message when selecting support material for interface.
5. draw connected loops when wall count is larger than 1
Change-Id: I7ea211d2971b25c65724bb10d0f6cf6e0b68c6a1
(cherry picked from commit 4c1ae7f937239fc3e1397ec2cb3b290d886bb0f0)
1. smooth nodes' positions
2. draw ellipse along movement direction
3. fix a bug of radius not smooth
4. fix a bug of Tree Strong having too large radius
5. fix a bug in plan_layer_heights: when wipe tower is
enabled, independent_support_layer_height is false, and all support
layers should be exactly the same as the object.
Jira: STUDIO-1785
6. move support style popup message to on_value_change, so only show the
popup when the user changes support type or style.
Change-Id: Ibced7a28f436d96000ee35a7194b68bb5a20a32d
(cherry picked from commit 0d814b07e433533c8de1b7a04bf52b577de0778d)
1. In auto arranging bed temp can be higher than vitrify temp by no more than 15 degrees.
2. In by-object printing we use max radius for clearance
3. Add P1P max radius
Change-Id: If595f3e19fd74f6f36d2f394edbb835c413cc800
(cherry picked from commit 2af42420ad3770f0728adb583082600544519a58)
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
fix bug of empty layers when meeting similar large layer height of tree support
TODO: hybrid(auto) still has dangling layers at the botttom.
Github#826
Change-Id: I6d5dfa9a610403e51ea82c1d86444f8645dc3210
(cherry picked from commit ea38988f0b5ba22c5b7c3b212d510f649dd23301)
New function plan_layer_heights added for pre-planning maximum layer heights
Previous adjust_layer_heights function has been commentted out.
Change-Id: I8ec5bb7b7e700ed7655d18a17d0b15de5f026592
(cherry picked from commit 55995c138e0375b8055f31768eea1392cd64168d)
Smooth timelaps has wipe tower and cause seam in vase
mode. Don't support
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I7aef1fc1ec2f5d57713fcc01e45ce99f385471c1
(cherry picked from commit 671203ada7c5d48a4eabad156d68d7cb1bb37b54)