Commit Graph

38 Commits

Author SHA1 Message Date
Arthur 8d74732348 FIX: auto arrange estimates wrong wipe tower
Jira: STUDIO-4678
Change-Id: Iff2273b464db939a2b5e19f8791bd2a4d67ce8c1
(cherry picked from commit fe4b1f79faeade42300622367fb23d7bd1079785)
2023-11-09 10:09:10 +08:00
Arthur 3d5aa9479c ENH: auto-arranging allows more filaments together
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)
2023-11-01 09:33:21 +08:00
Arthur 590444d92f FIX: cli arrange failed in some cases
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
2023-11-01 09:33:21 +08:00
Arthur 0533537079 ENH: do not include brim_max in bed shrink
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
2023-11-01 09:33:21 +08:00
Arthur 76d073a9ea ENH: improve auto arranging's wipe tower logic
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)
2023-11-01 09:33:21 +08:00
chunmao.guo 142499871e NEW: add best_object_pos for auto-arranging
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
2023-11-01 09:11:19 +08:00
manch1n 76dda23702 FIX: add wipe tower for arrangement when timelapse_type is smooth
JIRA: STUDIO-4179

Change-Id: I45056a1b3d7316816b4919cd8185f914d6ad16f4
(cherry picked from commit bad658a228b3697ff1cbdbc45e038641cc5e3e24)
2023-11-01 09:11:19 +08:00
manch1n 2a79af5729 NEW: add align_to_y_axis option for auto-arrange
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)
2023-11-01 09:11:19 +08:00
lane.wei 9755a65289 FIX: CLI: fix the brim related issues
1. move the global functions to Model
2. set brim automation paremeters before process
JIRA: STUDIO-4208

Change-Id: I3f75175ec74d214ca2a6d5f3ade56d08e0ecd4f3
2023-11-01 09:11:19 +08:00
Arthur e88550b206 FIX: unify cli and GUI auto-arrange
Make sure cli uses same params as GUI's auto-arrange.
Previously cli uses wrong skirt_distance.

Jira: BLPIOT-255
Change-Id: Iaccfb76acf7413ec614fff006feb770dcd6783cf
2023-11-01 09:11:19 +08:00
Kunlong Ma 83e76b6b58 FIX:Fix display issues
Change-Id: I40ec4ac6feb4bfb00d54047466f0a3df568ed88b
2023-07-31 14:29:15 +08:00
Arthur 4e5f4ee366 FIX: FillBed crashes when accessing unset print config option
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)
2023-07-07 17:29:08 +08:00
manch1n d303e41acc FIX: correct the obj distance of by-object partplate arrangement
STUDIO-3103

Change-Id: I44dd3e8677713bf5427f266ff3c88870fbb4b2f9
(cherry picked from commit aebcba75ba760d31245f9cf336cba72da3521b1a)
2023-07-07 17:29:08 +08:00
manch1n 8714b3e5e5 ENH: arrange partplate objects intersect with plate are also arranged
Jira: STUDIO-2961

Change-Id: I744e99f8bdd95289efa37d1e022b109518befa51
(cherry picked from commit 15bc33d58de118deea93c568ef4e5ffb0370be75)
2023-07-07 17:25:51 +08:00
manch1n 33c69cdb4f FIX: make fill in bed arrange parameters same as normal arrange
Change-Id: Iec9d4e9c145ea75fc06d096e9c6905b3e412940c
2023-07-07 17:25:51 +08:00
manch1n f19c83ce38 ENH: add fill in bed arrangement
Also add an option to add_object_to_list to speedup.

Change-Id: I9860a950fb98b144d831ded11d5911d3aba77ba5
(cherry picked from commit aa9dd9a02ef4ac4cd6987b02b0c9be6d9ce9097f)
2023-07-07 17:25:51 +08:00
Arthur 1a7b12fa38 FIX: auto-arranging result may fail clearance check
We add 0.001mm tolerance.

Change-Id: I630cc680db0a3a65a6a44e177de686fbac1e1f15
(cherry picked from commit 170f9c2a89d03060f9a9aa43952c0759ffbe7c1f)
2023-04-17 15:39:02 +08:00
manch1n f49c151611 FIX: avoid arrange to nonprefered region
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)
2023-04-17 15:39:02 +08:00
manch1n 29459fe4cb FIX: avoid wipe tower conflict with objects
Change-Id: I09f6937a4bb698e4981c094c5694b3ce50efd2b4
(cherry picked from commit 2fc3f05732b8e5c7132b6c8a5f4403d30c516bff)
2023-04-17 15:39:02 +08:00
manch1n dd473bdc3f FIX: avoid wipe tower conflict with objects
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)
2023-04-17 15:39:02 +08:00
miaoxin 3448b7a053 FIX: avoid arrange to outer when quick click autoarrangement in plate.
Change-Id: Ic8fa2f605094c7a3b7fa5a6fe36c5159678c50fd

STUDIO-2202
(cherry picked from commit 641c18c25f5f297234059d463ac12220c4b6fa9f)

Change-Id: Ic452f2fa4357fcacf71f6a70df2c514d2628b217
2023-04-17 15:39:02 +08:00
tao.jin 688084c475 NEW: add print sequence setting to plate
Change-Id: Ic4acb68743442a49dee04702e7a8073b6641bc39
2023-02-22 20:09:17 +08:00
Arthur 7596b3fed9 ENH: improve auto arranging and by-object printing
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)
2022-12-26 05:31:54 -05:00
miaoxin 9857f7384b ENH: auto-arrange uses inner NFP to simplify fixed_overfit
1. Add inner nfp algo.The final nfp result is inner nfp subtract outer nfp.
2. Leave 5(scaled) room in inflation to allow numeric float eps.

Change-Id: I6be0b205c9811af24a238352b256bf1399ee3716
(cherry picked from commit dbab96efc7bfa16afd9db9607b862886606b0aa0)
2022-12-15 04:38:15 -05:00
miaoxin ad22dec6d9 ENH: large object with size close to bed could arrange into bed
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)
2022-12-15 04:38:15 -05:00
Arthur 4eba8a2a2d FIX: auto-arrange may crash due to clipper
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)
2022-12-15 04:38:15 -05:00
Arthur f6fed97b9d FIX: auto-arrange unable to arrage a large number of small items
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)
2022-12-15 04:38:15 -05:00
wintergua 6dfd598b7f FIX: Auto brim will not be considered during model arrange
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)
2022-12-15 04:38:15 -05:00
Arthur 869b93e270 ENH: improve auto-arrange compactness around wipe tower
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)
2022-12-15 04:38:15 -05:00
Arthur 9f96c8adec FIX: auto-arrange ignores wipe tower due to supports
Wipe tower is needed if support base and interface use different materials.
Jira: STUDIO-1336

Change-Id: I006ece952aac1a0f0a57721c2cd1b52b2ceee28a
(cherry picked from commit 1a387e4b1607dee36f5abe499892f027e244fbeb)
2022-12-15 04:38:15 -05:00
Arthur 5fa771c6cb ENH: improve auto-arrange in several ways
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)
2022-12-15 04:33:48 -05:00
Arthur 8dd401d35f FIX: auto-arrange reads wrongs first_bed_temp
Also change words for extruder clearance parameters.

Change-Id: I736fd9049d184c140b33078d78f764b4fe172765
(cherry picked from commit e70c0c0ea133cffa5788efbfc9633332b196e8df)
2022-11-01 20:52:23 +08:00
Arthur Tang 5544e9602c FIX: rewrite per-object printing order logic
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
2022-11-01 20:52:23 +08:00
Arthur 74a76e026a ENH: improve extrusion calibration region in auto-arrange
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)
2022-10-20 19:34:37 +08:00
lane.wei 516a960f71 refine the plate's sliced_result logic
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
2022-09-29 11:16:43 +08:00
Arthur 07ae246e5f ENH: disable arranging selected items
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)
2022-08-05 16:11:42 +08:00
Arthur ace3c2a231 FIX: auto arranging has stauts report
Jira: STUDIO-305

Change-Id: Ib13ccf4037cd1144177935c1184eaf203aa0eb7f
2022-07-25 22:43:21 +08:00
lane.wei 1555904bef Add the full source of BambuStudio
using version 1.0.10
2022-07-15 23:42:08 +08:00