Arc tool not working as expected in KiCad 6

Hi, I’m a newbie to KiCad and am using KiCad 6.0.1

I have an issue using the PCB editor and the arc tool in the edge cuts layer.

When I attempt to draw an arc I click on the start position and as I move the tool it creates a circle, rather than an arc. Clicking on the final position enables me to create an arc, but I can only create an arc in the clockwise direction. Moving in an anti-clockwise direction deletes the arc segment that I am trying to draw.

Looking in the status bar at the bottom as I drag to draw out the arc to set the radius it shows 360 degrees as the arc value and not 0 degrees as one might expect (see screenshot below). Is there a setting to change this behavior? I have looked exhaustively and cannot find one!

Any help is appreciated.


Adjust your expectations?

That KiCad first draws a circle instead of an arc is a useful feature because it can help to align the arc with other stuff and it gives you a visual estimate of it’s radius.

That arcs are only drawn clockwise is indeed a limitation. KiCad’s mechanical CAD capabilities have always been quite limited, but don’t let that influence your opinion of KiCad too much. Almost all development effort in KiCad is going to the electronic related parts of the program, and those are quite good.

When PCB outlines get more complicated, a much better approach is to draw the PCB outline in a mechanical CAD program, export as .DXF (maybe .SVG also works) and then import it in KiCad.

KiCad’s arc tool is adequate to draw PCB outlines with rounded corners, but it is (still) a bit cumbersome to do so, especially if the corners are not 90 degrees, it’s difficult to draw an arc tangential to the lines.
Arc’s are a bit of a weird thing, in that both endpoints are the same distance from the center, which makes it a bit hard to align all three points on the grid. In a previous version of the arc draw algorithm, the 3rd point drawn only determined the angle, and this was also a bit annoying, because this makes it impossible for lots of combinations to get it on a grid point. In the current implementation, the location of the center is “sacrificed” to keep the endpoints of an arc on the grid.

The current tools you have are:

  • First draw an arc “somewhat close” and then drag the endpoints to their final destinations.
  • Edit the arc (press e while hovering over it) and enter a number for the “Arc angle” (often 90 degrees).
  • The Grid. I always set the grid to a coarse value (often whole millimeters) to aid me in drawing PCB outlines and placement of mounting holes.
  • The magnetic points on the cursor. A PCB outline must be a “closed shape”, where the endpoints of lines and arcs meet perfectly, just as in the real world there can be no gaps of overlaps in the PCB outline. Whenever you’re moving a line or circle by dragging an endpoint, KiCad shows a circle around the cursor when it has found a magnetic snap point, and thus gives feedback that the line of circle is aligned properly with another element.
  • If those tools are not good enough, then Import complex PCB outline from a mechanical CAD program.
1 Like

It’s even theoretically impossible to always fit all three points to a same finite grid. Some (graphics) programs have several kinds of arcs for different situations. For edge cuts the tangent option would often indeed be the best one.

As far as I have understood, KiCad 6 offers some support for “polygons” with arcs, and tracks can have arcs. For those applications the two endpoints and the radius are usually important, not the center or arc middle. At the moment KiCad saves three points in the file format: the two endpoints and the arc middle, but not radius, angle or center. It may depend on where the arc is used how those three points are interpreted and handled (which ones are exact and which is rounded), but I don’t really know how it’s implemented. If I draw a rounded track, the endpoints of an arc hit exactly the endpoints of the touching straight segments. I suppose the middle point is rounded then.

This is of course a technical implementation detail which doesn’t help an end user. I agree that KiCad needs some better way(s) to handle arcs with a GUI. I suppose this will be changed later because KiCad has adopted arcs for new purposes as new features in v6. The GUI will come later.

EDIT: to make drawing arcs even more confusing, radius and angle can be easily adjusted while drawing the arc, but not when editing it. In the properties dialog the endpoints and the angle can be edited as numbers, but not the center or radius. It’s possible to move either endpoint freely graphically, but then the radius will change. The radius value isn’t updated in real time when dragging the arc radius. Therefore it’s impossible to edit an arc later so that both its endpoints and the radius are moved exactly to correct values.

Adoption of arcs is indeed a bit slow as already mentioned.

I experimented a bit with arcs in polygons, but when you turn some lines into a polygon, the arc segments are converted to a bunch of straight line segments. It’s also not very relevant for the PCB outline, as KiCad expects lines and arcs there.

KiCad is capable for some time to create fillets on copper tracks from the popup menu:

This function would be quite ideal for PCB outlines. These fillets can be dragged afterwards to change their radius, and KiCad adjusts both the fillet ends and the straight track segments to keep the fillet tangential. The only thing missing apprears to be to select such a fillet and directly specify it’s radius (although KiCad asks you for the inital radius upon creation).

1 Like

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