← Commit history

1.0.94: 1.0.94: the standard's export_3d, import_design, edit_pours, tool_update and import_step, and its schematic part verbs in their own arguments (standard 0.29.5).

Colby Knox ·bbe8a7e710 ·11d ago ·parent 2cd78c4
- **kicad_export_3d:** writes the board's 3D model through kicad-cli in stl, glb, vrml, ply, brep, xao, u3d, stpz or 3dpdf. - components:false exports the bare board. copper, silkscreen and soldermask add those layers. - obj, 3mf, iges and other formats KiCad can't write are refused by name (not_supported), with what to use instead. - **kicad_import_design:** brings an EAGLE, Altium, PADS, CADSTAR, Fabmaster, P-CAD or SolidWorks PCB board into a new KiCad project through kicad-cli's importer. The reply counts the parts and nets and gives the importer's warnings. - kicad-cli imports the board only, and the reply says so (schematicImported: false). The schematic comes in through KiCad's File > Import > Non-KiCad Project. - Formats KiCad has no importer for, such as OrCAD, are refused by name. - **kicad_edit_pours:** changes existing pours in place: clearance, minimum width, thermal reliefs (on/off, spoke, gap) or the pad connection, priority, net, and whether islands are kept. Each pour comes back with its settings before and after. - A closed board is written (a .adom-bak is kept) and refilled by kicad-cli, and pourState is the copper after the refill. - On a board open in the PCB editor, each zone KiCad holds is updated in place through its API (UpdateItems: id, outline and every other setting kept) as one Undo step. The board is then refilled, and the settings are read back from KiCad (verified). - expectedRevision is optional, and KiCad's revision or pour_state's are both accepted. - **kicad_pour_state:** each pour now carries its id (the zone's uuid), which kicad_edit_pours takes. - **kicad_sch_place_part, kicad_sch_connect, kicad_sch_edit, kicad_sch_swap_part:** the standard's schematic part verbs, under their own names and with their own arguments. They work alone and as kicad_sch_batch ops, and KiCad's own arguments still work too. - Arguments: positions in mil from the grid point at the sheet's lower-left corner (y up, landing on KiCad's 50 mil grid), parts by designator, and a library as a .kicad_sym path or a table nickname plus the symbol's name. - sch_connect takes connections [{designator, pin, net, kind: label|power|wire|noerc|port}]. sch_edit takes edits [{designator, action: move|moveBy|rotate|designator|comment|delete}]. - Each list is one write, all or nothing. The reply is in the standard's terms: connected/applied, failed, results, atMil, endMil. - sch_swap_part wires each pin the new symbol puts somewhere else back to where the old pin ended (pinsJoined). - **kicad_sch_connect_to_net:** kind "wire" draws the stub alone, with no label. - **kicad_sch_replace_symbol:** joinMoved:true rejoins moved pins. - **kicad_tool_update:** the standard's tool_update. - check compares the installed KiCad with the latest stable (current, offered). - apply installs the offered version with the official installer, per user with no UAC. It refuses while KiCad is open and lists the open documents, unsaved ones marked. - auto reads or sets KiCad's own update check. - **kicad_import_step:** answers not_supported with the reason: KiCad places 3D models only as a footprint's own model. It suggests kicad_add_body or kicad_export_step instead.
1 file changed +13−4
README.md+13−4
@@ -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 (319, `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 (328, `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 (319, `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** (41)+**Schematic** (45)  | Verb | What it does | |---|---|@@ -289,12 +289,14 @@ Every verb of this build (319, `kicad_describe` is the live catalog with inputs, | `kicad_sch_bus_entry` | Add a 45-degree bus entry (the short diagonal between a member wire and a bus) at a point (edits the file on disk). | | `kicad_sch_check` | Connectivity and layout check of a sheet from the file: dangling wire ends, floating labels, unconnected non-passive pins, nets that reach only one pin, distinct net names shorted together, no-connect flags on wired pins, and with overlaps:true symbol, label and text collisions (symbol body and pin extents). Each finding has a location and a fix. | | `kicad_sch_components` | List the placed symbols of a .kicad_sch: reference, value, footprint, lib id, every unit with position, rotation and mirror, and every field. |+| `kicad_sch_connect` | *standard* → `kicad_sch_connect_to_net` | | `kicad_sch_connect_pins` | Wire two pins by Ref.Pin with a horizontal and vertical (L-shaped) route, adding junction dots where the route makes a T with existing wires (edits the file on disk). | | `kicad_sch_connect_to_bus` | Fan a set of pins onto a bus: per pin a wire to just short of the bus, a 45-degree bus entry onto it, and a member label (D0, D1 ...) on the wire (edits the file on disk). | | `kicad_sch_connect_to_net` | Connect one or many pins to a named net: a short stub wire away from the body plus a net label (local, global, hierarchical) or a power symbol at its end (edits the file on disk). | | `kicad_sch_create` | Create a blank KiCad 10 schematic (.kicad_sch) with a paper size and title block; optionally add it to an existing project as a hierarchical sheet of the root, or make it the root of a new project. | | `kicad_sch_delete` | Delete any top-level item (symbol, wire, label, junction, sheet ...) from a .kicad_sch by uuid, every unit of a symbol by reference, or labels by name (edits the file on disk). | | `kicad_sch_delete_wire` | Delete wires (or bus segments) by uuid, by their two endpoints, or every wire through a point, and prune junction dots that no longer join three or more items (edits the file on disk). |+| `kicad_sch_edit` | *standard* → `kicad_sch_set_property` | | `kicad_sch_edit_label` | Edit net labels on a .kicad_sch: rotate (with the justify KiCad pairs with the angle), move to a point or by a delta, rename, or move every label of a net by (dx, dy) (edits the file on disk). | | `kicad_sch_fix_connectivity` | Snap near-miss wire ends onto the pin, label, sheet pin or wire end they almost touch (within a tolerance). dryRun (the default) lists the moves; dryRun:false writes them. | | `kicad_sch_hierarchy` | The sheet tree of a design, recursively: each sheet's name, file, uuid, instance path, page, position, size and pins; renumber:true reassigns page numbers depth-first (root 1). |@@ -306,6 +308,7 @@ Every verb of this build (319, `kicad_describe` is the live catalog with inputs, | `kicad_sch_no_connect` | Put no-connect flags on pins of a .kicad_sch (an intentionally open pin: a spare GPIO, an unused connector pin) so ERC stops reporting them, or remove flags (edits the file on disk). | | `kicad_sch_page` | Read or set a schematic's page: paper size (A5 to A0, A to E, USLetter, USLegal, USLedger, custom mm), orientation and title block (title, date, rev, company, comments 1 to 9). | | `kicad_sch_pins` | Every pin's absolute (x, y) on a .kicad_sch for the given references (rotation and mirror applied), with number, name, electrical type, outward direction, and the wires, labels and net touching it. |+| `kicad_sch_place_part` | *standard* → `kicad_sch_place_symbol` | | `kicad_sch_place_symbol` | Place a library symbol on a .kicad_sch (edits the file on disk; the lib_symbols entry is copied from the library when the sheet lacks it). | | `kicad_sch_replace_symbol` | Change the library symbol of a placed part (lib id), keeping its units, fields and position; the new lib_symbols entry is copied from the library (edits the file on disk). | | `kicad_sch_reset_fields` | Put a symbol's Reference and Value (or the named fields) back at the library symbol's offsets, angle and justify, through the unit's rotation and mirror (edits the file on disk). |@@ -315,6 +318,7 @@ Every verb of this build (319, `kicad_describe` is the live catalog with inputs, | `kicad_sch_sheet_pins` | A sheet's pins: list, add, edit (rename, shape, move along an edge), delete; import:true adds a pin for every hierarchical label in the child not yet on the sheet; validate:true reports labels without pins, pins without labels and shape mismatches. | | `kicad_sch_sheet_symbol` | *standard* → `kicad_sch_sheet` | | `kicad_sch_split_wire` | Split the wire passing through a point into two wires there, and put a junction dot at the cut (edits the file on disk). |+| `kicad_sch_swap_part` | *standard* → `kicad_sch_replace_symbol` | | `kicad_sch_text` | Add free text (a note, a title, a design comment) to a .kicad_sch with size, angle, justify, bold and italic (edits the file on disk). | | `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). |@@ -430,12 +434,13 @@ Every verb of this build (319, `kicad_describe` is the live catalog with inputs, | `kicad_set_design_rules` | Stage a fab's .kicad_dru next to a board and run DRC with it. | | `kicad_zone_state` | Read every zone on the live board with KiCad's filled copper area per layer and the coverage. | -**Checks, exports and manufacturing** (27)+**Checks, exports and manufacturing** (28)  | Verb | What it does | |---|---| | `kicad_errors` | Every KiCad error/warning DIALOG on screen, with its exact text (read-only, background). | | `kicad_estimate_cost` | The board's numbers in the shape a quote tool needs (size, layers, thickness, min track/space/drill, holes, SMD/THT parts and joints, unique parts) plus a rough JLCPCB-style price table with every assumption stated. |+| `kicad_export_3d` | Export the board's 3D model through kicad-cli in a format other than STEP: stl, glb, vrml, ply, brep, xao, u3d, stpz or 3dpdf (the standard's export_3d). obj, 3mf, iges and other formats KiCad cannot write are refused by name. | | `kicad_export_bom_csv` | Export a BOM CSV from a schematic via kicad-cli. | | `kicad_export_dxf` | Export board layers to DXF via kicad-cli, one .dxf per layer (mechanical outline, panel drawings, laser stencils). | | `kicad_export_fab_package` | One-call fab package: Gerbers and drill, a BOM grouped from the board (value + footprint + MPN), the CPL, a README listing every file, all zipped. fab:"jlcpcb" writes JLCPCB's BOM and CPL columns (LCSC part field included). |@@ -471,7 +476,7 @@ Every verb of this build (319, `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** (142)+**Windows, editors, install and the bridge** (146)  | Verb | What it does | |---|---|@@ -519,6 +524,7 @@ Every verb of this build (319, `kicad_describe` is the live catalog with inputs, | `kicad_dismiss_dialogs` | Programmatically expire KiCad dialogs (auto-clears the benign OpenGL/software-render notice; {all:true} clears every dialog). | | `kicad_doc_params` | Read or set a sheet's document parameters: KiCad's title block (Title, Revision, Date, Company, Comment1 to Comment9). | | `kicad_edit_parts` | *standard* → `kicad_edit_footprint` |+| `kicad_edit_pours` | Change existing copper pours (zones) in place without redrawing them: clearance, minimum width, thermal reliefs (on/off, spoke width, gap) or the pad connection, priority, the net, and whether islands are kept; then refill (the standard's edit_pours). | | `kicad_enable_software_opengl` | LAST-RESORT fallback: deploy Mesa llvmpipe software OpenGL into KiCad's bin so it renders on a GPU-less host (Hyper-V/RDP/headless). SLOW (CPU). Never suggest proactively. | | `kicad_eval` | Run a Python snippet with KiCad's pcbnew module, headless: with filePath the board is loaded as `board`; set `result` to return a value as JSON. | | `kicad_extension_ping` | Ping the bridge's extension inside the tool (the standard's extension_ping). Not in KiCad: KiCad needs no extension installed inside it: its IPC API is built in, so there is nothing to install, ping or keep a receipt for. |@@ -532,6 +538,8 @@ Every verb of this build (319, `kicad_describe` is the live catalog with inputs, | `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. |+| `kicad_import_design` | Bring a board from another tool into a NEW KiCad project through kicad-cli's importer: eagle, altium, pads, cadstar, fabmaster, pcad or solidworks (the standard's import_design). The source files are never changed. |+| `kicad_import_step` | Place a STEP as free 3D geometry with the board (the standard's import_step). Not in KiCad: KiCad places 3D models only as a footprint's own model. | | `kicad_ipc_api` | Read or flip KiCad's IPC API server switch (Preferences > Plugins) that live routing needs. | | `kicad_jlcpcb_order` | A JLCPCB order in one call: the board checked against JLCPCB's fab limits, the Gerbers and drill zipped the way JLCPCB's order page takes them, the JLCPCB BOM and pick-and-place (CPL), the assembly-tier check and the order-form values, in one folder with every issue in one list. | | `kicad_launch` | Cold-start KiCad (project manager) when nothing is running. |@@ -608,6 +616,7 @@ Every verb of this build (319, `kicad_describe` is the live catalog with inputs, | `kicad_teardrops` | Add (or remove) teardrops with KiCad's own Edit > Edit Teardrops on the board open in the PCB editor: on vias, PTH pads and SMD pads, optionally track to track, for the whole board or the selection; teardrops counted before and after. | | `kicad_test_board` | Place one footprint, or a ';' list, from a library on ONE board: a NEW board (wMm x hMm outline) when pcbPath does not exist, APPENDED right of the parts already there when it does; optionally pad nets on the last part. | | `kicad_thermal_vias` | A thermal via grid in a part's exposed pad (the ground or thermal pad under a QFN, DFN, PowerPAD or regulator): centred, inset from the pad's edge, on the pad's net, sized by the project's Default net class. Live as one Undo step after a DRC preflight, else written into the closed file. |+| `kicad_tool_update` | KiCad's own updates (the standard's tool_update): check whether a newer stable KiCad is offered, apply it with the official installer when KiCad is closed, or read or set KiCad's own automatic update check. | | `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). |