AnasSarkiz/NEMA14_RP2040
A NEMA motor assembly concept with a controller board, four proposed M3 screws and spacers, motor lead splices, and a JST 4-pin connector harness.
- Version
- 1.13.0
- License
- ISC
- Stars
- 0
scripts/check-circle-regression.ts
import { checkEachPcbTraceNonOverlapping } from "@tscircuit/checks"
import { writeFileSync } from "node:fs"
const board = {type:"pcb_board",pcb_board_id:"fixture-board",width:35,height:35,center:{x:0,y:0},num_layers:4,min_trace_to_pad_edge_clearance:0.15}
function check(shape:string, y:number, layer="top") {
const keepout = {type:"pcb_keepout",pcb_keepout_id:"fixture-keepout",shape,center:{x:0,y:0},radius:2.2,width:4.4,height:4.4,layers:["top"]}
const trace = {type:"pcb_trace",pcb_trace_id:"fixture-trace",route:[{route_type:"wire",x:1.9,y,layer,width:.16},{route_type:"wire",x:2.1,y,layer,width:.16}]}
return checkEachPcbTraceNonOverlapping([board,keepout,trace] as any).length
}
const results = {
circleCornerClear:check("circle",1.9)===0,
circleIntrusionRejected:check("circle",1)===1,
circleClearanceViolationRejected:check("circle",1.3)===1,
rectangleCornerStillRejected:check("rect",1.9)===1,
otherLayerUnaffected:check("circle",1,"bottom")===0,
}
if(Object.values(results).some(v=>!v)) throw new Error(JSON.stringify(results))
writeFileSync("artifacts/upright-revision/circle-checker-regression.json",JSON.stringify({passed:true,results},null,2)+"\n")
console.log("Circular keepout regression checks PASS",results)