Software > Grbl Controller

start from anywhere in a gcode file?


does anyone know if it is possible to skip to a point in a gcode file and start burning/cutting from there? winblows did a security update and restart 80% of they way through a job when i wasn't watching. I can find home easily enough, and i want to start from where it stopped, rather than go over burnt ground 🤣

i realise that i can just edit the file, but would rather not, a last resort perhaps?


You just delete everything up to the point you want to start, but keep the header which initializes the machine and enables the laser etc.

such a pity you cant say 'start from line number' in the gui, maybe a develoment opportunity out there? 😆

There are more things involved here than meets the eye. And if even if BCL had this feature, using it would required an advanced knowledge of g-code, including myself: I'm not sure even I could use the feature in all cases.

1. Material placement. How do you know your material is (still) in the exact same location? It might be, but it not, then your dead in the water. First hurdle to get over.

2. Can you read g-code very well? You'd have to be very good at reading g-code. If your g-code job start point is for an Arc or an E-Arc, you'd have to back up and run the previous g-code drawing object since the ending XY position is absolutely critical to get to before starting the Arc or E-Arc. Otherwise you'll get an Arc error. This is for vector objects. I don't know how T2 would handle this.

And this step would ruin your job because you'd be laser burning over the prior object again -- unless -- more code was added to tell BCL to not turn on the laser beam. If your starting drawing object is a Spline, I'd say that, even I, would have about a 0% chance of knowing where to re-start the job. Spline g-code is a mass of spaghetti g-code. And if your job stopped previously in the middle of a Spline, you'd get laser burn over the first part of the Spline. Second hurdle to get over and this one is a big hurdle to resolve.

3. This would be a fairly large custom, one-off job to code. In the year that BCL has been released, no one else has asked for this feature. So, it's not something that happens often. Third hurdle.

The big design change for BCL is that after the g-code is generated, there is no more interaction with it other than sending it to the laser machine. So the effort to now add a GUI to select the starting g-code line is not a small task. And you'd also need to tell BCL what block of g-code to include at the top of the file, so the job is initialized correctly.

In my opinion, as the developer of BCL (I can't speak for T2) this would not be a cost-effective feature to add at all. A very large amount of work with a lot of debugging time involved.

From my perspective, the easiest and faster thing to do, would be to just bite the bullet and lay down a new piece of material and start the job over.

I'm sorry my answer wasn't what you wanted to hear. Maybe for T2 this is an easier feature to add. @Zax can chime in. For BCL it's a hard feature to add because BCL works with vectors.

Even though it is not shown, gcode does have line numbers. You can start a job at a line number, but you have to know if there were any settings that were carried from farther up in the gcode to that point. A caveat to displaying the line numbers is they eat up additional space in memory, on the controller, and the controller does not need them as it just processes the line of code sequentially. So default is line numbers "off".

Ralph laid it out pretty well. You have to be able to read gcode, you have to know how to ask for current condition settings, you have to be able to find the position you need to start and some of that code is almost unreadable under special conditions as he mentioned spines.

I can read gcode pretty well, but when there is a screw up I just start over! You could break the job into sections, but you will need an accurate way to place the work accurately and the machine needs to home accurately for that to work.


[0] Message Index

Go to full version