Bambu Studio provides a tool for auto-arranging multiple objects on plates. With only one click, many objects can be well arranged.
There is 1 parameter and 3 options as shown below.
Spacing
: the minimum gap between neighboring objects.Auto rotate for arrangement
: whether to allow Studio to try multiple angles for better arrangement. A maximum of 4 angles are tried (0, 45, 90, 135 degrees).Allow multiple materials on same plate
: whether to allow objects of different materials to be put on the same plate. Note that two materials are regarded as different materials
if they are in different AMS slots, even if they are both the same color PLA.Avoid extrusion calibration region
: whether to avoid the extrusion calibration region, which is at the lower part of the heat bed as shown below. If disabled, this region is also utilized for arrangement.The underlying algorithm for auto-arranging is libnest2d, a well-known 2D packing package. The process can be shortened as:
arrange polygon
of all printable objects, which is composed of 1) 2D convex projection polygons, 2) attributes like height, printing temperature, heat bed temperature, etc. A convex projection is the convex hull of the projected polygon onto the heat bed. Non-printable objects are regarded as unpackable and will be put outside of all plates. (in other words, the largest dimensions of the object in any given direction)spacing
. (Add the spacing minimum distance to the overall dimensions of the object)The wipe tower is not movable in auto-arranging to ensure best-wiping effect (can only be manually moved). And to avoid ooze, there are two additional logics:
Allow multiple materials on same plate
is on, and there are objects using different filaments with the same heat bed temperature (e.g. different color PLA's).When the print sequence is set to by-layer, the arrange polygon
are expanded strictly according to spacing
the parameter. Therefore, objects are arranged more tightly near each other.
When the print sequence is set to by-object, the arrange polygon
are expanded strictly according to max(spacing
,extruder_radius). This is to ensure the toolhead won't collide with any already-printed objects (refer to Print-by-object | Bambu Lab Wiki). Therefore, objects are arranged much farther than by-layer printing.
You may notice that the tool head is not symmetric. It's possible to pack objects more tightly if we strictly follow the print order of "bottom to up, then left to right". However, since we allow the free movement of objects and free adjustment of print order, we have to use the maximum radius for collision detection. To keep consistent, the auto-arranging algorithm has to use the same extruder_radius.
There are 2 modes to do auto-arranging:
Arrange
button in the topmost gizmo, then all objects will be processed. New plates may be added when necessary. Alternatively, use the shortcut key A
to arrange all objects and Shift+A
to arrange objects on the selected plate.You may also lock
a plate by clicking the lock icon next to it, then the objects on this plate will not be processed by auto arranging.