Well... I ran into an interesting issue this weekend.
I was do a bunch of peck drill holes in a fixture plate and rather then link through the clearance level I opted to use the option "safety distance from upper level". there were several holes that were in a slot so time could be saved by not coming out of the slot to get to the next hole.
This caused an interesting effect where each hole had its own drill cycle. On the post it went @drill > @drill_point > @end_drill. sure it's verbose but it should work fine.
It doesn't (at least on my older mill). One of the key parameters that SC uses is the "first_drill". this is there so that under normal drill cycles you can skip the gcode line and just point the mill to the next X-Y position.
Because SC ends the drill cycle after every hole you would think that the first_drill should always be true.
Unfortunately it's not.
The most common @drill_point (even in their posts) goes something like this (going by memory here):
@drill_point
if not first_drill then
{nb " X"xpos, " Y"ypos}
endif
endp
What you get when you end the drill cycle on every hole but do not keep the first_drill parameter true looks like this.....
N01 G87 X123 Y123 Zxxx Zxxxx Fxxx (correct for the first hole because "first_hole" is true)
N02 G80 (cancel cycle)
N03 G87 X123 Y124 Zxxx Zxxxx Fxxx (correct for the next hole because it's doing a separate canned cycle for each hole)
N04 X123 Y123 (---- this is added by @drill_point because first_hole is now set to False. this has the effect of drilling the hole twice)
N05 G80 (end canned cycle)
And so on....
What you get is that your first hole is drilled once and every subsequent hole is drilled twice. Not really crashing or anything but when you are doing a lot of holes it takes twice as long.
Richard