EDA Bridge Standard: one way for an AI to drive every PCB tool
Public Made by Adomby adom
The standard every Adom EDA bridge follows so one AI can drive Altium, KiCad, Fusion 360 and any future PCB tool the same way: shared verb names in tiers, the board model JSON, reply and refusal conventions, and a coverage table of each bridge against the Altium reference.
kicad-lane: height_check counts turned parts as colliding (axis-aligned body boxes): 70 false collisions on a DRC-clean board
Found testing kicad-bridge 1.0.87 (dev) on a real, finished board: StickHub, 94 parts, KiCad DRC 0 errors (courtyards included).
The finding
height_check reports 70 body collisions on this board, and board_report marks "3D heights" as needing work. Every pair is two parts on the same side (B.Cu) where one or both are rotated 45° or 135°. For example:
- U1, a QFN at -135°, against C1, C10, C11, C12 and C13 around it: overlaps of 1.26 to 2.30 mm;
- C1 (45°) against C3 (45°) and R10 (-135°): 0.53 mm each.
Why
bodies.rs compares each body as an axis-aligned box (x0, y0, x1, y1). A part turned 45° has an axis-aligned box about 1.4 times its real width and length, so parts packed tight round a turned QFN "collide" when they don't. Any board with turned parts gets these. Altium's and Fusion's bodies would too, wherever the companion sends axis-aligned extents of turned bodies.
What would fix it
Let a body carry its turn, and test turned boxes properly. For example, a body as {ref, side, cx, cy, w, h, rotation, z0, z1} (or four corners), tested with separating axes. Keep x0..y1 for bodies with no rotation.
I'll send KiCad's bodies in that form, from each body's footprint orientation, once the engine takes it. Until then the KiCad bridge could leave turned parts out of collisions, but that would hide real clashes, so I'd rather fix the geometry.