Open T3P3 opened 1 year ago
also consider the impact of workspace co-ordinates:
We need to also test that workspace co-ordinates are taken into account for the keep out zone. As the zone is a physical area in the machine, a keep out zone should be the same machine co-ordinates, no matter the workspace offset.
Changing keepout zones to use user coordinates would cause them to move when changing to a workplace with a different origin, which would in most cases be undesirable.
Although it might be useful to take account f the Z offset of a tool when applying a keepout zone, it is less obvious whether applying X and Y tool offsets would be a good idea. For example, if a tool head carries two nozzles spaced some X and/or Y distance apart, and the keepout zone is to avoid the tool head crashing into something, then we definitely want to use machine coordinates for X and Y not user coordinates.
How about local (user coordinate / tool assigned) keepout zones and global (machine coordinate) keepout zones?
The key reason for using user co-ordinates is variable tool length. Especially in CNC with a different cutting tool potentially being a different length.
It may be an over simplification to specify Z as the axis impacted by tool length. It is in a traditional routing application but adding in rotary axes could change this.
A keepout zone should ideally be a fixed area in machine co-ordinates. But the position that the tool tip is at that could violate the zone should take into account the tool offsets.
keep out zones will also need to be considered when cutter radius compensation is implemented.
Keeping this in machine co-ordinates for now. Will re-evaluate in a future release for optional tool offsets application.
Another use case would be to avoid crashes with print bed clips or such on a 3D printer - for this case I would very much prefer these valuse to be machine coordinates, not tool/user coordinates. But I also understand the reason for defining a keep-out zone as a tool/user coordinate. Might it be a way forward to let the user choose which case he wants - either by creating a second command "M599.2 - Define tool keepout zone" which then uses tool/user coordinates, or by adding a flag to M599 on how to interpret the coordinate?
In many cases the tool/user coordinates are the most important for keepout areas: 1) CNC machines that change the cutting tool will have different lengths of tool so the Z position in user coordinates needs to stay out the keepout areas. 2) Toolchanging 3d printers, with a no go areas like bed clips will need to coordinates in tool space so the nozzle does not hit them. On the other hand, the Z axis rail and leadscrew area on an e3d toolchanger makes most sense to define in machine coordinates.