How do I achieve smoother curves?

I’m milling an aluminium circle, and used Easel to create the g-code. When I look closely at the finished article, each x(1)y(1) to x(2)y(2) straight line is visible. They are very small angular changes approximating a circle to be sure, but nevertheless still visible.

How can I introduce additional coordinates to smooth out the curve?

Many thanks in advance

Just to give an idea of the existing granularity I want to improve:

G1 X19.740 Y-1.069 F100.0
G1 X20.267 Y-0.281 F100.0
G1 X20.631 Y0.597 F100.0
G1 X20.814 Y1.525 F100.0
G1 X20.814 Y2.476 F100.0
G1 X20.631 Y3.403 F100.0
G1 X20.267 Y4.280 F100.0
G1 X19.740 Y5.069 F100.0
G1 X19.067 Y5.742 F100.0
G1 X18.280 Y6.267 F100.0
G1 X17.404 Y6.630 F100.0
G1 X16.473 Y6.815 F100.0
G1 X15.527 Y6.815 F100.0
G1 X14.595 Y6.630 F100.0
G1 X13.719 Y6.266 F100.0
G1 X12.932 Y5.742 F100.0
G1 X12.262 Y5.071 F100.0
G1 X11.733 Y4.280 F100.0
G1 X11.371 Y3.404 F100.0
G1 X11.185 Y2.473 F100.0
G1 X11.185 Y1.526 F100.0
G1 X11.371 Y0.596 F100.0
G1 X11.733 Y-0.281 F100.0
G1 X12.259 Y-1.067 F100.0
G1 X12.748 Y-1.556 F100.0

Unfortunately Easel doesn’t generate true Arcs, instead it uses short lengths of straight lines as the gcode AND there is some rounding that occurs as well … here is some Info of how a proper arc would created with gcode using I and J gcode:

@PhilipKisloff Can you share the Easel project?

Can you share the project so that we can see what you are working with? Are these coordinates in inches or millimeters? I generated a circle in Easel and the resulting chords produced by EASEL to approximate the circle seems much smaller than the GCode unless yours is in mm. In mm, they seem to be similar.

Also, you will never get an actual true arc/circle out of GRBL firmware. GRBL approximates circles, arcs, and helices using chords up to a maximum of $12 – Arc tolerance (mm).

Here is a representation…

Although if you were to send an actual arc command to GRBL, the resulting arc would likely be smoother. It looks like Easel is creating chords that are about 0.9mm in length where GRBL would produce 0.2mm chords if provided arc commands (if I am interpreting everything correctly).


Brandon Parker

1 Like

Just kind of guessing here on a few things…

It looks like you set up a a circle using “cut inside shape path” centered at (16,2) with a radius of 5 using a 1/8th inch bit. Easel in turn approximated that circle by creating a polygon with 64 sides. However this is not smooth enough for you because you see the faceting in your aluminum workpiece.

Approximating a circle with polygons is standard in many CNC design packages because many CNCs cannot handle arc commands. Some design software like Vectric allow you to control the faceting but I could not find anything in Easel to let you increase the number of facets. There may be more control in Easel Pro.

If you have access to other design software like Vectric or Fusion360, you can try making more finely faceted circles and then upload the G-code.

If you want to stick with Easel you may try this hack… The polygons Easel creates are inscribed polygons meaning that they fit inside your desired circle. Easel also has a rotate feature meant to allow rotating ellipses to any desired angle. If you rotate a circle, you would think that nothing would happen, but actually what happens is the polygon faces that make up your circle get rotated. To do the hack, create identical circles one right over the other. Rotate the second circle using the Rotation Angle box. You will want to rotate it by about 1 or 2 degrees. This will take more time because it will essentially cut out the circle twice, but you will end up with more facets and it may be good enough for your needs.

Give this a go on some scrap aluminum and let us know if this helps you out. In the end, if you’re doing a lot of this you may want to go the route of Vectric or Fusion360.

I think Easel does better than 30-something chords on a ten inch circle.
I’ll wait to see the file, but I’m guessing this is more than a “Easel doesn’t do arcs” issue.

The .002mm would not be the length of the chord, but the maximum length of the perpendicular segment from that chord’s midpoint to the arc. Well beyond the precision of any of these machines .

Indeed, I updated the image to what I actually should have drawn. In my defense, I was watching my 2-year-old while trying to write that post. :slight_smile:


Brandon Parker

I attempted to do this with different cut types, but Easel kept producing the same GCode. Maybe someone else will get different results.


Brandon Parker

A big thank you to all who have replied. Your vocabulary in describing what I’m attempting to do is much better than mine (I’m only just starting out).

@HarryC.Ragland: Yes, the snippet was in mm. I think I will try the rotational trick, there are only five passes to complete the shape and it might achieve the effect I want quickly without too much extra overhead.

@SethCNC: If the first solution is not sufficient, I’ll try calculating from the link you supplied a snippet that I can add. As mentioned, an arc might not possible because of my machine but I’ll see if the chords end up being 0.2 mm, which would be excellent.

Otherwise, it might be looking at software to create smaller facets.

Did you make the cut out are you just looking at the visualization?
In G21, mm mode, your gcode is probably never off by more than 0.02mm from your circle as drawn. That’s less than the precision of a belt driven X-carve.

Hi Neil

This a link to an (terrible!) image of a closeup of the cut achieved


and this is a link to easel project that created it.

It looks like the dropbox image was removed…


Brandon Parker

@PhilipKisloff Where are you importing your drawing from? Your circle has many nodes.
Also, if you can get a clear picture of the cut, it might show that the issue isn’t the gcode. Can you count the segments? You should also run a full depth finish pad to get the best surface finish.

I agree with your analysis.

Using the G-code that he supplied it looks like he is cutting a hole with a 5cm radius and that easel has approximated this with a 64 sided polygon (I suspect they Easel always uses powers of 2 because I played around with a bigger circle which it cut into 128 pieces). Using 5cm and 64 facets, the perpendicular from the chord to the circle is 0.06 mm. That said, the unaided human eye with the help of a Vernier scale can resolve down to 0.02 mm. I’m undecided here without seeing a good image of his cut. A well tuned X-Carve would still have some belt stretch so is he seeing faceting or tool marks? It’s hard to say.

1 Like

Hi Neil @HarryC.Ragland
I’ve amended the g-code directly with G03 commands and it looks good. I couldn’t upload into Easel, instead just checking in Candle. I’ve not cut anything yet but did a dry run on the CNC and it looked smooth.
So “arcs” were the magic sauce I was looking for, it seems.

1 Like

By hand? With the pockets?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.