app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Drive your own KiCad from an AI, in the background: open every editor, read the whole board as data (the EDA Bridge Standard board model), stack-up, part heights, netlists, place, route, pour, DRC and exports.
← Commit history
1.0.74: 1.0.74: 3D bodies made from package dimensions and routes planned between pads, both from the standard's engine 0.6.0.
- **kicad_generate_body (new):** a part's 3D body from its package family and the datasheet's JEDEC letters, to IPC-7351 proportions, with an optional marking on top.
- Families: chip, SOIC, QFN, QFP, BGA, SOT-23, DFN, MELF, can, crystal and header.
- The engine writes the STEP. With libraryPath it goes in <Lib>.3dshapes, and footprintName attaches it.
- Checked: a SOIC-8 marked LM358 sits on its footprint's pads at 1.75 mm.
- **kicad_plan_route (new):** a path for one net between two pads, around the board's copper and inside its clearance rules, on the layers allowed, with vias where they help. Nothing changes.
- routeNet is kicad_route_net's own arguments, ready to run.
- Checked on the ESC board: /DRV_GHC (R12.1 to U4.13) is a 2.5 mm F.Cu path, and kicad_route_net took it unchanged with no new DRC error.
- **Engine:** adom-eda-checks 0.6.0 (EDA Bridge Standard 0.9.0). These were KiCad's last two standard verbs outside the app tier.
1 file changed
+4−2
README.md+4−2@@ -257,7 +257,7 @@ viewer. This is how every 3D shot above exists. <!-- verbs:start (tools/readme_verbs.py writes this) --> -Every verb of this build (286, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow.+Every verb of this build (288, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow. **Board model and reads (EDA Bridge Standard)** (12) @@ -466,7 +466,7 @@ Every verb of this build (286, `kicad_describe` is the live catalog with inputs, | `kicad_project_rename` | Rename a project: the .kicad_pro, root .kicad_sch, .kicad_pcb, .kicad_prl (and .kicad_dru, backups folder), with the references inside updated (project file entries, every schematic's instance headers, the board's sheet references and title). Refused while KiCad has the project open. | | `kicad_project_snapshot` | Timestamped copy of the project's files into <project>/snapshots/<stamp>[-label]/, plus schematic and board PDFs made with kicad-cli. | -**Windows, editors, install and the bridge** (114)+**Windows, editors, install and the bridge** (116) | Verb | What it does | |---|---|@@ -510,6 +510,7 @@ Every verb of this build (286, `kicad_describe` is the live catalog with inputs, | `kicad_find_space` | Free spots on the board for a part near another: clear of every other part's courtyard on that side, of that side's tracks and vias, and inside the outline, nearest first. check:true lists parts that already overlap or leave the outline. | | `kicad_fix_keyboard` | Reset stuck modifier keys on a KiCad window. | | `kicad_footprint_from_land_pattern` | Build a complete footprint from the land pattern a datasheet prints: pads numbered the standard way (chip, dual SOIC/TSSOP/DFN, SOT, quad QFP/QFN, BGA), an exposed pad, the courtyard, silkscreen kept clear of the copper with a pin-1 dot, a fab outline with a pin-1 chamfer, and a 3D body box when the height is given. |+| `kicad_generate_body` | Make a part's 3D body from its package family and datasheet dimensions (chip, SOIC, QFN, QFP, BGA, SOT-23, DFN, MELF, electrolytic can, crystal, pin header and others), to IPC-7351 proportions, optionally with a marking on its top; written as a STEP file and, given a footprint, attached to it. | | `kicad_get_settings` | Read the bridge's user-visible settings (overlay badges, ...). | | `kicad_height_check` | Will it fit the enclosure? Each part's height from its 3D model (top and bottom), the parts over a height limit board-wide or under a lid feature in a region, and bodies that collide or come closer than a gap. | | `kicad_impedance` | The track width for a target impedance (and the pair width and gap for a differential target) on each copper layer, from the board's own stack-up; optionally the width or pair rules for kicad_custom_rules. |@@ -536,6 +537,7 @@ Every verb of this build (286, `kicad_describe` is the live catalog with inputs, | `kicad_place_footprint` | Deterministically place a footprint into a board preview. | | `kicad_place_on_sch` | Place one symbol or a ';' list of symbols from a .kicad_sym on ONE new sheet, sized from the measured parts (12.7 mm gaps, 15.24 mm margins, A4 at least), each with the next free designator and its name as the value; fills the title block. | | `kicad_placement_check` | A placement review before routing: parts whose pads and 3D bodies come closer than a margin on the same side, parts off the board or over its edge, pads too close to the edge for assembly and depanelling, and parts on a mounting hole. |+| `kicad_plan_route` | Plan a path for one net between two pads without changing the board: a grid search around the existing copper that keeps the clearance rules, on the allowed copper layers, with vias where they help. Answered as kicad_route_net's own arguments. | | `kicad_plugin_diagnose` | Retired: reports that no plugin is expected and whether a leftover Python plugin payload is still on disk. | | `kicad_prewarm` | Get this machine ready for a fast first KiCad call: detect KiCad, seed its first-run config, mark its setup wizard done, repair its taskbar shortcuts. Idempotent. | | `kicad_progress` | What this bridge is doing RIGHT NOW: one progress block per in-flight phase for THIS caller (stepLabel, percent, etaSec, confidence, blockedBy, stepShot), plus the machine's timing history. |