Creating a hierarchical sheet destroys reference designators
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
High
|
jean-pierre charras |
Bug Description
(I am using the KiCad 6.0.0-rc1 nightly build.)
When you create a hierarchical sheet in eeschema using a child schematic sheet that already exists (as opposed to letting eeschema create a new, empty child sheet for you), all of the reference designators that already exist within the child sheet will be destroyed the first time you do a Save of the design.
This can be rather distressing if you've put a lot of effort into getting the reference designators just the way you need them. I understand that this behavior is probably there in the expectation that multiple copies of the same hierarchical block will be used, and will hence need to be reannotated, but that's not the only use case. In the use case of a simple multi-sheet design in which none of the sheets appears more than once (which is my use case), it is less likely to be the desired behavior.
There's a pop-up box that appears when you create the hierarchical sheet which says something to the effect that "X.sch already exists. Link to this file?". I think that this pop-up box should:
a) Warn you that linking to the existing sheet will destroy all of its reference designators;
b) Tell you that this destruction of refd's cannot be undone; and
b) Offer the option of leaving all of the reference designators intact instead of destroying them.
There are workarounds, namely copying an intact child sheet back into place after the hierarchical-
Changed in kicad: | |
importance: | Wishlist → High |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
@Ron, I assume you mean the references are cleared in the newly added sheet, not the original sheet that the new sheet was created from. If this is the case, this is the expected behavior. Otherwise every new sheet would have duplicate references from the original sheet. If the original sheet references are getting cleared, then that is a bug.