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)
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
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
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)
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. 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. move the global functions to Model
2. set brim automation paremeters before process
JIRA: STUDIO-4208
Change-Id: I3f75175ec74d214ca2a6d5f3ade56d08e0ecd4f3
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)
Also add an option to add_object_to_list to speedup.
Change-Id: I9860a950fb98b144d831ded11d5911d3aba77ba5
(cherry picked from commit aa9dd9a02ef4ac4cd6987b02b0c9be6d9ce9097f)
Previously we assume the NFP of exclude regions are rectangle, which was
not always right. Now we calculate the NFP and find a best new position
to shift.
Change-Id: I02c075603cf71dd3c9146d7ac7a6706c0f850669
(cherry picked from commit 713ebd666c90d5dcfaf89914c37d211e9a470e99)
Use a more accurate way to estimate wipe tower:
1. read wipe configure from front-end (the positions may be different at
different plates).
2. when depth is unavailable, use all materials to estimate depth (the
estimated wipe tower may be larger than the actual generated one).
Change-Id: I42ffd03d9817b57f5023a6820cda0032509c6fe5
(cherry picked from commit 77ba9757023afb9160c996eeea6ead8a27b50ce4)
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)
Change large object's inflation to (bedsize-objectsize)/2 when it could actually be placed into bed but couldn't with default inflation.
JIRA: STUDIO-1536
Change-Id: Ibf8ed066ee20a9a7b1c604371a9e030c94711080
(cherry picked from commit 093bad1a1765f05d909984d24a113e125870d55b)
1. Use nlopt and clipper offset togather seems not stable, very easy to
crash. We do the offset outside nlopt now.
2. Fix a bug with finalAlign where objects may be translated to overlap
with excluded region.
3. change the words of support_expansion
Change-Id: I22e37b20e4ae16f47bde206de90845616e4cefad
(cherry picked from commit 1c26e5d2862fd3f3292971b5c749420bfb2cdf0e)
1. Should start from bottom left if there is excluded regions
2. avoid exclusion regions in fixed_overfit_topright_sliding
Jira: STUDIO-1422
Change-Id: If88ecf86a0485bd478a77df8cfd4942df8ca27ac
(cherry picked from commit a8393de51bd178b731ef4c7201a5fe3247d97a1f)
if the brim of an object exceeds the bed area, it will be clipped before transformed to G-Codes
Change-Id: I68d700a85e1d28a5e337e53d614266f6e5e0a653
(cherry picked from commit d19ffaa7bdf4b0ab750119d9ef6252491d936f3e)
1. improve auto-arrange compactness around wipe tower
2. do not show "Avoid extrusion calibration region" for P1P
3. encourage objects with similar height to be arranged together
Jira: STUDIO-1364
Change-Id: I5efa61a676c453618cdb3915fb98928d07138deb
(cherry picked from commit 571ee0c6d91d8a5f6a60838052f09d49d85f12ed)
Wipe tower is needed if support base and interface use different materials.
Jira: STUDIO-1336
Change-Id: I006ece952aac1a0f0a57721c2cd1b52b2ceee28a
(cherry picked from commit 1a387e4b1607dee36f5abe499892f027e244fbeb)
1. reduce expansion of exclusion regions
2. expand extrusion calib regions to let them touch bed boundary, to
greately simplify auto-arranging with avoidance option on
3. improve dist_for_BOTTOM_LEFT to allow objects be put left to
exclusion regions temporarily
4. improve on_preload for better handling objects around exclusion regions.
5. improve debug tools
6. fix a bug with wipe tower estimation (don't estimate if wipe tower is
explicitly disabled)
7. use larger y-overlap threshold to estimate rod height confliction
better in per-object print ordering (now we use half the clearance
radius)
Change-Id: Iab29d47a072d8515f28a09855432f92fcffa8c5f
(cherry picked from commit 3a4f242a3a6fd2f82dcc8306cde4d1cb107a5099)
Also change words for extruder clearance parameters.
Change-Id: I736fd9049d184c140b33078d78f764b4fe172765
(cherry picked from commit e70c0c0ea133cffa5788efbfc9633332b196e8df)
1. Previous logic can't guarantee left-to-right printing order, so
toolhead may crash on the right side. In the new algorithm printing
order is guaranteed.
2. Clearance radius should be the max of 3 directions (left, bottom,
up), not including right, otherwise collision may happen on bottom or
up directions.
3. Add is_extrusion_cali_object property to handle extrusion brim
overlap better.
Change-Id: I44868b9925d983f5cca0c31d35dfa28d895fadbf
1. do not consider extrusion calibration region if no micro lidar on the
printer
2. do not inflate extrusion calibration region by brim width, just let
them overlap
Change-Id: I62228d85e8a55d40e22a6ae7f5f065f281936429
(cherry picked from commit 4c456e1f3e675a2ea1358d2983f85a95e58eb49c)
1. when the plate is locked, the sliced result is kept after auto-arrange;
2. when only arrange a plate, other plates' results are not affected
Change-Id: I7566e11e9eec0c2b196a2e78d9dc306ea325e9ff
0. disable arranging selected
1. fix bug where brim is not correct.
2. fix bug where big circle objects are not arranged properly
3. disable default enable_rotation
Change-Id: Ifc69f35d900ff63ec1e9ec8bf8638afc6ea7d54b
(cherry picked from commit 2ed1b0dd8573a1e10aaf77f0d9f8896cef304427)