Spoilboard Surfacing - 2D Adaptive Clearing - Tool Bottoming Out

More
2 years 11 months ago #286186 by Lethal69GTO

After a quick glance I don't see anything horribly wrong with your program.

If you artificially set your Z0 about 25mm above the stock and comment out the M3 then run it, does the DRO display the programmed height at the 2nd pass? i.e. Z-0.064mm?

If it does display the correct Z height, if you've got the means maybe you can stop it and measure if the Z is actually where its supposed to be.

That's a really small distance (about 0.002" I think)... maybe a couple of lost steps or frame flex and the cutter is only making dust?

Have you tried doubling the depth of cut per pass?

PS - This might also be a good time, perhaps once you get through this, to look in to incremental programming and subroutines.  Off the top of my head I think this program could be done with about 20 lines of code.  You could set up some variables in the program (cutter dia, rpm, travel limits, cut depth, stepover) and have a nice template for spoilboard surfacing that's easy to use for different tools.

 
I do exactly as posed in your question, Z is arbitrarily set to around 12mm.  Yes, DRO displays the proper Z with each pass iteration.

Yes, I have the means to stop the executing program at will.  I'll have to dig out my feeler gauges and measure.  Didn't think about that.  Visually the flutes are so so so close on each pass, but not touching as expected thereby no dust is being generated.

Not sure frame flex is a factor for how short the X axis is and is material being 0.125-2x3" steel tube, but plausible and a consideration.  Dust is definitely being made, but only on the first pass at height zero.  Afterwards, nada.

Agreed, a really small distance for sure, practically nothing in reality.  Think I will make increments of 0.127mm (0.01in).  The initial adaptive clearing program gave me a scare with the spindle coming to a stop as it was eating a huge amount of material on the initial spiral entry into the material.  Since then I have made several complete runs with the home-brew program and have about half the spoilboard surfaced, each time setting zero on the high side, each time a smidge being removed.

Yes, I started with implementation of subroutines, one as an outer control loop for the layer iteration and a second inner loop for each pass along the Y.  Something to revisit as my initial attempt using them was throwing errors when loaded into Axis.  The laborious way was the most direct and dirty way to figure out and get the processing and program working properly.

Appreciate the assistance and will take your observations and considerations into account for next edit.

- Darryl

Please Log in or Create an account to join the conversation.

More
2 years 11 months ago #286188 by Lethal69GTO

I just noticed that the code does not use #<z_bot> or #<zz_top> So setting those will have no effect.
 

Understood.  I completely understand and agree that the program is overly cumbersome to read and sucks to modify for sure, I don't like it at all.  Thank you for the code sample and recommendation.  My initial program was very similar using variable declaration as you have, it was the calling the subroutines that was not working out, my syntax was nowhere correct.  I'll study the subroutines and air-cut test.  Again, thank you.

True, every section has a Z0 in it, but after that Z0 there is Z-0.064 desired surfacing depth of cut, then the next pass Z0 followed by Z-0.127, etc.  I was copying stuff from a F360 program that failed to run due to X or Y exceeding machine limits.  From what I could ascertain the retraction to a Z height is made then the  move to the next X0, Y<point>, followed by Z down to 1.0mm immediately followed by the reduction to desired depth of cut.  Something like the following from a F360 file, N90 and N120 would be my Z0 before the start of the plunge cut at Z-0.064, Z-0.127, etc.  Your assistance is much appreciated.

N60 G1 Z5. F2540.
N65 Z-0.01 F333.33
N70 X0. F2540.
N75 X889.
N80 Z10.
N85 X-27.94 Y42.751
N90 Z5.
N95 Z-0.01 F333.33
N100 X0. F2540.
N105 X889.
N110 Z10.
N115 X-27.94 Y76.649
N120 Z5.
N125 Z-0.01 F333.33

- Darryl

 

Please Log in or Create an account to join the conversation.

More
2 years 11 months ago #286190 by spumco

The laborious way was the most direct and dirty way to figure out and get the processing and program working properly.
 

You are not alone in the brute-force method during initial proram fiddling.

Your program was uncomfortably familiar.image missing /media/kunena/emoticons/smile.png

Good luck!

Please Log in or Create an account to join the conversation.

More
2 years 11 months ago #286293 by Lethal69GTO
Got it, program is so purty now.  Thanks @andypugh and @spumco.  Appears to be running decently on Axis development environment.  Tomorrow will give it an air test on the actual machine.

%
; 9100
; 24x38 SPOILBOARD SURFACING ROUTINE (25x39 workpiece)
; 2D FACE - 70% STEPOVER
; T2 D=76.2 CR=0. - ZMIN=-1.10 - 4-FLUTE FACE MILL
#<_z_max>    = 2
#<_x_min>    = 0
#<_x_max>    = 980
#<_y_min>    = 0
#<_y_max>    = 600
#<_stepover> = 60
#<_feedrt>   = 2540
#<_plunge>   = 333
 
o<layer> sub
  #<ypos>  = 0  ;Y axis position
  #<z_doc> = #1 ;Z depth of cut
 
  o<yloop> while [#<ypos> LE #<_y_max>]
    (debug, Y=#<ypos>)    
    G1 F#<_feedrt> X#<_x_min> Y#<ypos>
    G1 F#<_feedrt> Z#<z_doc>
    G1 F#<_feedrt> X#<_x_max>
    G1 F#<_feedrt> Z#<_z_max>
    #<ypos> = [#<ypos> + #<_stepover>]
   o<yloop> endwhile
    
   G1 F#<_feedrt> Z#<_z_max>
   G1 F#<_feedrt> X#<_x_min> Y#<_y_min>
   
   o<layer> return
o<layer> endsub
o<surface> sub

  #<z_step>  = -0.127  ;Depth of cut per pass
  #<z_doc>   = 0       ;Current Z depth of cut
  #<z_btm>   = -1.1    ;Total depth of cut
 
  o<z_loop> while [#<z_doc> GE #<z_btm>]
    (debug, Z=#<z_doc>)    
    o<layer> call [#<z_doc>]
    #<z_doc> = [#<z_doc> + #<z_step>]
  o<z_loop> endwhile
    
  G1 F#<_feedrt> Z#<_z_max>
  G1 F#<_feedrt> X#<_x_min> Y#<_y_min>
 
  o<surface> return
o<surface> endsub

G00 G17 G21 G40 G49 G54 G80 G90 G91.1 G94
M09 ; Turn off all coolant, both mist (M7) and flood (M8).
G53 G0 X0 Y0
M3 S5250
G04 P04
o<surface> call
M2 (END OF PROGRAM)
%

Please Log in or Create an account to join the conversation.

More
2 years 11 months ago #286339 by Lethal69GTO
Air test identified need to increase the Y max machine limit by a hair so that the Y600 path would run.
Was just running the program and it was working like a charm, but about half-way though it just quit running.  Strange.  No VFD fault codes, spindle was cool to the touch.  I didn't catch at depth of cut it was running at time of program quitting.  No error indicators in Axis user interface.  I do think I need to reduce the feed rate during the cut.  Seemed it was beginning to chatter if I am assuming correctly that is in the indicator based on the pitch of noise being heard.

Anyone with suggestions for items to check for why the program would just abruptly stop?  Spindle turned off, it was if the 'E'-stop button was pressed, quite odd.

Please Log in or Create an account to join the conversation.

More
2 years 11 months ago #286343 by spumco
No immediate idea why it quit, but a helpful tool to debug is to run LCNC from the terminal.  Leave the terminal open in the background and if/when it stops you can check the terminal output.

The output may be cryptic when/if it vomits, but you can copy/paste the output - at least the last few lines before it stops - and paste it here.

Please Log in or Create an account to join the conversation.

Time to create page: 0.070 seconds
Powered by Kunena Forum