Export/import "outer edge" into an "edge-library"


I filed a blueprint


its about being able to keep “outer edge(s)” in a dedicated “edge-library” and functions in pcbnew to:
Delete edge in pcbnew
Delete/rename/duplicate etc in edge library

StepUp little detail

If you mean having a lib of edge cuts, this is possible in multiple ways already.

You can make dedicated footprints that hold you edge cut. (Well the footprint editor is not very supportive of it but you can move the edge drawing to the edge cuts layer using a text editor.)

The better solution is to make a template project for your edge cut.

Or are you talking about the frame around the drawing? (Paper boarder)


I talk about the Edge.Cuts

In the pcb file edge-cuts are thrown-around in the file and not collected
into one single place.

Besides I dont want to invent and do work-around, I want native support for


Some times you already have a project and need to change the edge.cuts
You cannot start from a blank project.

1: Delete your current edge.cuts (easy to do today)
2: Import edge.cuts from library (not easy to do today)


I would like to understand the use case. I have baord outlines I use for things like Arduino shields, Hammond boxes, but those also have mounting holes in precise locations. I’m not sure when I would need an outline that is standalone.

However, I would really like to have Edge.Cuts supported properly in footprints, then it could also be used as a way to import/export outlines.


You should make this more clear in your blueprint. Otherwise developers will be equally baffled to your requirements than i have been.


I wonder how much value this would bring to KiCad users. Now it’s possible with “workarounds” and I don’t feel they are especially clumsy. What’s wrong with keeping a library in a file system and handling copying and renaming with a file manager? You can use footprints as Rene_Poschl told, each one is a file. Or you can have DXF files and use File->Import->DXF File. You can even have them in a git repository, a public or private one.

I understand the feeling “I want native support for it”. However, it’s more important to be able to do something with little amount of work rather than have a warm, nice fuzzy feeling of the software supporting my case “natively”. What counts is that it’s always available and always works in the same way, not breaking up with software updates etc. What is especially nice with “native support” is that it’s relatively easy to find and learn, and everyone uses it the same way. But whether something is worth implementing natively depends on developer interest and the user interest, and one person doesn’t count much yet. Sorry about that.


I agree with the desire to have Edge.Cuts supported properly in footprints. A couple use cases for this:

  • Edge connectors like the complicated board routing for a Nintendo Nunchuck connector on either side of the connector fingers. (See the shape on this Adafruit adapter.)

  • Board edge to connector body alignment.



having many similar boards

different designs but same outline, like cards for a rack-based system for example
Outlines can be fairly complicated, especially if theu could carry dwg info like dimensions, keep-out, pointing out where to put connectors etc.

1 sunny day its decided to update the outline, then it nice to use a library.

also a library could be established not only for individual use but also for communities.
as in your case aurdino shields, but there are also more complicated “standards” nice to have in the community.

if the edge-data had been collected in the pcb file in a single ease to find place one could easily to cut and paste directly into the file. But that would not be user-friendly, nor does it include text and drawing info.

maybe nothing got clearer by this, I am in a bit of a hurry, writing this


Out of pure unacademic interest I tried to using footprint for edges. To my suprise the Edge.Cuts layer wasn’t supported at all - you can’t change the layer of a drawing to Edge.Cuts, although all other layers (in the layer manager) can be used! You can edit the file and replace a layer name and Edge.Cuts works then, as Rene_Poschl told. However, it still doesn’t work as I would expect. The idea of footprints is apparently made for pads and things which belong to them, not for general drawing. You can’t select the outlines from the footprint and e.g. move them independently, it’s all or nothing, if you have text or other graphics in that footprint it moves along. You would have to open the footprint in the footprint editor to edit parts of it.

So, evidently more would be needed than just turning on the Edge.Cuts support in the footprint editor.

Another way to reuse existing outlines is copypaste. At least recent nightly builds support Copy and Paste (in the context menu) so well that I can draw graphics, copy it to clipboard, close KiCad, open it, open a board and paste the graphics. I can also open a standalone pcbnew, draw in it, copy, swap to the project-KiCad pbnew window and paste (although it’s seems to be a bit buggy - I had to click to unselect the copied selection first, otherwise the old clipboard content was pasted). I can select items from several layers at the same time and copypaste them.

In this way it would be possible to have an edges library in one file - all edges in one board - or in several files.

A third way, if someone really needs a manager UI, would be to code a python plugin. It’s possible to open a board file, select items from there and add them to the current board. Any kind of UI window is possible with wx, although it would lack an embedded preview.


the copy paste thing is interesting, i will try it.

A pity there that kicad wont allow you more than one instance of kicad open (windows) but still doable.

edge-cuts in footprint would also do the trick nicely.

a completely diffrent think I noticed in footprint is that now we have zones enabled i footprint (very nice) but if you want a cirlce shaped zone you will have to draw it by hand, a bit sad, i hope it can be added one day.


I keep several projects open all the time, no problem. KiCad just asks if it’s OK to continue when you open a new instance. For standalone pcbnew it doesn’t even ask, I think.

This may be a gerber limitation, it’t possible that it doesn’t have round zones and it must be approximated with a polygon. It’s pretty easy to create approximated circle with a python script, just ask for help for that.



I always thought multiple instances was a no-no and thats why he asked.
thanks for this clarification.


I think also this thread may be relevant, it seems this is what you’re trying to accomplish?


Some more thoughts…

In the thread linked by HSPalm I noticed another con for footprint: it covers the whole board and either is selected accidentally or asks for clarification when trying to select something else on the board. One possible solution for this would be the ability to explode a footprint (after it has been put into a board) to items. Silk items would be placed directly to the board silk, edge graphics to the Edge.Cuts layer of the board etc. On the other hand it would remove the ability to update the edge-footprint easily.

Still another solution for importing graphics would be to allow File->Append Board for projects, too. Now it’s available in standalone mode but not in project mode. Compared to copypasting it would save the extra steps of selecting, copying and pasting items on boards, instead having steps of selecting a file and accepting it.

So, there could be many ways to accomplish importing edges. In my opinion copypaste between files is the best solution now (at least in the upcoming version 5.0) because it works and is versatile. Using footprints has too many cons even if Edges.Cuts were supported. DXF doesn’t understand layers.


If you lock the footprint, this will not happen unless the Edge of the footprint locked is under the cursor.


I’m trying, but it happens. I’m using up-to-date self-compiled version.


if under the cursor there is only the locked footprint then you should see:

if there is at least i.e. an other fp, you should see only the option to move the other fp. At least that is what I get.
(with a track I get the option to choose but only in legacy canvas)


Another work flow
1: Draw your edgecut in an empty project
2: name and move the .Kicad_pcb file to your liking
3: make your new project.
4: open PCBnew (standalone) and use “append board” to import your edgecut template


That’s not what I get with a recent build and GAL on Linux. A locked footprint can normally be selected, the “locked” message in a more intuitive form pops up only when trying to move it. With a board-wide footprint the context menu on top of the board either is always for that footprint or requires clarification.

I doubt the willingness amongst developers to change footprint behavior just to support this edge case (not honestly sorry about the pun). Supporting all layers in footprints wouldn’t hurt, of course, and I’m all for it. But for an Edge.Cuts library I would rather vote for the ability to append board directly into a project, not only to standalone pcbnew.

If Edge.Cuts were supported it should be possible to write a python script which would explode a footprint, if that is what is wanted.