skill
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.
← Commit history
fusion-lane: tool_update and import_step proposed (#29, agreed by altium-lane); altium-lane added to export_3d, import_design, edit_pours
2 files changed
+98−5
tools/equivalents/fusion360.json+10@@ -564,5 +564,15 @@ "fusion_change_pours", "partial", "each pour's minimum width (EAGLE's pen width) and clearance (isolate), refilled and read back; thermals, rank and net are not changed yet"+ ],+ "tool_update": [+ "fusion_apply_fusion_update",+ "partial",+ "apply takes the update Fusion offers in the background when auto-update is on; auto through fusion_set_auto_update; check is read from Fusion's own update offer"+ ],+ "import_step": [+ "fusion_import_step",+ "partial",+ "the STEP opens as a NEW Fusion design; it is not yet placed with the board's 3D PCB" ] }
tools/proposed/fusion-lane.json+88−5@@ -342,7 +342,8 @@ "since": "0.28.1", "agreedBy": [ "standard-lane",- "kicad-lane"+ "kicad-lane",+ "altium-lane" ] }, {@@ -350,7 +351,7 @@ "tier": "native", "summary": "Bring a design from another tool into a NEW native design with the parts instantiated: an EAGLE .sch with its paired .brd, a KiCad project, or an Altium project, through the tool's own importer.", "input": {- "format": "the source tool, an open list (eagle, kicad, altium, pads, cadstar, fabmaster, pcad, ...); required",+ "format": "the source tool, an open list (eagle, kicad, altium, pads, orcad, cadstar, fabmaster, pcad, ...); required", "filePath": "the schematic or project file (required)", "boardPath": "the paired board file, when the format keeps it separate", "name": "the new design's name"@@ -382,7 +383,8 @@ "since": "0.28.1", "agreedBy": [ "standard-lane",- "kicad-lane"+ "kicad-lane",+ "altium-lane" ] }, {@@ -402,7 +404,8 @@ }, "hint": "pour_state lists the pours and their ids first. One undo step; a pour that refills to nothing is reported, not hidden.", "pitfalls": [- "Changing the net of a pour reconnects copper: run_drc afterwards."+ "Changing the net of a pour reconnects copper: run_drc afterwards.",+ "A tool that keeps a pour's clearance and thermals in its design rules (Altium) writes rules scoped to that pour rather than changing the pour itself; the reply says which." ], "related": [ "pour_state",@@ -425,7 +428,87 @@ "since": "0.28.1", "agreedBy": [ "standard-lane",- "kicad-lane"+ "kicad-lane",+ "altium-lane"+ ]+ },+ {+ "name": "tool_update",+ "tier": "app",+ "summary": "The tool's own updates: check whether one is offered, apply it in the background when no work would be lost, or read or set automatic updating.",+ "input": {+ "action": "check | apply | auto (required)",+ "on": "bool (auto): turn automatic updating on or off; omitted, the setting is read"+ },+ "output": {+ "current": "the installed version",+ "offered": "the version offered, or null",+ "applied": "bool",+ "auto": "bool",+ "needsRestart": "bool"+ },+ "hint": "apply never closes unsaved work: it refuses with the documents that need saving. Updating the tool is the user's machine changing, so say so before apply.",+ "pitfalls": [+ "An update offered only through the tool's own dialog is read from that dialog and answered in the background, never left open.",+ "apply refuses while documents are unsaved, and an installer that needs a person at the Windows UAC prompt answers needs_user with what to approve."+ ],+ "related": [+ "readiness",+ "diagnostics",+ "install"+ ],+ "example": {+ "action": "check"+ },+ "longRunning": true,+ "timeoutSeconds": 600,+ "proposedBy": "fusion-lane",+ "since": "0.28.1",+ "agreedBy": [+ "standard-lane",+ "altium-lane"+ ]+ },+ {+ "name": "import_step",+ "tier": "native",+ "summary": "Bring a STEP model in as 3D geometry placed with the board: an enclosure, a bracket or a mating part, for fit and clearance checks. Not a footprint's own model (that is add_body).",+ "input": {+ "filePath": "the STEP on the tool's machine (required)",+ "at": "[x, y, z] mm relative to the board origin, default [0, 0, 0]",+ "rotation": "[rx, ry, rz] degrees",+ "name": "what to call it"+ },+ "output": {+ "id": "the placed model",+ "bboxMm": "[x0, y0, z0, x1, y1, z1]",+ "bodies": "int"+ },+ "hint": "height_check and the bodies companion can then measure the board against it.",+ "pitfalls": [+ "A tool that can only open the STEP as a separate design answers partial and says so."+ ],+ "related": [+ "add_body",+ "height_check",+ "bodies",+ "export_step"+ ],+ "example": {+ "filePath": "C:/mech/enclosure.step",+ "at": [+ 0,+ 0,+ -3+ ]+ },+ "longRunning": true,+ "timeoutSeconds": 300,+ "proposedBy": "fusion-lane",+ "since": "0.28.1",+ "agreedBy": [+ "standard-lane",+ "altium-lane" ] } ]