Current state
circular shapes in the copper layer will be drilled. So you could build an oval by ânibblingâ â put several overlapping circles next to each other. Depending on the diameter, the FAB would
automatically use this method anyway, because openings below a certain diameter canât be CNC-routed (the drill bit would be too thin for the sideways load).
Oval drills like in your SVG are currently not directly supported by the gerber export. The closest workaround (and what most FABs would do anyway) is to nibble the oval with overlapping circular drill hits.
Regarding your SVG conventions, your assumptions are mostly correct:
- SMD pads: id=âconnectorXpadâ, fill #f7bd13, in copper0 â correct.
- Through-hole pads: copper shape with id=âconnectorXpadâ plus a black shape on top with id=âconnectorXdrillâ â this is the right idea, but note that currently only circles are recognized as drill holes by the
gerber exporter. Your elements with id=âconnectorXdrillâ wonât produce drill hits in the current version.
- Mounting holes: a black circle in copper0 will produce a drill, yes.
Also: your silkscreen layer is spelled skillsreen â should be silkscreen.
Edit: For completness, board outlines support negative shapes. The board should be defined clockwise. Anything counter-clockwise is then a hole and will be drilled our cut out.
Future plans
The idea is to add explicit drill and cut attributes to the SVG part format (for example
fritzing:drill and fritzing:cut attributes , similar to the âdrillâ attribute currently described at the end of the spec. This would allow something like:
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:fritzing="http://fritzing.org/xmlns/0.1" ...>
<g id="copper1"><g id="copper0">
<!-- Plated oval slot -- routed to final shape -->
<rect fritzing:drill="plated"
x="46.772" y="179.13" width="33.465" height="23.622"
rx="12" ry="12" />
<!-- Non-plated mounting hole -->
<circle fritzing:drill="non-plated" cx="10" cy="106" r="10" />
<!-- Board cutout -- tool follows the outline -->
<rect fritzing:cut="true"
x="20" y="20" width="50" height="30" rx="5" ry="5"
stroke-width="1.88" fill="none" stroke="black" />
</g></g>
</svg>
The key distinction: fritzing:drill removes material inside the shape (for holes and slots), while fritzing:cut removes material along the shape outline (for board cutouts, using stroke-width as the kerf). Both
support circles, rects, paths, and arbitrary shapes. The attribute can be set on a element and is inherited by all children.
Non-circular drill shapes would be exported as Excellon rout commands (M15/M16 rout mode)
This is still in the spec/planning stage â not yet implemented.
There is also the issue that ids need to be unique, which is makes using ids for fritzing layers (copper0, copper1, ⌠) a bit convoluted. So, I donât think weâll use id=âdrillâ like I think I suggested earlier.