Idex + axis_minimum/maximum issue

After idex_modes: COPY and MIRROR mode implementation by dmbutyugin · Pull Request #6297 · Klipper3d/klipper · GitHub the kinematics status is no longer in sync with the actual limits.

The axis_minimum and axis_maximum is the full axis range, not the limited range set by IDEX mode.
And Klippy will error out if you try to move to the unavailable area.

The minimum/maximum has next to no users so no obvious harm.

Still I’m looking for an API to get the current movement range, with 3 ideas:

  • expose realtime limits into toolhead status
  • change the kinematics min/max to be realtime limits.
  • kinematics.find_limit(position, direction) - that can support non-rectangular kinematic, but not really accesible via macros.

It would be helpful if you described the usecase you have in mind. Basically, even before it was never safe to move a carriage to the full range of motion (e.g. if the other carriage was parked somewhere unexpected). So, no change here. Then, for the actual printing, you must configure the per-axis dimensions in slicer anyways, so in the gcode snippets there you could refer to that instead. I could think of things like purge line and such, but those you could work-around by printing on the appropriate side of the bed for each tool. As for your suggestions, right now the actual limits are not calculated, so it would be necessary to essentially replicate those calculations.