【要約】KiCad を使わずに、Python だけで基板を“配線”してみる — 素朴な迷路法で [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
筆者が、KiCad等のGUIツールに頼らず、Pythonコードのみで基板設計を完結させる過程で直面した技術的課題である。
- ・自動配線(オートルータ)の内部ロジックがブラックボックス化している。
- ・単純な経路探索では、配線密度が高い場合に経路が確保できない。
- ・一度引いた線を考慮しない「素朴な手法」では、後続のネットが詰まるリスクがある。
// Approach
筆者は、基板設計を「格子上の迷路解き」と定義し、A*アルゴリズムを用いて経路を探索する手法を採用した。
- ・pcbflowライブラリを使用し、Gerberおよびドリルファイルを出力。
- ・製造ルール(線幅0.3mm、クリアランス0.3mm)に基づき、0.635mm間隔の格子を定義。
- ・A*アルゴリズムにより、既存の配線やパッドを「壁」として回避。
- ・1層目で経路が塞がった場合、ビアを用いて2層目へ逃がすロジックを実装。
// Result
筆者が、部品配置に余裕のある2層基板に対して、22本の配線をすべて成功させた結果である。
- ・配線成功率: 22/22(100%)。
- ・計算時間: 約60ミリ秒。
- ・総配線長: 約485 mm。
- ・今後の展望として、引き直し(rip-up & reroute)の実装や、高密度配置への対応を挙げている。
Senior Engineer Insight
> 本手法は決定論的な経路探索に留まっており、現代の高度なオートルータと比較するとスケーラビリティに欠ける。特に「引き直し」がないため、部品密度が上がると失敗率が急増する。しかし、設計のコード化(Infrastructure as CodeのPCB版)という観点では、再現性や自動生成の基盤として極めて有望である。