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.53
9 files changed
+48−17
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.52/altium-bridge-manifest.json"}'+adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.53/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.52/altium-bridge-manifest.json"}'+adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.53/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.52",- "url": "https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.52/altium-bridge-v0.0.52.zip",- "sha256": "4b51a8e71f221cdb601e45c65a1729a7ed3e09fbcedb7c4295a9cfb7f4c25834", "size": 45051, "released_at": "2026-08-12T20:34:35Z" }+{ "manifest_version": 1, "name": "altium", "version": "0.0.53",+ "url": "https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.53/altium-bridge-v0.0.53.zip",+ "sha256": "4ea105a1203a7f78a96c9a6fe0444856c1ddc7bfa694101ca6392366df45fd60", "size": 45367, "released_at": "2026-08-12T20:35:44Z" }
altium-bridge-v0.0.53.zipadded⋯ 1 unchanged line ⋯
bridge-src/BRIDGE_VERSION+1−1@@ -1 +1 @@-0.0.52+0.0.53
bridge-src/addin/AdomAltium/AdomAltium.pas+29−2@@ -1988,7 +1988,7 @@ var layers : TStringList; { "<name>=<id>" } remaps : TStringList; { "<srcname>=<dstname>" } widths : TStringList; { "<layername>=<microns>" }- i, li, dstId, moved, widthed, fpCount : Integer;+ i, li, dstId, moved, widthed, fpCount, renamed : Integer; nm, s, item, a, b, LayerDump, PrimDump : String; pos1, pos2 : Integer; SavedOK : Boolean;@@ -2014,7 +2014,7 @@ begin layers := TStringList.Create; remaps := TStringList.Create; widths := TStringList.Create;- moved := 0; widthed := 0; fpCount := 0; LayerDump := ''; PrimDump := '';+ moved := 0; widthed := 0; fpCount := 0; renamed := 0; LayerDump := ''; PrimDump := ''; try GStage := 'enumerate layers'; for li := 1 to 100 do@@ -2063,6 +2063,32 @@ begin end; end; + { If the destination layer already exists (a house library), primitives are+ MOVED onto it below. If it does not (a freshly imported library, whose+ mechanical layers still carry KiCad's names), there is nothing to move to --+ so RENAME the source layer instead. Same end state, and it preserves every+ primitive's position rather than relying on a layer-to-layer move. }+ GStage := 'rename source layers where no destination exists';+ for i := 0 to remaps.Count - 1 do+ begin+ a := remaps.Names[i];+ b := remaps.Values[a];+ if (a <> '') and (b <> '') then+ if (layers.Values[b] = '') and (layers.Values[a] <> '') then+ begin+ li := StrToIntDef(layers.Values[a], -1);+ if li > 0 then+ begin+ try+ Board.LayerObject[li].LayerName := b;+ layers.Add(b + '=' + IntToStr(li));+ Inc(renamed);+ except+ end;+ end;+ end;+ end;+ GStage := 'remap'; PCBServer.PreProcess; for i := 0 to PcbLib.ComponentCount - 1 do@@ -2139,6 +2165,7 @@ begin RespOk(', "footprints": ' + IntToStr(fpCount) + ', "movedPrimitives": ' + IntToStr(moved) + ', "widthsSet": ' + IntToStr(widthed) ++ ', "layersRenamed": ' + IntToStr(renamed) + ', "layersSeen": ' + JStr(LayerDump) + ', "primLayers": ' + JStr(PrimDump) + ', "saved": ' + SavedStr);
bridge-src/bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "altium", "displayName": "Altium Bridge",- "version": "0.0.52",+ "version": "0.0.53", "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.",
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-desktop-altium-bridge",- "version": "0.0.52",+ "version": "0.0.53", "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.52",+ "version": "0.0.53", "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?" } ]-}+}