You bring up a good point. My change only deals with not requiring an annotation under these circumstances. If automatic annotation (or re-annotation) is attempted, it retains the old behavior. Not sure if that's a good or bad thing, other tools have similar behavior; You either use automated annotation or you don't but can't really mix the two. One thing to note for sure is the default behavior of auto-annotating components as they are placed is pushing people towards using automated tools.

At any rate, I'll open a merge request to facilitate the discussion as you suggested and thanks!

Andras

On 9/3/24 13:12, 'Seth Hillbrand' via KiCad Developers wrote:
Hi Andras-

Push your branch to a draft Merge Request for discussion.

In general, relaxing this sort of antiquated constraint is a good thing.  However, there are many places that KiCad expects a prefix+number, so ensuring that you've addressed them all will be key to accepting this change.

Some things to consider: How do you reannotate a schematic?  If we know that a refdes ending in a number is annotated, then the number can be stripped and re-assigned. If we don't, then we need some other way to know what the proper prefix is.  This would entail storing the prefix separately from the reference (see https://gitlab.com/kicad/code/kicad/-/issues/12079 for some more discussion)

Seth

KiCad Services Corporation Logo
Seth Hillbrand
*Lead Developer*
+1-530-302-5483‬
Long Beach, CA
www.kipro-pcb.com <https://www.kipro-pcb.com/> [email protected]



On Tue, Sep 3, 2024 at 11:46 AM Andras Tantos <[email protected]> wrote:

    Hello all!

    My name is Andras Tantos. I'm new to this group, but a relatively
    long-time user of KiCAD. I would like to suggest a change to the
    way KiCAD determines if annotation is needed for a schematic.

    *Right now* the behavior is that if any reference ends with a '?'
    or not end with a number, the schematic is deemed not fully
    annotated. Since only fully annotated schematics can be
    synchronized, this prevents updating the PCB from the schematic.

    *The suggested new behavior* would be to relax this and only deem
    the schematic unannotated if more than one component has the same
    reference, or if any of them have a terminal '?'.

    *Examples:* placing a single capacitor with reference 'C' would be
    OK. Placing a second capacitor with the same reference would now
    force annotation. If the reference of the first capacitor is
    changed to 'BYPASS_C', the schematic would be considered fully
    annotated. If a capacitor with reference 'C?' is placed, the
    schematic is considered unannotated until the name is changed,
    even if only a single such entity exists.

    Obviously multi-part symbols allow replication of reference. So,
    if U_CPU has two units (A and B), that's fine. If there are two
    unit A-s with the same reference (U_CPU again for the sake of
    argument) that would trigger annotation.

    *Why?* This annotation logic aligns better with other packages
    such as Altium. Apart from the user-education part, this is
    important for imported projects: these schematic and PCB files can
    violate assumptions about component naming after import and would
    be impossible to synchronize further changes between PCB and
    schematic.

    *Why not?* It's a change to existing behavior. Things that didn't
    work before would start working and can cause confusion. Libraries
    are usually developed with no '?' in the reference name, so as
    long as a single component is placed on the schematic no
    annotation would be triggered. This could potentially be confusing
    for users.

    I have created a fork where I implemented this change. It seems to
    be working (CI is still running) and is ready for a pull-request.
    I wanted to have a discussion about it before submitting it though.

    Thanks,
    Andras
-- 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 on the web visit
    
https://groups.google.com/a/kicad.org/d/msgid/devlist/6af07dfc-2ccb-46d2-9fb5-73bc7516ac95n%40kicad.org
    
<https://groups.google.com/a/kicad.org/d/msgid/devlist/6af07dfc-2ccb-46d2-9fb5-73bc7516ac95n%40kicad.org?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to a topic in the Google Groups "KiCad Developers" group. To unsubscribe from this topic, visit https://groups.google.com/a/kicad.org/d/topic/devlist/Y7xt_CFvAtA/unsubscribe. To unsubscribe from this group and all its topics, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/kicad.org/d/msgid/devlist/CAFdeG-pB5iWAmRgLv66jW2uyjTtdWu76Ov89Mx1op1CvxjxYqA%40mail.gmail.com <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAFdeG-pB5iWAmRgLv66jW2uyjTtdWu76Ov89Mx1op1CvxjxYqA%40mail.gmail.com?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 on the web visit 
https://groups.google.com/a/kicad.org/d/msgid/devlist/c7ef8f54-c27f-44b0-b977-246b832d0cbb%40tantosonline.com.

Reply via email to