Disabling/skipping annotation (numbering) for (some) uniquely named labels?


I just wanted to run cvpcb, and it started the Annotation tool.

The thing is, I in my schematic, I named some of the components with uniquely named fields, like MYCONN (the rest of them are all numbered/annotated, like R1, R2, etc…) - however, once the Annotation tool was over, it had renamed my MYCONN to MYCONN1

I would much prefer to keep MYCONN as is, even after the annotation process, as I’ve already made sure that it is unique, and as such will not refer to other elements. Also, if I remember correctly, if you place a new schematic part, its reference label is U?, or R? etc - I would have thought the question mark at end is the “marker” for “unannotated” part, as used in http://docs.kicad-pcb.org/stable/en/eeschema.html :

You can unconditionally annotate all the components, or only the new components, i.e. those which were not previously annotated

Right now, it looks to me as all schematic reference labels that don’t end with a number, are considered “not previously annotated”.

So is there some way, for me to mark a schematic symbol reference label as “annotated” (provided I’ve made sure it is unique), so the automatic annotation tool skips that label when doing the renaming and numbering?


I kinda doubt it but don’t know. If it doesn’t like the annotation it won’t do a netlist either. If you aren’t going to actually build the board you could go back at the end and remove the 1 and do a final save. There’s probably gerber editing software out there that might let you fix up the silk screen but I doubt it is worth the hassle.


Thanks for that @hermit - good to have this confirmed; cheers!


Well, not exactly confirmed because I did say, [quote=“hermit, post:2, topic:9079”]
I kinda doubt it
Think of the additional software complexity that would have to be added to check for unique names and exempt them on a board with hundreds or maybe even thousands of parts. CAD software of many ilks can slow down a computer pretty much as it is now.


Thanks again, @hermit :

I guess we could call it confirmed - I had a chance to look in kicad_git/eeschema/annotate.cpp , and there it says, right at the start of the algo:

    // Break full components reference in name (prefix) and number:
    // example: IC1 become IC, and 1

Given that it explicitly tries to check for numbering, a workaround I use now to mark “unique” connectors is by appending a 0 to their names/references.

Yeah, that sounds right. In first approximation, I’d solve checking for uniques by pushing strings into an array, and that indeed will be unusable for large circuits. So I wondered how KiCad does it, since it has to detect something similar in order to renumber, and I think that is in SCH_REFERENCE_LIST::Annotate in kicad_git/eeschema/component_references_lister.cpp ; seemingly, KiCad keeps the references as some sort of a struct, where prefix name and number are stored separately, and thanks to that, it doesn’t have to loop through the entire array of all reference names to check for the correct numbering.

I guess, as a last resort, maybe a property can be added, like dont_annotate, which could be assigned to a schematic symbol in .sch file - and if that one is present, the part is simply skipped when it should be pushed into the annotate algo. Of course, then there’s no guarantees at all that netlisting would work… Still, nice to speculate a bit on these things :slight_smile: