Hello,
I have a very similar problem like in https://forum.kicad.info/t/footprints-losing-positioning-when-the-layout-is-being-updated/35934:
Under big time pressure, I created a schematic, all on one page, not very nice, but it was good enough to generate the PCB from.
Once the PCB was in production, I wanted to utilize my waiting time to rearrange the schematic to look nice, so i did, I added several hierarchical sheets and cut & pasted most of the drawing parts to new pages. After a day’s work it looks good. Electrically, nothing changed (except that I added a couple forgotten components). But now when I want to continue work on the PCB, and update the PCB from schematic, it makes a total mess. I’m using Kicad7 and when I check none of the 3 checkboxes, it adds ALL the components as a new selection. If I check the “re-link footprints to schematic symbols” it only adds the new components, but all the wires are added as ratsnest again, even though 99% was already routed.
Much too late I read @paulvdh 's comment in the posting I linked above: " But make sure you use the Paste Special from the popup menu instead of the normal paste. This preservers the UUID’s that are normally used to keep the synchronization between the schematic symbols and the PCB footprints."
Of course, I didnt at the time. I had no clue that a simple cut&paste action would remove the existing assignments. And I spent hours redrawing all the wiring after shifting the components around.
So, now: Is there any way I can save my PCB? Or am I stuck at either repositioning and re-routing everything, or repeating the whole schematic update from scratch again?
If there is no easy solution, may I suggest adding a warning popup of some kind, upon performing the first “cut” or “paste” action in a schematic, to warn of this situaton (and recommend using “paste special” instead)?
The: Re-link footprints to schematic symbols based on their reference designators only works if those reference designators are the same. In your case it’s likely they have changed, and it won’t help you if footprints are re-connected with schematic symbols in the wrong order. If the RefDes has also changed, and you swap the connectivity of your microcontroller with that of a voltage regulator (or whatever), then that help you in any way.
There are several ways to repair your mistakes, but it does require some manual labor. The simplest way to repair it is probably to just delete all footprints from the PCB (And ONLY the footprints! Keep the PCB outline and all the tracks intact) Then you can simply import the new footprints and position the pads of the new footprints to the open track ends left behind after the old footprints are deleted. Once a few footprints are placed (start with some with a lot of pins) then KiCad re-assigns the net names to the existing tracks and ratsnest lines help with placement of the rest of the footprints. This is probably the easiest way to repair your project for two reasons. One is that it’s easy to get the original footprint placement back, (it can help to double check track ends end in the attachment points of footprints). The other reason are the already mentioned ratsnest lines, combined with net update of track segments.
You may suggest it, but it’s unlikely to be implemented. KiCad developers (and people who use it for some time) don’t like nag screens, and KiCad assume their users know how to use it. I find it quite astounding you are working on your schematic for a day without checking whether your intended workflow actually works. I suggest that the next time you do a “big” change, you first test it with a few components, or even start a “dummy” project to get your workflow right. For the same reasons I recommend beginners to start with a simple project. That way it does not take much time to repair when mistakes are made.
Thank you! That method sounds feasible and a pretty small “punishment”
You are right, it was shortsighted of me to do so much work without checking first. And yes, I hate nagging windows too
How can I easily delete all footprints from the PCB without breaking something else?
The Update PCB from Schematic dialog has option for deleting unlinked footprints. If the links are already broken – if I understood correctly they are – check that option.