- Support multiple wipe towers
- Arrange to grid directly within the arrange algorithm
- Suporrt arranging just the current bed
- Support fill bed with instances
- Add arrange selected on current bed
- Add arrange current bed keyboard shortcuts
- Fix cut not arranging properly (set instance bed after cut to the active bed, use arrange current bed selection only after cut)
- Fix shift-D on arrange
- Add window with options to the bed arrange button
Zoom to bed command set to zoom to active bed
Added camera rotation pivot which is updated whenever the active bed changes
SPE-2506 - Follow up of a2873759aba1eb13a31591d9e852be0f1e21786b - Fixed camera position after zoom to bed
- virtual bed shows even when dragging which was already outside
- when loading old-arranged project with more than max number of beds, a virtual bed would still be offered
- loading a project file with multiple beds only showed 2 beds initially
- nonprintable objects are not considered into the bed creation logic
- drag and dropping an object does not change active bed
- shells in preview are now shown correctly when switching between beds
- spacing in x takes into account model size (except during the initial rearrange)
- update volumes outside state after project loading
- highlight of selected bed for default beds
This is where it really gets nasty:
- Switch background_process.m_temp_output_path is now updated when beds are switched, so each Print writes to a different file.
- When switching beds in Preview, there is a cache in GCodeViewer which would mistakenly not load the other preview (happens in case when switching to a bed which is not sliced and back). Bypass this cache when beds are being switched.
- Added a CallAfter logic into GLCanvas3D::select_bed (the central function where beds are switched). It now does the following:
1. Stops the background process
2. Schedules a callafter which then
3. wxYields the event queue (so all events generated as a result of (1) are consumed before active bed is switched.
4. switches active bed
5. fires couple of update functions and events, schedules background process
- When BSProcess is switched to the new bed, it now calls on_slicing_update (in sync). This is to regenerate all slicing error/warning notifications. The on_slicing_update function was updated to be able to process all print(object)steps and objects.
- Sliced info in sidebar did not properly show when switching beds in 3D scene. Added explicit refresh into update_background_process.
- reload preview when beds are switched
- only show one bed in preview
- move the preview so it ends up in the same place as in 3D scene
- move the camera when switching beds in Preview
- Vectorizing Print, SLAPrint and GCodeProcessorResult
- Connect multiple beds to background slicing process
- TODO: A lot of code (notifications, etc.) commented-out.
- create new bed when a volume is dragged into it
- limit maximum number of beds
- keep track of which ModelInstances are on which bed
- show list of beds and allow selecting an active one
- move objects from active bed to the first bed when passing Model to Print::apply (and back)
However, it is still not impossible to select an SLA printer when the object has a modifier.
For this case info dialog will be shown.
+ Model: Deleted model_has_multi_part_objects()
SPE-2547