27 lines
1.5 KiB
Bash
Executable File
27 lines
1.5 KiB
Bash
Executable File
#!/bin/zsh
|
|
# uso: verify.sh v56 hbox-watchdog-v5 | verify.sh v57 hbox-watchdog-v57
|
|
set -e
|
|
KC=/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli
|
|
PY=/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3
|
|
A="$(cd "$(dirname "$0")" && pwd)"; D="$A/$1"; S="$2"
|
|
cd "$D"
|
|
echo "== DRC (parity + refill) $S"
|
|
"$KC" pcb drc --schematic-parity --refill-zones --severity-all --format json -o "drc-$1.json" "$S.kicad_pcb" >/dev/null 2>&1 || true
|
|
"$PY" - "drc-$1.json" <<'PYEOF'
|
|
import json,sys
|
|
d=json.load(open(sys.argv[1]))
|
|
from collections import Counter
|
|
print("violations:",len(d.get("violations",[])), Counter((v["type"],v["severity"]) for v in d.get("violations",[])))
|
|
print("unconnected:",len(d.get("unconnected_items",[])), "parity:",len(d.get("schematic_parity",[])), Counter(v["type"] for v in d.get("schematic_parity",[])))
|
|
PYEOF
|
|
echo "== gerber as-saved"
|
|
rm -rf gerber-saved; mkdir gerber-saved
|
|
"$KC" pcb export gerbers --subtract-soldermask --no-protel-ext -o gerber-saved/ "$S.kicad_pcb" >/dev/null
|
|
"$KC" pcb export drill --excellon-separate-th -o gerber-saved/ "$S.kicad_pcb" >/dev/null
|
|
echo "== refill copy + gerber"
|
|
rm -rf rf; mkdir rf; cp "$S".kicad_pcb "$S".kicad_pro "$S".kicad_prl "$S".kicad_dru fp-lib-table sym-lib-table rf/ 2>/dev/null || true; cp -R Drogheda.pretty Drogheda-v6.pretty rf/
|
|
"$PY" "$A/refill.py" "rf/$S.kicad_pcb"
|
|
mkdir -p rf/gerber
|
|
"$KC" pcb export gerbers --subtract-soldermask --no-protel-ext -o rf/gerber/ "rf/$S.kicad_pcb" >/dev/null
|
|
echo "== done $1"; ls gerber-saved | wc -l; ls rf/gerber | wc -l
|