fritzing / fritzing-app

Fritzing desktop application
http://fritzing.org
Other
3.87k stars 814 forks source link

add hatched ground as ground fill option #4150

Open ClemensGruber opened 1 week ago

ClemensGruber commented 1 week ago

Some applications, e.g. touch buttons, require hatched ground instead of plain ground, but this is currently in Fritzing only possible as a complex workaround editing the SVG and replacing the ground layer afterwords.

So it would be nice to have the option "hatched" as ground fill, (perhaps with different hatching percentages) for ground fill.

See also:

KjellMorgenstern commented 1 week ago

Instead of a solid ground fill, an element like this should be made available, right?

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <pattern id="hatch" width="10" height="10" patternUnits="userSpaceOnUse">
      <path d="M0,0 L10,10" stroke="#000" stroke-width="1"/>
      <path d="M10,0 L0,10" stroke="#000" stroke-width="1"/>
    </pattern>
  </defs>

  <rect x="10" y="10" width="180" height="180" fill="url(#hatch)" stroke="black" stroke-width="2"/>
</svg>

hatched_fill

ClemensGruber commented 1 week ago

Nice finding! Did not know that SVG has such "easy" opportunities to realize a hatched area!

From Espressif's Touch Sensor Application Note > section 3.3.7. Ground Plane a good default (at least for touch sensors) could be:

Typical hatching for the ground fill is 19% (5 mil line, 50 mil spacing).

For more flexible parameters (don't know if we need / want them in Fritzing) I found a screenshot from DipTrace in this thread https://forum.kicad.info/t/copper-pour-with-hatched-fill-instead-of-solid-fill/860/8 e.g. with line width and line spacing as editable parameter.

KjellMorgenstern commented 1 week ago

Beware, just an example. Ideally it would work, and Qt (the framework we use) has improved their support for fill patterns quite recently (earlier this year) : https://www.qt.io/blog/qt-svg-not-so-1.2-tiny-any-more

And we would still have to support the various transformations the pattern undergoes, especially exporting to gerber.

Of course we could just 'brute force' it by adding a number of lines.