1. switching bed ignored locked plates
jira: STUDIO-10800
2. create too many empty plates for large objects
jira: STUDIO-10793
Change-Id: Iaf1fc338aef44fdb00443c1981fdd4ff77cf71fb
1. Use map<int, std::string> extrude_id_filament_types to avoid mismatching of extruder ids and filament types.
jira: STUDIO-10708
2. fix plate level arranging not working
jira: STUDIO-10733, STUDIO-10721
3. fix auto arranging may put objects overlapping with fixed ones when
changing printer profile.
3. fix auto arranging puts large objects overlapping with occlusion area
4. add alt+a to trigger auto arranging for out of plate objects
4. fix several texts not translated.
Change-Id: Ie43624cb20304f27649d3ce24efa01394f30188e
1. fill bed crash (jira: STUDIO-10350)
2. reset arranging settings gives wrong sequential printing order (jira: STUDIO-10346)
3. do not show "arranging done" message when there is no model
Change-Id: Ic1c7eac75e3917b9f1d87ab6acc403f78e0c9f7c
1. Rotation operation should always work on rotation matrix. Euler angles are not reliable.
2. Remove the ambiguous set_rotation on single euler angle.
3. Fix the bug that the rotation of the mirrored object is not correct.
jira: STUDIO-8752
Change-Id: I25d661b732a872b8378af87c0ba52d75afd75c1f
1. fix that the arranging results may collide with wipe tower
2. remove unnecessary empty plates
Note: there may still be empty plates due to large objects
put outside. This is normal.
jira: STUDIO-8090, STUDIO-8091
Change-Id: Id8be1ede8794a8ef69bd882a663652d8efc9eeda
(cherry picked from commit 393bfe0602d6b7c4d352965c9c6011d129e12141)
1. auto arrange after bed size changes
When the bed size changes from big to small, auto arrange items outside
beds, while keeping the inside ones still.
This action can be undoed with ctrl+z.
2. Fix the issue that double clicking the orient button of plate causes
a never disappearing busy cursor.
jira: STUDIO-7978
Change-Id: I5ee1f73b80735777c21438a01cbc4649d8cce3fa
(cherry picked from commit f67fd877ea7b07148dc9539938ba319a4f960d0e)
This helps stabilize "auto rotate" and "align to Y axis" functions.
jira: STUDIO-7775, STUDIO-7036
Change-Id: I3c35fa1d6c5e033915584213cdf79f3aac4dc099
obj->bounding_box().size() is not the real object size if the object has been rotated.
jira: STUDIO-5999
Change-Id: I6553d4c990696efd674e3e57063802127d5d5282
(cherry picked from commit 479ea9fb02f55d24f27c94633f3d852bd5c62c83)
1. FIX low-level NFP bug with auto-arranging due to correctNfpPosition's
bug.
jira: STUDIO-5756, STUDIO-4874
2. FIX large items may not be able to be packed due to a too large inflation
jira: STUDIO-5566, STUDIO-5716
github: #3194
Change-Id: Id63fb3a5f5fe7ce3a5675c86a3d1440f46866ca3
(cherry picked from commit 9a789262cee4e14f10b673a4f00126d27bcf071b)
Jira: request from 1.9
1. add nozzle_height to machine profile
2. auto arranging and sequential_print_clearance_valid don't consider objects conflicting if they are all shorter than nozzle_height and close.
3. do not detect conflict when all models are short.
Change-Id: I8d1eebb15d5bfa8c40d7491e033149e360531b89
(cherry picked from commit 6b4b52653db5f08d724a556c5c766c0bfa00f34d)
"get_arrange_settings() const" gets trapped in infinite recursive calling.
Now we delete this function.
jira: STUDIO-5688
Change-Id: Ia39974734bb37b2a2f06b5bf78185f01be726872
(cherry picked from commit 631365822319139ae84e8cd8cbad5f10d9a10c4a)
global arrange setting is wrong if a plate's setting is changed from object list
jira: STUDIO-5438
Change-Id: Iaa7f35837edbacff9b97ca17a8ab34c8e6bb023d
(cherry picked from commit fa2f56575b2e4305e35dd59ff55e0881720de025)
1. global auto arranging may put items overlap with wipe tower if some plates are locked
jira: STUDIO-5329
2. items outside bed may overlap with plate boundary if it's rotated
jira: STUDIO-5329
3. plate-wise auto arranging uses wrong min_obj_distance if the
plate is by-layer printing but global setting is by-object printing
jira: STUDIO-5330
Change-Id: I5dba2f1317e183c9aeec1cb2bd227fbddf4316e6
(cherry picked from commit db1eac41efff5f1e8d5ac0af74c6fc7ab59fc253)
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)