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 '[email protected]' via KiCad Developers <
[email protected]> 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 [email protected].
> 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 [email protected].
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