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.)
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.
ps1
A pity there that kicad wont allow you more than one instance of kicad open (windows) but still doable.
ds1
edge-cuts in footprint would also do the trick nicely.
ps2
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.
ds2
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.
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 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.
It’s a different thing. The bug report is about selection inside a footprint. I talk about all items an a board. An edge footprint wouldn’t even have pads.
@maui That 3d thing can be a problem with my specific files, I tried quickly, not exhaustively. What’s your KiCad version?
In any case, if someone wants to suggest supporting Edge.Cuts in footprints as a wishlist item it would be better to do exhaustive testing first, finding out what else should be done. IMO it would defeat the purpose of edges in footprints if there are too many glitches when using them as board edges.