If I recall, the reason I didn't initially implement this, was it required me to interface with my VFD on my lathe
I don't see why. There is no reason to stop the spindle or even slow it down. The spindle can keep going at a constant rate throughout the operation. Indeed, to my eye it is preferable. The only advantage, if it is one, to stopping the spindle along with the lead screw is the thread will continue all the way to the shoulder, rather than stopping 1/2 thread width away. I can't think of any realistic situation where that would make a difference. Even some sort of measuring device - like a micrometer - should be able to deal with the thread stopping 1/2 thread width short of the stop. In many cases, it may be preferable as a chip catcher, allowing small bits of dirt, grit, or swarf to automatically clear from the threads.
, and I didn't want to deal with it for multiple reasons. Some of those reasons in retrospect weren't valid.
We live and learn.
I still want to do this thread to a stop, but I need to carve out time to pull this off. I know the spindle angle, at least with reference to the "power on" angle.
Well, the important number is the position of the spindle when the last pulse is sent to the stepper / servo motor, and capturing that is trivial. The "power on" angle, by which I take it you mean when the lead screw is started is of course directly related. but the last pulse value is already right there in the spindle position register. Unless you want things to get much more complicated, the half nut must remain engaged, although if the thread is hybrid (metric thread with imperial lead screw or vice-versa}, then this is true anyway. As long as this is the case, the controller knows the position of the carriage and can easily calculate the required angle for the spindle at the new carriage position. One must in any case withdraw the tool - probably using the cross feed - before using the controller to drive the lead screw back to the starting position. Doing this programmatically is pretty slick, but doing it manually by pressing and holding a button on the controller is perfectly acceptable. At that point, the cross slide gets moved back in to the zero position, the compound is advanced by a few thousandths, and a button gets pressed on the controller. The controller waits for the spindle to come around to the calculated position, and then starts sending pulses to the lead screw motor again. The spindle can keep turning the entire time. 'No reason not to.
I know the carriage Z, and I know X via the integrated DRO's. I don't know the compound position, nor it's angle, but I suppose one could work around that. I can infer the stepper angle, from its initial angle, by counting pulses both positive and negative assuming the stepper hasn't error-ed out.
Well, in threading, one usually sets the cross slide to zero, withdraws it, and then returns to zero on every pass, and handles the advancement of the tool at the correct angle to be done by the compound. It's not mandatory, but otherwise the calculations get really, really tricky. Not only that, but while the process gets somewhat more automatic with the ELS, it also gets far, far more complex. It's much easier just to ignore the X value and assume it will be managed by the operator. An ELS is not really a CNC, and IMO trying to mange the X coordinate with the ELS is pushing the problems too much into the realm of CNC. Again, if you want to do this, I certainly have no cause to try to stop you, but IMO the marginal gain is not worth the time and effort, or especially the development headaches.
In the interim, for those sphincter threading jobs, I am using a left hand tool, reversing the spindle, and threading away from the chuck.
There is nothing wrong with doing it that way, although it gets trickier with an internal thread to a shoulder. Even with an ELS stop, there is nothing wrong with inverse threading. With the ELS, however, there is no reason to reverse the spindle. With a geared threading system, unless one can disengage the half nut, there is no choice, but the ELS is not hard-linked to the spindle rotation. The controller can very happily drive the carriage any way it wants, reversing the carriage direction at will. I definitely suggest letting the electronics do the work, and leave the spindle drive motor alone. KISS, I say.
Although my chuck is threaded, my lathe has features on the spindle to clamp the back plate to the spindle. Despite my "reverse" threading, I have never had my chuck come loose. Yours may be different.
Well, mine is not, but given the fact for you, it is just one more reason not to reverse the motor, or even stop it. Stopping the motorwhen reversing at high speed can shift the chuck position. Some motors also have diffferent speed and torque profiles when running in reverse.
Of course, turning to a shoulder is even easier. It works just the same way, except it doesn't matter at all what the spindle position is.