Problems with small arcs G2/G3
Hello,
I'm using repetier for my laser-cutter and generation the gcode with inkscape. In general, it's working perfectly but I have sometimes problems.
Sometimes, when there are small arcs in the data, the laser-head moves down to Y=0 with laser on, cutting all through, then moves back to the position it should be, and continues with its normal work.
In the photo you can see an example of it. In the "8" are really small arcs, which somehow can't be handled by firmware. he problem occures roughly, when the radius of arcs are smaller than 0.5mm.
Another example, sorry for the blurry photo from a late-night troubleshooting:
In this case it seems not to be tiny arcs but straight lines. In detail it's a tiny arc followed by a straigt line, which is then cut at y=0.
Any ideas, how to solve this?
I'm using repetier for my laser-cutter and generation the gcode with inkscape. In general, it's working perfectly but I have sometimes problems.
Sometimes, when there are small arcs in the data, the laser-head moves down to Y=0 with laser on, cutting all through, then moves back to the position it should be, and continues with its normal work.
In the photo you can see an example of it. In the "8" are really small arcs, which somehow can't be handled by firmware. he problem occures roughly, when the radius of arcs are smaller than 0.5mm.
Another example, sorry for the blurry photo from a late-night troubleshooting:
In this case it seems not to be tiny arcs but straight lines. In detail it's a tiny arc followed by a straigt line, which is then cut at y=0.
Any ideas, how to solve this?
Comments
It failed somewhere between line 17-22. There are those super short lines at the corners, that seem to fail.
It's a part from https://www.festi.info/boxes.py/ClosedBox. If i disable the burn-correction, those short lines disappear and so does the error. But I have no idea, why those short lines could fail.
seems that lines cause Trouble :
G1 X185.9164 Y276.5839F600.000000
you need a space between y coord and F
should look like:
G1 X185.9164 Y276.5839 F600.000000
the code you posted has several lines like that.
another point could be the warmup Setting of laser, whats the Setting for that in configuration.h?
I will test that and give feedback.
The warmup setting is set to zero, so that shouldn cause a problem.
The code I tested:
https://onlinegdb.com/SJaO6opqV
I can't test it with the original arduino compiler at the moment. I will try different gcodes the next time I work with the lasercutter
What I also wonder is where are the G2/G3 arcs causing the problem in the sample? Or does the error not happen at arcs but normal lines?
This code is also strange
That is a zero move, but should get ignored as position does not change. Hope to get some time for testing soon as well.
I generate the gcode with the repetier inkscape plugin, but on small arcs it approximates it with two short lines (second image)
G1 X133.8962 Y282.8003F600.000000
to
G1 X133.8962 Y282.8003 F600.000000
and it works just fine.
Here are both files, if you want to try them. I run them an Mega2560, Repetier 1.x from your firmware generator tool and a raspberry3 with repetier pro.
I'm generating the gcode with repetier inkscape plugin, which generates those lines with missing whitespace just in cases, where it approximates small arcs with lines. Just in those places the feedrate is set in one line with coordinates. In other areas of the generated gcode the feedrate is just set without (like G1/G0 F600). I will have a closer look inside that.
I have exactly the same issue with the repetier inkscape plugin : it generates lines without space before the «F400» parameter.
I observed that it happens always at the begining of a new track, when the first move command is G1.
For example in this case it’s ok :
But hereafter, I have this line without space before the «Fxxx» and it fails (same effect as Domingo) :
Does someone know if this issue has been solved?
Thanks in advance for your help.
Best regards
John
Now it works ;o)
The issue happens only when the previous gcode is a G00 and the current move is a small radius (Domingo is right with his analysis).
Then the code adds a feedrate instruction after the G01, but without space before...
I believe that the best way is to remove completely this feedrate instruction, as it is not usefull since it is treated before in all cases with the addition of a G1 + feed instruction alone when necessary.
It is around lines 2670 in the "generate_gcode" function :
I have a new file for this extension, but don’t know how to post it, if necessary...
Anyway the modification is easy to do.
I am not a python expert, so any comment, change or suggestion will be appreciated.
Hope it helps.
Kind regards
John