On Tue, Oct 02, 2018 at 12:16:54PM +0100, andy pugh wrote: > https://github.com/LinuxCNC/linuxcnc/blob/b948dba1af9e63f26498cf005d6693cec30458a9/src/emc/rs274ngc/interp_convert.cc#L3302 > > There seem to be a lot of things that are not allowed with cutter comp > enabled, and it isn't immediately obvious why. > > The following G-codes are banned > > G61 - Seems reasonable > G54, G55...G59.3 - OK > M62 ... M68 Analog-digital IO -- This seems odd > M48 - M53 - Spindle and feed overrides -- This also seems unreasonable > G98 - G99 -- Cycle retract mode -- Again this seems an odd thing to disallow > G76 lathe threading -- It seems like you might very much want to use > cutter comp here? > M6 tool change -- Why wouldn't cutter-comp just carry through with the > new radius? > G43 - G49 -- Might be reasnable, but doesn't seem necessary.
There are several different magnitudes of difficulty here, let me try to describe them as I see it: For some like analog output and feed override enable which don't cause or affect motions, you could allow it without any trouble, just by doing the necessary enqueue/dequeue. You'd end up with a change like e9186c2 for each one you wanted to allow. But for the ones that generate motion or a series of motions, I think you're talking about a variety of hard problems. Cutter comp is very much written to assume you turn it on, do a carefully chosen entry move which causes special things to happen (you move beside the programmed path), do some cutting motions which get compensated, move away from the work, turn it off, and then some more special things happen on the next move after turning it off (move back onto the programmed path). Things like changing retract mode could be allowed but why? Canned cycles like drill cycles with cutter comp on don't make any sense to me. I guess you could drill beside a programmed path, but usually I think drilling holes conceptually happens at some points, not along/beside a path. When you're beside a path the actual endpoints become conceptually fuzzy. If I'm drilling beside a path with the tool to the right of the path, and I go CCW around a square, where would the holes even end up? It's underspecified because many holes could be drilled against those convex corners. Concave corners I think it's fully specified but it would be a very weird program. If you do things that can cause motion of the machine as side effects, like M6, it's not clear to me what things become the entry and exit moves and what the path you're beside even is. You are generating a whole possible class of surprises, and why? Cutter comp isn't just a thing you leave on, it's a thing you turn on, make some cuts on a certain side of a certain path, and turn off. Is someone having a problem that's led you to wondering about all these? _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
