View pcb layers in inkscape


I am working on creating some SMD PCB layouts in Inkscape. The problem I have is that when I open an existing PCB part in Inkscape the layers for the copper connections do not show up in my layer tree (window).

If I open the XML editor in Inkscape I can see the “layers”. Does anyone have any ideas on how to transfer these to my layer window? the main reason I want to do this is it is easier to work with the layers if they are present in the layer tree.

Side Note: If I open the .svg file in Adobe Illustrator the layers show up in my layer window. However, I can’t import .svg’s saved in Illustrator into the Fritzing parts editor.

Thanks in advance.

There are no layers, it’s all grouped in one layer.

To physically edit the part you have to keep un-grouping until you get to the base level.

I think ungrouping messes with the layers that Fritzing wants.

I may try to make a svg from scratch and see if this works.


I actually did an edit without un-grouping using Node select, but it was harder.

Just un-group to base and re-group latter. The overall grouping is not that important except in PCB view, where you have to put black stuff in silkscreen and gold in copper0.
You can drag nodes/objects in IS XML editor and group there, create nodes, rename nodes, duplicate nodes, so you can skip your Notebook part.

Yay, I got my modified MPX4250AP working.

MPX4250AP download

Now for my fully created part from a PDF import into IS.


Thanks. This is starting to make sense. I do wonder why they show up as groups in InkScape and Layers in Adobe Illustrator.

It’s not that bad when you know how, but it’s all the trial and error that is very frustrating when you don’t.

These are the rules to make parts comply.


I heard Fritzing is getting a parts creator in Feb, so it will be better.

In Inkscape, I notice there are compatibility problem between the SVG graphics generated by Fritzing and those generated by Inkscape itself.

Also, the tools Union, Difference, Intersection, Exclusion and Division (in the Path tab) do not seem to work in the same way.

What SVGs are you talking about, generated by FZ?

Yes, SVGs generated by Fritzing.

What parts in Fritzing are you referring to?

In menu Fritzing 0.9.3…
File -> Export -> for Production -> Etchable (SVG)…

You get following .svg files:

If you import and edit any of these files in Inkscape, after ungroup them you will notice that the tools Union, Difference, Intersection, Exclusion and Division (in the Path tab of Inkscape) do not act on these vectors as would act if we were editing a .svg graphic generated in Inkscape itself.

I with you now… I will try to answer your question the best I can… Fritzing generates .svg files in a number of places; when making a new part from an existing part, loading a new image into the parts editor, creating a generic header/connector, etc. I don’t use Ink, I use CorelDraw which have different name for combining elements (weld, trim, intersect,…).

SVGs are a very complex format and there is no one standard. Every graphics editor has their own standard format. When Fritzing started, most of the parts were created with Adobe Illustrator (AI). Parts were created by different vendors… mostly by SparkFun with AI. AI was the standard at the time, Now because InkScape is free, this is the recommended graphics editor.

When Fritzing started they had to overcome the challenge on how to intrepid the idiosyncrasies of the different SVG formats. AI, Inkscape, and CorelDraw are all different and they all can be formatted in different increments (Inches, mm, pixels…), then when an element (rectangle, circle, text…) is rotated or altered, a new attribute is added (transform) which gives instructions on how to alter it. Fritzing did a very good job over the years to translate the various complex SVG formats into a simple format it could understand and use to generate its own SVG format…

I run into this problem all the time; some SVG files “path elements” from AI or Ink will explode or crash when imported into CorelDraw. Ink has the same problem when importing a CorelDraw SVG file. I sometime get around it by importing the .svg into Ink and saving it as a .ps file, then import into CorelDraw. I preserve the image but loose some data… like ID"name" (connector##pin)… but then add it back in and restructure the layers for Fritzing.

EDIT: The copper fill is generated by scanning the PCB one line at a time… The path that it generates may contain hundreds of nodes due to this scan process…

Steve, I appreciate the explanation. It is unfortunate that such a detailed explanation be lost in a discussion forum and Internet users have to rely on luck to find it.

I tried to import the graphic xxx_etch_copper_bottom_mirror.svg (generated by Fritzing) for bCNC application (interface Arduino GRBL) but bCNC can not import SVG graphics generated in Fritzing. The bCNC imports graphic SVG generated in Inkscape.

So I tried to import the SVG generated in Fritzing to Inkscape, to be then imported into bCNC, but the SVG graphic that Inkscape imports of Fritzing not have the same properties as an SVG graphic generated in Inkscape itself and therefore the result for import bCNC is the same, it does not work.

I’ll keep trying other alternatives and perhaps forget SVG for now and redesign PCBs in Eagle to be imported as DXF in bCNC, that is one of those.

After it Imports into Inkscape can’t you save it as another format. Ink has heaps in the drop down save menu, even dxf. Ink can even import pdf.

That would be my suggestion… just what @Old_Grey said… import into Ink, save it as a postscript (.ps.), import that into Inc, then save it as a new SVG file. You loose layers and ID names but still maintain your drawing.