On Friday 11 April 2014 12:37:38 Jon Elson did opine: > On 04/11/2014 12:41 AM, Gene Heskett wrote: > > The main reason I was concentrating on the limits, using > > the same code, was that I had written a peck cycle wrapped > > around a G33.1, which advanced half a turn per run in. I > > had moved the code back away from the workpiece, basically > > cutting air, and had noted that on some occasions, the > > spindle became unlocked from Z with Z stopping while the > > spindle ran on for 3 or 4 turns, > > > > And I haven't checked (I have to think about this stuff & > > then go back & check) as to whether the soft limits move > > with the touchoff or not. > > The soft limits are in machine coordinates. They > should be established when you home the machine, > and should not be altered by touchoff, G92 or anthing > else that affects WORK offsets only. > > Now, unless somebody worked on it with this in mind, I > could easily see how you could have a threading cycle that > would exceed a machine limit (I guess that would be +Z) > that might not be detected by the trajectory planner. > The T.P. can't know how long the spindle will coast when > powered off, so it could end up coasting backwards beyond > the machine limit, if the start of the thread was just barely > below the +Z limit. > > Jon
In actual practice, at least here Jon, hitting the +Z limit is astronomically unlikely, assume +Z is to the right when viewing the lathe from the normal, spindle on the left, perspective. But my homing procedure, sets Z0.0 at the face of the chuck +.005". So while a tap is never homed against, its still possible for the forward, into the hole stroke of a g33.1, to exceed that MIN_LIMIT if the work is chucked too deeply. IMO to prevent work or tool damage, the reverse should be issued at the limit point, and coupling should be maintained during the turnaround until the tool is backed out at lest to the start point, then do the e- stop. That is not how it works today because the backout continues until the spindle has stopped, at which point Z runs very rapidly left to the synch point. Or is that an artifact of my wrapper? The code in rigid- tap.ngc: ( This is a routine to successively deepen a tapped hole in something in the chuck ) ( We have the G38.1 canned cycle, which does one pass only but seems to track well ) ( So here, we do repeat loops of the G33.1 by advancing the z value by some fraction ) ( of a turn until the desired depth has been achieved, or we've broken the tap ) ( first, establish the starting point ) ( first set spindle slow ) ( the G33.1 code needs help. Its the only spindle synchronized move that tracks ) ( the axis after issuing the reversal command, BUT it spends so much time in the ) ( overshoot past the stop points region that the whole thing wastes a lot of time, ) ( perhaps 75% of the time if the spindle braking is slow or non-existent ) ( Top that with the fact that it may be tapping a blind hole, and the tap may, ) ( in the overshoot, hit the bottom of the hole and break it. This is not ) ( excusable behavior. ) ( In the meantime, a SWAG as to the overshoot needs to be made, and the ) ( end points are then adjusted so as to "pre-issue" the reversal commands ) ( so that the actual end points achieved are much closer to the targeted values ) ( set in #<_hole_start> and #<_tapped_depth> variables. ) s250 m3 g4p1 (give it time to speed) #<_hole_start> = 0.3000 ( just out of the hole ) ( Next, set the stop point, but be sure the hole is actually drilled that deep! ) #<_tapped_depth> = -0.3000 g0z#<_hole_start> ( Next, set tpi, calculate eventually ) #<_thread_tpi> = 32 #<_per_rev> = [1 / #<_thread_tpi>] (debug,per_rev=#<_per_rev>) ( Next, set increment, try at 1/2 turn ) #<_per_pass> = [#<_per_rev> /2.000] (debug, per_pass=#<_per_pass>) ( Now, plug in our SWAG of the overshoot, 2.5 turns at 300 rpm as a guess ) #<_this_depth> = [#<_hole_start> - [3.00 * #<_per_pass>]] (debug,this_depth=#<_this_depth>) G0 z#<_hole_start> ( Now we have enough info to set up a loop to peck tap a hole ) o100 while [ #<_this_depth> gt #<_tapped_depth>] g33.1 Z#<_this_depth> k#<_per_rev> #<_this_depth> = [ #<_this_depth> - #<_per_rev> ] ( do this pass ) (debug, target depth=#<_tapped_depth>) (debug, g33.1 z#<_this_depth> k#<_per_rev>) (g4p1) o100 endwhile (debug, done) m5 m2 So it doesn't seem to be in my code. FWIW, this code will not run past the first stroke in the present 2.6.0-pre sim lathe, limits out & e-stops at about -.001 Z. But its the code I used to tap a hole for 8/32 accessories in the end of a brass ramrod for a 50 cal BP rifle last spring. Cheers, Gene -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) Genes Web page <http://geneslinuxbox.net:6309/gene> US V Castleman, SCOTUS, Mar 2014 is grounds for Impeaching SCOTUS ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers