app
adom-desktop-altium-bridge
Public Unreviewedby barrett-land
Adom Desktop bridge for Altium Designer — build and edit file-based symbol/footprint/Integrated libraries with LCSC/JLCPCB part numbers attached, and generate batch outputs (STEP, PDF, Gerber, BOM, CPL) from an OutJob, by driving Altium via DelphiScript.
← Commit history
Publish 0.0.55
11 files changed
+30−38
README.md+1−1@@ -11,7 +11,7 @@ verbs. ```bash adom-wiki pkg install barrett-land/adom-desktop-altium-bridge # the skill, in the container-adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.54/altium-bridge-manifest.json"}'+adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.55/altium-bridge-manifest.json"}' adom-desktop --ai-thread "<your thread>" altium_ping '{}' ```
SKILL.md+1−1@@ -12,7 +12,7 @@ forwards work into the running GUI as DelphiScript via `X2.EXE`. ## Install ```bash-adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.54/altium-bridge-manifest.json"}'+adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.55/altium-bridge-manifest.json"}' adom-desktop --ai-thread "<your thread>" altium_ping '{}' # -> {"altiumInstalled": true, "version": "..."} ```
altium-bridge-manifest.json+3−3@@ -1,3 +1,3 @@-{ "manifest_version": 1, "name": "altium", "version": "0.0.54",- "url": "https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.54/altium-bridge-v0.0.54.zip",- "sha256": "52814d564cea5b270efaf06d7c4f4f30cc61fcc2996a1ddde3a4f4bd823da8f2", "size": 45070, "released_at": "2026-08-12T20:37:09Z" }+{ "manifest_version": 1, "name": "altium", "version": "0.0.55",+ "url": "https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.55/altium-bridge-v0.0.55.zip",+ "sha256": "9c5ca279b70390bbb163defacc510bf3f2e644a8caf8d517d7abb559923a7696", "size": 45119, "released_at": "2026-08-12T20:55:04Z" }
altium-bridge-v0.0.55.zipadded⋯ 1 unchanged line ⋯
bridge-src/BRIDGE_VERSION+1−1@@ -1 +1 @@-0.0.54+0.0.55
bridge-src/__pycache__/server.cpython-312.pyc⋯ 1 unchanged line ⋯
bridge-src/addin/AdomAltium/AdomAltium.pas+9−21@@ -2095,27 +2095,15 @@ begin end; end; - { reset the stroke width for whatever layer it now sits on.- Tracks expose Width, arcs expose LineWidth, and pads/regions- expose neither -- so try in turn rather than switch on an- ObjectId constant. }- if (nm <> '') and (widths.Values[nm] <> '') then- begin- li := StrToIntDef(widths.Values[nm], 0);- if li > 0 then- begin- try- Prim.Width := MilsToCoord(li / 25.4);- Inc(widthed);- except- try- Prim.LineWidth := MilsToCoord(li / 25.4);- Inc(widthed);- except- end;- end;- end;- end;+ { NOTE: stroke width is deliberately NOT set here.+ Prim is an IPCB_Primitive, which declares no Width/LineWidth,+ and DelphiScript resolves property names at COMPILE time --+ so `try Prim.Width := ...` does not fail at runtime, it fails+ to compile and takes the whole script engine down. Setting+ widths needs a typed IPCB_Track / IPCB_Arc variable and the+ matching ObjectId test, verified against a known-good Altium+ script rather than guessed. Layer remapping is the useful+ half and it works; widths are a separate follow-up. } Prim := It.NextPCBObject; end;
bridge-src/bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "altium", "displayName": "Altium Bridge",- "version": "0.0.54",+ "version": "0.0.55", "description": "Drives Altium Designer from a container: build, clone and edit file-based symbol/footprint/Integrated libraries with LCSC/JLCPCB part numbers attached, and generate batch outputs (STEP, PDF, Gerber, BOM, CPL) from an OutJob. Pairs with the container-side altium-jlc orchestrator (adom-jlcpcb + chip-fetcher).", "homepage": "https://wiki.adom.inc/adom/adom-desktop-altium-bridge", "author": "Adom Inc.",
bridge-src/server.py+2−2@@ -186,8 +186,8 @@ def handle_remap_fp_layers(args: dict) -> dict: KiCad's 0.12mm silk and 0.05mm courtyard both arrive at Altium's 10 mil default. remap = "SrcName|DstName;..." matched by layer NAME- widths = "LayerName|microns;..." applied after the remap (microns keep it integral)- footprint = a name, or '' / '*' for the whole library."""+ footprint = a name, or '' / '*' for the whole library.+ Stroke widths are NOT reset here -- see the note in AdomAltium.pas.""" keys = ("pcblib", "footprint", "remap", "widths") return addin_call("remap_fp_layers", {k: args.get(k) for k in keys}, timeout=args.get("timeout", 240))
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-desktop-altium-bridge",- "version": "0.0.54",+ "version": "0.0.55", "type": "app", "description": "Adom Desktop bridge for Altium Designer: file-based symbol/footprint/IntLib authoring with LCSC/JLCPCB part numbers, Gerber/BOM/CPL batch output, and an in-process .NET extension adding parameterized headless verbs - STEP export with hole and copper options, and KiCad import with no wizard.", "tags": [
page.json+11−7@@ -1,8 +1,8 @@ { "slug": "adom-desktop-altium-bridge",- "version": "0.0.54",+ "version": "0.0.55", "type": "app",- "description": "Adom Desktop bridge for Altium Designer \u2014 build and edit file-based symbol/footprint/Integrated libraries with LCSC/JLCPCB part numbers attached, and generate batch outputs (STEP, PDF, Gerber, BOM, CPL) from an OutJob, by driving Altium via DelphiScript.",+ "description": "Adom Desktop bridge for Altium Designer: file-based symbol/footprint/IntLib authoring with LCSC/JLCPCB part numbers, Gerber/BOM/CPL batch output, and an in-process .NET extension adding parameterized headless verbs - STEP export with hole and copper options, and KiCad import with no wizard.", "tags": [ "app", "adom-desktop",@@ -18,6 +18,7 @@ }, "needs_sudo": false, "hero": {+ "type": "image", "path": "docs/hero.png" }, "author": {@@ -25,13 +26,16 @@ "email": "[email protected]" }, "discovery_triggers": [- "add a part to my altium library", "drive altium from claude", "altium bridge",- "export step from altium",+ "export step from altium headless",+ "add a part to my altium library",+ "altium extension",+ "install altium extension",+ "altium step export", "run an altium outjob",- "build an altium footprint",- "altium symbol library"+ "import kicad into altium",+ "altium kicad importer" ], "discovery_pitch": "Use when the user wants Claude to author or edit Altium libraries, or to generate STEP/PDF/Gerber/BOM/CPL from an Altium board on their Windows machine.", "sample_prompts": [@@ -48,4 +52,4 @@ "prompt": "Is the Altium bridge connected and what version is it?" } ]-}+}