imrishabh18/corne-keyboard
The code defines and renders two surface-mount chip components with SMT pads, silkscreen outlines, and 3D CAD models (OBJ and STEP) for PCB assembly.
- Version
- 2.0.21
- License
- unset
- Stars
- 1
scripts/check-routing.ts
import { readFileSync } from "node:fs"
import {
checkCopperToBoardEdgeClearance,
checkPcbCopperOverKeepout,
dedupePcbDrcErrors,
runAllRoutingChecks,
} from "@tscircuit/checks"
let failed = false
for (const side of ["left", "right"]) {
const circuit = JSON.parse(readFileSync(`dist/${side}/circuit.json`, "utf8"))
const traces = circuit.filter((item: any) => item.type === "pcb_trace")
const errors = dedupePcbDrcErrors([
...circuit.filter((item: any) => item.type === "pcb_autorouting_error"),
...await runAllRoutingChecks(circuit),
...checkCopperToBoardEdgeClearance(circuit),
...checkPcbCopperOverKeepout(circuit),
])
console.log(`${side}: ${traces.length} traces, ${errors.length} routing/clearance errors`)
for (const error of errors) console.error(`${error.type}: ${error.message}`)
if (!traces.length || errors.length) failed = true
}
if (failed) process.exit(1)