The gencad export is lightly used so your input here is valuable.

Does the gencad export provide a bom?  If so, maybe hashing value is
useful.  But clearly hashing refdes is not.

For the graphical items, I'd use a set to order them before hashing

Seth

On Fri, Mar 14, 2025, 7:33 AM 'se...@malmoset.com' via KiCad Developers <
devlist@kicad.org> wrote:

>
> Problem:
> The gencad export duplicates every footprint regardless of the setting of
> the "Generate a new shape" option.
>
> Cause:
> In export_gencad_writer.cpp (hashFootprint around line 615), footprints
> are hashed to determine duplicates. The hashing has some limitations
> though. First off, it hashes the fields. Those will always be different,
> since it includes the reference. Even excluding the reference, they're
> usually different. Example: 0402 Capacitors. Many different capacitors,
> same footprint, but the export generates a footprint for each.
>
> Next up, the GraphicalItems hashing. This can also be problematic because
> the lines around a footprint can end up saved in a different order, even if
> they came from the same library footprint. I'm not sure of the underlying
> cause here, but it breaks the hashing.
>
> Solutions:
>
> Easiest:
> 1. I think we should eliminate hashing of the fields (remove lines
> 617,618). I can't think of why this is useful.
> 2. For my use, I could also safely eliminate the hashing of graphical
> items (silk screen), since the differences aren't visible anyway. Others
> might disagree on this.
>
> Thoughts:
>
> Field hashing should probably always be removed. It essentially forces on
> the "UsePinNamesUnique" option.
>
> 1. The UsePinNamesUnique option provides a means to get individual
> footprints generated for everything. So, I don't see a big need for the
> hashing function to be super conservative. There's an easy way for a user
> to get a conservative output if they want it. Thus, I'd suggest removing
> both the field hash and the graphical hash.
>
> 2. The next possibility is to remove the field hash and to sort the lines
> of the graphical elements in such a way that they will always output in the
> same order and the hashes will be compatible. I've tried to come up with a
> sort method for this and haven't come up with one.
>
> 3. Add another option to the export called "Precise footprint comparison"
> or similar that enables the graphical hash. Turn it off by default.
>
> I'm happy to produce patches for any of these options, just wanted to
> query the maintainers about what they think is the best approach before I
> built and submitted the patch.
>
>
>
> Thanks,
>
> Sean
>
> --
> You received this message because you are subscribed to the Google Groups
> "KiCad Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to devlist+unsubscr...@kicad.org.
> To view this discussion visit
> https://groups.google.com/a/kicad.org/d/msgid/devlist/e5d16250-a31d-4487-b3c5-2097347cae20n%40kicad.org
> <https://groups.google.com/a/kicad.org/d/msgid/devlist/e5d16250-a31d-4487-b3c5-2097347cae20n%40kicad.org?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"KiCad Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to devlist+unsubscr...@kicad.org.
To view this discussion visit 
https://groups.google.com/a/kicad.org/d/msgid/devlist/CAFdeG-ozEv2f-GevF5sWP-gR8trbNLrODkbkysZ0rAY5MapJYQ%40mail.gmail.com.

Reply via email to