#!/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