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)
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. 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)
Fix organic support issues by syncing with Prusa's changes. Thanks to Prusa.
Jira: none
Change-Id: I96fa1a939767bb0b0d2e8a5fd72966bb10a2042e
(cherry picked from commit 89607dc73313e1b5d389674ed2d8f4f358bcb8b9)
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)
For some application like Lego bricks, 100 is far from enough.
Jira: none
Change-Id: I94a6f47e75545bf35f16e493eb4bb05236ea98fe
(cherry picked from commit 2a4270adaaf7d14eb8b3d0397264df28b20a1ea2)
torus.stl is borrowed from Prusa by YuSanka <yusanka@gmail.com>. We
are thankful for that.
Jira: none
Change-Id: I45ee3fa7c1390fb48ecdc6a679ee5525526461d6
(cherry picked from commit 8ef4c9d9d44b1f66cb05259bb2135bd2e703f64a)
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)
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)
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
Add more photo shoot comamnds in the end gcode to prevent sharp ending of timelapse video of A1.
Also fix a bug of using timelapse_type=2 in end gcode.
Jira: None
Change-Id: I2a426be7a2f7d22b10b79c2b7eb1a04538b5340a
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
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)
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)
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. 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
This causes the printer setting page unable to display becase I added a
coPoint type option best_object_pos.
Add reading and writing coPoint type configs solves the problem.
Jira: STUDIO-4303
Change-Id: I34e40e567236d28ab1a7be265128275191fcc935
finalAlign was not correct because the excluded regions are counted twice.
Jira: STUDIO-4259
Change-Id: Ie4ad167af8487ce7250b83d85f144ef01e60e00f
(cherry picked from commit 154de0d94ff34231a60966fb89cc14655cce8008)
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
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)
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
Can't delete nodes with no children, otherwise the parent-child relations may be corrupted.
Jira: STUDIO-3737, MAK-1557
Change-Id: I1de39e182bac4a55a8739c00e59fdf7b9b5e4dfb
Previously holes of enforcer_polygons was taken as contours,
which caused enforcers inside a hole were too large.
Jira: STUDIO-3877
Change-Id: If38c34e2469b822012a2ed0b082783563fe99228
Remember C10 is for traditional timelapse, C11 is smooth timelapse.
The mother profile of all machines should be right.
Change-Id: Ia941f743d2a81ef4b5b4fa08a37ca654eb86d0d7
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)
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)
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
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)
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)
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)
Flow calibration on PEI plate may fail. To reduce users' confusion, let it be off by default.
Change-Id: Ic31f18b5fd378ac8b20e4d1461ed3dbfbae1ae4b
(cherry picked from commit bc8b4cb082f20984207f44e63104be9a603a2332)
Apply boolean operation on parts. No need to export stl to apply.
Change-Id: I14479d0977e5ec6f5f80f55b22ed02974b8271c7
(cherry picked from commit 14fe96b2b7529380832007a3d3eb93eb8b9a5217)
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)
Small overhang diameter threshold is reduced,
and use bounding box size instead of area for final decision.
Github: issue 1681
Change-Id: Iabbb49dfc47345bb609214749104c808608c4d65
This popup dialog was introduced to promote tree slim
style. Now it's time to remove it.
Change-Id: I34c0be56b4dc613e6e991dd87ab22eb4eaa1feb3
(cherry picked from commit 827c692a1877bfec914ef8f5a55c7357ed6e94d2)
1. Previously if there are multiple sharp tails in a layer, some will be
missed. To fix this, we should not skip if the current layer is already
detected as sharp tails.
2. Do not mistakenly detect sharp horns as sharp tails by only detecting
the overhang areas larger than half of the extrusion line width.
Github: #1578
Jira: STUDIO-2659
Change-Id: If7ba5c9ae547d3051551aa6fa34eb6214d01a46d
CGAL to 5.4
TBB to 2021.5
OpenVDB to 8.2
Change-Id: I08992fce104e6f56001643c3c5dbf6c3f59ffc3d
(cherry picked from commit 1571f176fc37dda1c3e889776e13fa49bba4ae42)
Multi-material arranging is more compact by redefining same_color_with_previous_items:
if the colors of previous items are a subset of current object's colors, or vice versa.
Either of the two cases will not increase the total number of colors of the plate.
Jira: STUDIO-2871
Change-Id: I7cbe0835408d306084490b4849d03bb9fb617d2b
(cherry picked from commit d58702e9c0db54bcd123739298ce6dc03f5ca1a5)
This is caused by the inverse-order polgyons after mirroring. Adding
a union_ before offset_ex fixes this bug.
Github: #1621
Jira: 2738
Change-Id: I885a3ca6af4e5fadb2158d913cf67525bfffa91e
(cherry picked from commit 4ea95d89e7ec058ac21218e1839cfe16b486893a)
In normal support, contact_polygons were slightly larger than allowed region, so sampling to the wrong points, which were then removed when "on buildplate only" was turned on.
Jira: STUDIO-2742
Github: issue 1352
Change-Id: I2f131bac48eb30997f37818f312da3386516a5ea
(cherry picked from commit ed25a89c0e8c5358ea803344fbce482be172d2ee)
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)
1. Instead of smoothing top-down, now we smooth tree branches bottom-up, and do not stop at merged nodes.
2. Fix a bug where some nodes don't have child. This is critical for bottom-up smoothing.
Change-Id: Iac0fecd81dac541ca390bcf5cbdfe7fd66cfd3a2
(cherry picked from commit 536a8a4f0ef76fa0358f4b4b181c4c7e7fff8bc7)
We increase the smooth iterations from 1 to 50.
Change-Id: Iba883fd67d7a9a71c92b364dcc9b76e00fc45820
(cherry picked from commit 945fba20a5629148bfd8cee47f492d42c50f9824)
Tree Strong is too similar to Tree Slim and people don't like it.
Jira: STUDIO-2660
Github: #1579
Change-Id: I52d7e8e674f0fc332e4ab2813261ffbc4b4cfb7a
(cherry picked from commit 9eb209b4c1737d2f10b9b8bd78c9f876f3d32bce)
tan(90\degrees) is too large and will make detect_overhangs very slow.
Jira: STUDIO-2620
Change-Id: I55901a6bc1b56216549f66e1a7e77c0da680997b
(cherry picked from commit e58cc8a4665808580e84107f54661447000d64f3)
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)
1. Only draw infill in normal nodes of hybrid support.
Previously when hybrid support was selected, all nodes would have
infill including the circle nodes which don't need infill. Now we draw
infill only when there are normal nodes.
2. Move remove_bridge after small overhang removal because the trimmed
bridge may be detected as small overhangs.
3. Only split circle nodes in draw_circles to prevent floating circles.
4. Fix the issue where tree support infills may not be aligned,
which is caused by the changing spacing of filler.
5. Fix a bug where lightning infill in tree support may crash.
Note: it is still not prepared to set lightning infill as default,
as for some models the generation time of lightning infill is still
too long.
Change-Id: I556e5097041d09afae1e2957d4dc9914d4610149
(cherry picked from commit 4c0849a81b60cde0c3b8ca54f03f63ea7c62dcd9)
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)
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)