Board Outline / Edge Cuts Frustration


I have a circular board which needs a cutout on its edge to clear the antenna of a radio module. My first thought was to manually draw the outline, tracing over the existing circle and adding the cutout, but the edge cut drawing tool is constrained to 45-degree angles - can this constraint be removed?

In some other PCB CAD systems, the outline is a polygon, and vertices can be added, removed, and dragged around freely just like KiCad does with zones.

Then I said, “OK, I’ll do the SVG-DXF thing”, but after converting an svg from my (reliable and units-respecting) mechanical CAD tool to dxf using an online converter, it imports at a miniscule size, regardless of units and import options. I don’t know if it’s a binary or ascii DXF.

A google search comes up with many, many instances of others struggling with this, and a zillion convoluted workarounds involving scripts, command-line incantations, and/or chains of open-source tools, some of them requiring OS patches to even install. I installed librecad but I don’t see anything when I import the svg.

At this point I’m considering just fabbing the board as a circle and cutting out the notch with a rotary tool.

It’s maddening that something so commonly needed should be so difficult.


In pcbnew with Preferences->General


Awesome, thanks :slight_smile:


If you design your dxf in mm you shouldn’t have problems importing it in pcbnew


I came to the same conclusion a while back - use a mechanical CAD program (LibreCAD seems to be quite capable) to design and save in millimeters. I think you also need to use one of the older DXF formats - is it called the “R12” version?



I second maui here, anything more complicated than simple circles or straight vertical/horizontal lines are better served by creating the outline with a real CAD tool and importing the result into KiCAD.


Unfortunately my mechanical CAD tool doesn’t generate DXF, so I have to export as SVG and convert, and SVG -> DXF conversion is a jungle out there.


LibreCAD is free :wink:

I’m sure if you give it a whirl, post some results (even if they don’t work) a couple of us here will jump in an help where possible.


Sometimes you get what you pay for :wink:


Ok, what’s the diameter and the cutout radius + setback from the outer edge?
Where is the cutout top, side?

You got 5 minutes, then I’m off to bed :wink:
Ok, 10, still gotta crawl ebay/aliexpress for something…


Thanks for the offer, Joan, but it’s not parametrically specified - drawn mostly by eye. Honestly, the “trace over the circle with polygonal line segments” approach will work fine for me now that I know how to remove constraints - nothing new to learn :slight_smile:


No worries. G’d night everybody. :sleeping:


The PCB fab router is probably going to convert any arc to polygon line segments anyway


A very simple tool for converting SVG paths to PCB line segments is the following pair of inkscape export extension scripts

The exporter converts all paths to line segments, during export to a gEDA PCB format footprint, which can then easily be loaded by kicad. The scripts don’t try to do anything clever with polygons.

It simply converts as 1 px => 1 mil (i.e. 0.001 inch)

Some examples and further details:




While it would be fun and cool to be able to do this with a properly-designed tool and interface, a patchwork of python modules, github, scripts, sudo, and “superuser” is exactly the kind of stuff I have no time or patience for. Inkscape itself can’t even be installed without first installing some kind of “Quartz” patch to the OS. Thanks, but no thanks.


But even this “trace a circle with polygon segments” technique would be done more efficiently if you could quickly overlay a temporary construction layer of several line segments, representing radii spaced at regular angular intervals (e.g., every 5 degrees, or 3 degrees, or 15 degrees or whatever seems suitable). Then you can quickly trace from point to point wherever a radius intersects the arc to be approximated, then send the construction layer to the bit-bucket when you are finished with it.

That’s the kind of power you have with a general-purpose mechanical drafting program. I admit that I am far from being able to use features like that - I’m back in the “Getting Started” tutorial, thinking that being able to specify a circle in at least half a dozen different ways is the best invention since sex in the morning. OK, maybe not quite THAT good, but it sure beats the pants off KiCAD’s single, cumbersome, way to describe circles and arcs.

More comments on the “learning new things” problem later.



Beware: the next problem may be that some algorithm is too clever and converts your circular segmented outline into a circle and then converts that circle into a 16 or 32-sided polygon. I don’t know if this defect has ever been fixed, but it was a problem even with the dev branch last December. So check your Gerber files very carefully.


Exactly my sentiments. (Are we the only two who feel that way?)

Unfortunately, that situation seems to be inevitable to some degree. I know some of these programs are truly useful to some people, and may even be useful to me, but every one is a new experience when it comes to the user interface. I might not even mind getting all the scripts, patches, packages, etc IF - after it’s all in place - I can click an icon in KiCAD (perhaps labeled “Extensions” or “Add-Ons” or “Auxiliary Functions”) that asks which program I’d like to run . . . . followed by a request for an input filename (default to the loaded project; with an option to create an unmodified backup copy) . . . . followed by a prompt to specify a few parameters, if required . . . followed by a request for an output filename. That’s right: never leave KiCAD; same GUI for every add-on; never re-load a file.

Right now I don’t see that degree of uniformity in the “look and feel” of the programs within the KiCAD suite. I am repeatedly confused over when to use “Ctrl-C” to copy an item, versus “D” to duplicate it. EESchema does it one way, but PCBNew does it the other way. Or is it “Ctrl-D” versus plain “C”? And why isn’t the behavior the same as (almost) every other Windows application?

And it REALLY gets annoying when I switch between design programs. I don’t know how much time I waste looking for LibreCAD tools in the KiCAD drafting menus. Or trying to use KiCAD shortcuts in LibreCAD. Or wondering why EESchema never seems to feel as smooth and efficient as LTSpice. I don’t care how useful an add-on tool is, if it uses a GUI, please mimic one I already know rather than inventing a “better” one!



Can I ask what CAD program you are using?


I use TinkerCad. I’ve attached the svg file; the circular part should be 70mm in diameter. It actually needs to be mirrored horizontally - the cutout should be at 2:00 instead of 10:00 - but since I couldn’t get the dxf import to work I didn’t go back to fix that.

edge (1.5 KB)