一言で言い表せないので長いタイトルになってしまった。
問題・課題
KiCadで回路図を複数のシートに分けて描いており、基板で部品の配置を進めていたとする。途中で回路の変更をすることになった場合、あるシートにある部品を別のシートに移動し、その変更を基板に反映するとその部品が元と場所から削除されて新たな部品として配置しなければならないのが面倒だった。

回路図が複雑になったりして、複数のシートに分割する場合にも同じ問題が起きる。
この問題の対処方法、つまり、回路図シートを超えて部品を移動させても基板に配置済みの部品を移動させない方法がわかったのでメモしておく。というか、手順がやや複雑なのでメモしておかないと忘れてしまう。
なお、ここで使っているKiCadはバージョン8(8.0.8)。
解決方法(操作手順)
回路図エディタでの操作

例として、上の回路図で、下の方にあるスイッチ、抵抗、コンデンサのブロックを別のシートに移動することにする。
まず、移動させる部品を選択して切り取る(Ctrl+X)。

移動先のシートに貼り付ける(Ctrl+V)。

ここでのポイントは部品番号を変えないこと。なので、この段階でアノテートしてはいけない。また、移動したい部品は「切取り→貼付け」の手順。「コピー→貼付け→元部品を削除」だと部品番号が変わってしまうのでダメ。
基板エディタでの操作
基板エディタで回路図を読み込む。

ここでのポイントは、上の赤矢印で示したオプションの「リファレンス指定子に基づいて回路図のシンボルとフットプリントを再リンク」をチェックすること(通常はチェックしない)。
これで「基板を更新」するとリファレンス番号を拠り所に基板上の部品と回路図の部品とが紐づけられる(オプションの説明通りなわけだけど)。したがって、今回、回路図シートを移動したSW2、C46、R64は基板上ではそのまま動かない(見やすいように配線やビアは表示を消した)。

このチェックを忘れると、一番最初の図のように、配置済みのSW2、C46、R64は削除されて新たな部品として読み込まれ、手動で再配置するはめになる。
仕上げ
回路図エディタに戻ってアノテーションを行なう。


それぞれ、SW1、C17、R16になった。
今度は、基板エディタで、「リファレンス指定子に基づいて回路図のシンボルとフットプリントを再リンク」をチェックを外して基板を更新する。


これで回路図のリファレンス指定子が反映される(これに伴ってリファレンス指定子が変更された部品すべて)。
コメント