Hole position change on Gerber file

Hi there,
I created a custom pcb and it’s visually correct in Fridzing but i sow the error only once the pcb was build. When i check the Gerber file i see it there as well.
Screenshot 2023-03-13 at 11-35-51 Screenshot from 2023-03-13 11-27-15.png (PNG Image 2560 × 1440 pixels) — Scaled (87%)

What do you think are causing that?

Here is the svg file made in Inkscape if needed (40mmx40mm).

I think you hit a bug that has been discussed previously, where the svg processing in Fritzing gets things mixed up between absolute and relative positioning in svg path statements. Specifically when there are ‘closed’ cutouts in the custom board. The holes are cutouts here. The first one (in the path) works, but any following have the wrong reference point for the coordinates.

That is one of the reasons that it is recommended to use a gerber viewer on the output that Frizting provides, to check for issues before sending it to a fab.

What gerber viewer in Fritzing are you referring? PCB tab?
Me i use https://gerblook.org but too slow. Actually i checked before send but i did not pay too much attention, probably I was tired and in a hurry to finish.

There isn’t a gerber viewer in Fritzing you need to use an external one. I use gerbv from the geda project but there are lots of them available. The gerber processing happens after Fritzing rendering (when you use Export->For production->gerber (RS-274x) from pcb view and you need to view the generated files (which the board is made from) in an external gerber viewer.


Ah ok I get it.
So there is for now no way to fix that bug? It will complicate to approximate the position by viewing the gerber file then edit Fritzing. Maybe from a “gerber editor”?

Essentially yes, if the gerber output is wrong you need to edit the path data in an svg editor such as Inkscape (I find the visualization tool at

very useful when doing this!) to find a path that Fritzing can deal with. If you search for “pcb cutout” in the forum you will find many past posts on issues with this. Using Fritzing 0.9.10 if you are not, also helps as there have been many bug fixes applied in 0.9.10. If you upload the .fzz file for your sketch (upload is 7th icon from the left in the reply menu) I can have a look at poking at the path to make Fritzing happy with it (although @microMerlin is much better at path stuff than I am!) That said in path visualizer your svg looks pretty odd:

as opposed to this one which works (after a lot of work was done on it!)

which just cuts a hole in the center of the triangle. The work done on this over time is in a previous forum post on cutouts.


The visualization of the svg are indeed odd. I’m using Fritzing 0.9.3 in Ubuntu so probably could be a good idea to update to the last version.
Ok, let me see closely what’s wrong in my svg file.

There may be nothing wrong in your svg, it is just that Fritzing is particular about the order (it will object to paths that appear to be legal I think) but the result is the same you need to adjust the path til Fritzing accepts it. Note the path needs to be differential (I assume you already know that.) Good luck! I usually find this very frustrating (probably because I don’t understand all that much about paths!) and 0.9.10 is much better at it than 0.9.3b!


Demo.fzz (43.6 KB)
I uploaded Fritzing file in case some one would like to take a look.

Just an upgrade to 0.9.10 may do what you need. Here is the gerber output of your sketch from 0.9.10

it looks to match the svg (I imported the jpg image of the gerber output and rescaled it to match the svg after making fill=none in the svg and stroke red

If I understand the issue correctly, the bottom hole was offset from its position in the svg which no longer seems to be the case. Although since the output from 0.9.3B appears identical the problem may still be there. Although it seems strange that it is rendering the same in Fritzing as in the gerbers as usually the gerbers are wrong.


I downloaded Fritzing 0.9.10 and view it on gerbv and the bottom hole have the right position! You are right only updating Fritzing solve my problem.

Thanks Peter!

Good to hear! This is usually much more difficult. There were many fixes in this area in 0.9.10 and earlier, but there are still occasional problems too.