← Commit history
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.48/altium-bridge-manifest.json"}'+adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.49/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.48/altium-bridge-manifest.json"}'+adom-desktop bridge_install '{"manifestUrl":"https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.49/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.48",-  "url": "https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.48/altium-bridge-v0.0.48.zip",-  "sha256": "f2fd005dc9efa0715751cedb00193982ef6d562046438674d8382a06bb341792", "size": 42219, "released_at": "2026-08-12T17:28:59Z" }+{ "manifest_version": 1, "name": "altium", "version": "0.0.49",+  "url": "https://wiki.adom.inc/download/barrett-land/adom-desktop-altium-bridge/0.0.49/altium-bridge-v0.0.49.zip",+  "sha256": "309bc3d30a134c6bdba5422a71cf3eca61ea6ec7ed3da0f0e985cad741f3f221", "size": 42499, "released_at": "2026-08-12T17:39:08Z" }
altium-bridge-v0.0.49.zipadded
⋯ 1 unchanged line ⋯
bridge-src/BRIDGE_VERSION+1−1
@@ -1 +1 @@-0.0.48+0.0.49
bridge-src/addin/AdomAltium/AdomAltium.pas+23−8
@@ -1464,8 +1464,8 @@ end;        default face at index 1; pass an explicit id to target a different table slot. ---- } procedure CmdSetTextStyle; var-    SchPath, CompRef, SavedStr : String;-    FontId, Colr, PinColr, BodyColr, nTxt, nCmp, nPin, nBody : Integer;+    SchPath, CompRef, SavedStr, BodyStr : String;+    FontId, Colr, PinColr, BodyColr, UseBody, cPins, nTxt, nCmp, nPin, nBody : Integer;     Lib   : ISch_Lib;     Cmp   : ISch_Component;     It    : ISch_Iterator;@@ -1474,7 +1474,7 @@ var     G     : ISch_GraphicalObject;     names : TStringList;     i     : Integer;-    SavedOK : Boolean;+    SavedOK, AutoBody : Boolean; begin     SchPath := Req.Values['schlib'];     CompRef := Req.Values['component'];@@ -1483,7 +1483,10 @@ begin     { Altium draws pins BLACK (0) by default, not the navy used for parameter text. }     PinColr := StrToIntDef(Req.Values['pincolor'], 0);     { Altium draws symbol bodies BLUE; KiCad's maroon imports as 132. -1 = leave alone. }-    BodyColr := StrToIntDef(Req.Values['bodycolor'], 16711680);+    BodyStr  := Req.Values['bodycolor'];+    { 'auto' (the default) picks per component: blue for a 2-pin passive, black for an IC. }+    AutoBody := (BodyStr = '') or (BodyStr = 'auto') or (BodyStr = 'AUTO');+    BodyColr := StrToIntDef(BodyStr, 16711680);     if SchPath = '' then begin RespErr('missing schlib'); Exit; end;      GStage := 'open schlib';@@ -1551,6 +1554,7 @@ begin                   the mode is Default, but are set so the pin is still right if anyone                   later flips it to Custom. }                 GStage := 'restyle pin text';+                cPins := 0;                 It := Cmp.SchIterator_Create;                 It.AddFilter_ObjectSet(MkSet(ePin));                 try@@ -1570,7 +1574,7 @@ begin                         Pin.Color                     := PinColr;                         Pin.Name_CustomColor          := PinColr;                         Pin.Designator_CustomColor    := PinColr;-                        Inc(nPin);+                        Inc(nPin); Inc(cPins);                         Pin := It.NextSchObject;                     end;                 finally@@ -1584,7 +1588,18 @@ begin                   instantly distinguishable from every other symbol on the sheet.                   Pass bodycolor=-1 to leave graphics untouched, for a symbol whose                   colours are deliberate (an LED triangle, a polarity mark). }-                if BodyColr >= 0 then+                { Passive or IC? Altium's passives are drawn BLUE; an IC outline reads+                  better BLACK. Pin count is the discriminator: a passive is 2-pin+                  (resistor, capacitor, inductor, diode), anything wider is an IC.+                  Pass an explicit bodycolor to override, or -1 to skip entirely. }+                if AutoBody then+                begin+                    if cPins <= 2 then UseBody := 16711680 else UseBody := 0;+                end+                else+                    UseBody := BodyColr;++                if UseBody >= 0 then                 begin                     GStage := 'restyle symbol body';                     It := Cmp.SchIterator_Create;@@ -1595,7 +1610,7 @@ begin                         G := It.FirstSchObject;                         while G <> nil do                         begin-                            G.Color := BodyColr;+                            G.Color := UseBody;                             Inc(nBody);                             G := It.NextSchObject;                         end;@@ -1619,7 +1634,7 @@ begin            ', "fontId": ' + IntToStr(FontId) + ', "color": ' + IntToStr(Colr) +            ', "pinColor": ' + IntToStr(PinColr) +            ', "bodyPrimitives": ' + IntToStr(nBody) +-           ', "bodyColor": ' + IntToStr(BodyColr) ++           ', "bodyColor": ' + IntToStr(UseBody) +            ', "saved": ' + SavedStr); end; 
bridge-src/bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "altium",   "displayName": "Altium Bridge",-  "version": "0.0.48",+  "version": "0.0.49",   "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.48",+  "version": "0.0.49",   "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.48",+  "version": "0.0.49",   "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?"     }   ]-}+}\ No newline at end of file