mohan-bee/tscircuit-robot-vacuum
A tscircuit package created by mohan-bee.
- Version
- 1.0.0
- License
- unset
- Stars
- 0
capability-audit/board-hole-collision-probe.tsx
PCB
Schematic
import React from 'react'
import { Circuit, assembly, jscad } from 'tscircuit'
import { writeFileSync } from 'node:fs'
const results=[]
for(const kind of ['bare-board','round-npth','native-pinheader']){
const c=new Circuit()
c.add(<assembly.device name="hole-check"><board name="B" width={20} height={20} routingDisabled>
{kind==='round-npth'?<hole name="H1" diameter={3.2} pcbX={5} pcbY={0}/>:null}
{kind==='native-pinheader'?<pinheader name="J1" pinCount={2} footprint="pinrow2" pcbX={0} pcbY={0}/>:null}
</board><assembly.printedpart name="COVER" jscad={<jscad.cuboid size={[18,18,2]} center={[0,0,10]}/>} />
<assembly.explosion.stage name="lift"><assembly.explosion.move targetRefs="COVER" offZ={10}/></assembly.explosion.stage></assembly.device>)
await c.renderUntilSettled()
const cj=c.getCircuitJson()
const errors=cj.filter(x=>/collision.*(warning|error)/.test(x.type))
const holes=cj.filter(x=>['pcb_plated_hole','pcb_hole'].includes(x.type))
writeFileSync(`capability-audit/${kind}.circuit.json`,JSON.stringify(cj,null,2))
results.push({kind,holes,collisionDiagnostics:errors})
}
writeFileSync('capability-audit/board-hole-collision-results.json',JSON.stringify(results,null,2))
console.log(JSON.stringify(results,null,2))