Belt: document the frame of the exclude-object outlines

EXCLUDE_OBJECT_DEFINE keeps plate coordinates on a belt printer: the frame
after the slicing rotation is undone and before the G-code axis remap and
machine-frame shear, which is where the object stands on the belt.

Raised in Hanif Koh's review of #14394.
This commit is contained in:
harrierpigeon
2026-10-02 01:11:59 -05:00
parent 360a68e078
commit 412564cae3
+4
View File
@@ -10289,6 +10289,10 @@ std::string GCode::set_object_info(Print *print) {
for (PrintInstance& inst : object->instances()) {
inst.unique_id = unique_id++;
inst.id = inst_id++;
// Outlines are in plate coordinates. On a belt printer that is the frame after
// the slicing rotation has been undone and before the G-code axis remap and
// machine-frame shear: where the object stands on the belt, which is what an
// object picker shows. Klipper cancels by name, so nothing depends on more.
auto bbox = inst.get_bounding_box();
auto center = print->translate_to_print_space(Vec2d(bbox.center().x(), bbox.center().y()));
auto inst_name = get_instance_name(object, inst);