← Commit history

1.0.88: 1.0.88: KiCad 10's design variants (the standard's variants).

Colby Knox ·e569a0b5e7 ·11d ago ·parent b960256
- **kicad_variants (new):** which parts are fitted on which build, on the project's own files. - Lists every variant with its not-fitted parts, its changed fields (alternates) and its description. - Makes or changes a variant: marks parts not fitted, or puts them back. Describes or removes one. - It writes what KiCad 10 writes: the variant list in the .kicad_pro, and each part's variation inside its instance on whichever sheet holds it. A .bak is kept beside every file written. - KiCad reads the result back: kicad-cli's netlist for the variant must mark exactly those parts DNP, or the call fails with verify_failed. - Unlike Fusion's read-only list, KiCad's verb edits variants. Field changes (another Value in a variant) are listed but made in KiCad's own variant editor. - Checked on a copy of KiCad's pic_programmer demo (two sheets): - Lite with P1, C1 and R1 not fitted: KiCad marks the same three DNP. - R1 put back: C1 and P1 are left. - A second variant with D1: matches. - Lite removed: only Pro is left in the project. - kicad-cli's BOM for Lite leaves out C1 and P1. - **kicad_sch_zoom (new; the standard's sch_zoom):** finds parts on a schematic sheet and frames them. It's the schematic half of cross-probing; kicad_zoom_to is the board half. - Answers where each part sits (mm) and which ones the sheet doesn't place. - The proof frame is KiCad's own plot of the sheet, cropped to the parts with a margin and each part outlined. - KiCad 10's Schematic Editor has no API, so the frame is a plot of the saved sheet and the open editor's view isn't moved. - Checked: C1 on the pic_programmer root sheet, and U1, P2, C6 and C7 together on its pic_sockets sub-sheet, each outlined in the plot.
1 file changed +5−3
README.md+5−3
@@ -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 (298, `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 (300, `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) @@ -276,7 +276,7 @@ Every verb of this build (298, `kicad_describe` is the live catalog with inputs, | `kicad_pour_state` | Every copper pour (zone) on every layer with the copper KiCad actually poured: filled area per zone and per layer, islands, and the zones that poured nothing. | | `kicad_routing_state` | Inspect the live editor: pads, copper, revision and KiCad-measured net connectivity. | -**Schematic** (40)+**Schematic** (41)  | Verb | What it does | |---|---|@@ -319,6 +319,7 @@ Every verb of this build (298, `kicad_describe` is the live catalog with inputs, | `kicad_sch_trace_point` | Everything electrically connected at a point on a sheet: the wires, labels, pins, junctions, sheet pins and no-connect flags there, and for each net they belong to the whole net (pins, labels, power symbols, wires) with its name. | | `kicad_sch_update_from_library` | Re-embed the lib_symbols definitions of a .kicad_sch from their libraries (all, or the listed lib ids) and report which changed (edits the file on disk). | | `kicad_sch_wire` | Draw a wire polyline on a .kicad_sch (one wire segment per pair of points; edits the file on disk). |+| `kicad_sch_zoom` | Find parts on a schematic sheet and frame them: where each sits (mm), which are not on the sheet, and a proof frame: KiCad's own plot of the sheet cropped to the parts, each outlined. The schematic half of cross-probing (kicad_zoom_to is the board half). | | `kicad_update_pcb` | *standard* → `kicad_update_pcb_from_schematic` |  **Symbols, footprints and libraries** (32)@@ -468,7 +469,7 @@ Every verb of this build (298, `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** (124)+**Windows, editors, install and the bridge** (125)  | Verb | What it does | |---|---|@@ -591,6 +592,7 @@ Every verb of this build (298, `kicad_describe` is the live catalog with inputs, | `kicad_trace_net` | Every pin on one named net (read-only). | | `kicad_uninstall` | Remove everything this bridge created: plugin payload, Adom symbol/footprint/3D libraries and their lib-table rows, Mesa fallback DLLs, discovery files, demo and staging projects. Never KiCad itself, never user projects. | | `kicad_upgrade` | Install/upgrade KiCad via the official installer (agent installs for the user). |+| `kicad_variants` | KiCad 10's design variants (which parts are fitted on which build): list every variant with its not-fitted parts and changed fields, make or change one with not-fitted parts (or put parts back), or remove one, on the project's schematic files; KiCad's own netlist for the variant reads the result back. | | `kicad_verb_times` | Measured per-verb run times ON THIS MACHINE: count, p50, p90, max, last, failures from the append-only run log, sorted by p90 descending. | | `kicad_via_fence` | A via fence for EMC: a row of ground vias on both sides of RF or fast nets' tracks, and/or round the board edge, at a pitch from the frequency (lambda/20 in FR-4) or given; each via clear of other copper and pads, other vias, via keepouts and the edge. Live as one Undo step after a DRC preflight, else written into the closed file. | | `kicad_window_info` | Report geometry/state for open KiCad windows (auto-expires benign OpenGL dialogs). |