app
Adom Library
Public Made by Adomby adom
adom-lbr — the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other (KiCad ⇄ Altium ⇄ EAGLE/Fusion) through one canonical adom-lbr JSON — symbol + footprint + 3D + pin↔pad map. Altium is written natively (no Altium needed). Includes the adom-lbr Manager: browse wiki components and view symbol/footprint/3D + the per-EDA layer stackup.
← Commit history
Publish 1.2.1
9 files changed
+151−29
Cargo.lock+1−1@@ -4,7 +4,7 @@ version = 4 [[package]] name = "adom-lbr"-version = "1.2.0"+version = "1.2.1" dependencies = [ "anyhow", "clap",
Cargo.toml+1−1@@ -1,6 +1,6 @@ [package] name = "adom-lbr"-version = "1.2.0"+version = "1.2.1" edition = "2021" description = "EAGLE .lbr generator, linter, and validator for Fusion 360 Electronics. Converts KiCad symbols + footprints to complete EAGLE libraries."
README.md+4−4@@ -48,10 +48,10 @@ adom-lbr bind-3d --lbr part.lbr --wip-urn "urn:adsk.wipprod:fs.file:vf.<id>?vers → **Full walkthrough: [docs/fusion-export.md](docs/fusion-export.md)** — pad-mapping, the verified 3D markup, the bridge attach vs. the `bind-3d` fast-path, and Altium/OrCAD notes. -📘 **Companion skill: [Adom LBR Fusion 360 Export](https://wiki.adom.inc/adom/adom-lbr-fusion-export)** —-a focused field guide to the four Fusion-export traps (placeholder footprint, the-bridge attach, `wip_urn` vs `eagle`, `dm.lineage`). It installs automatically with-this app (it's a dependency), and surfaces on its own when you're exporting to Fusion.+📘 **Sub-skill: [skills/fusion-export](skills/fusion-export/SKILL.md)** — a focused+field guide to the four Fusion-export traps (placeholder footprint, the bridge+attach, `wip_urn` vs `eagle`, `dm.lineage`). It ships *inside* this package, so it+installs with adom-lbr and surfaces on its own when you're exporting to Fusion. ## The 3-column library viewer — and an interactive embed
VERSION+1−1@@ -1 +1 @@-1.2.0+1.2.1
bin/adom-lbr⋯ 1 unchanged line ⋯
package.json+35−15@@ -1,10 +1,40 @@ { "slug": "adom-lbr",- "version": "1.2.0",+ "version": "1.2.1", "type": "app",- "description": "Symbol, footprint and 3D side by side with the pin to pad map and datasheet descriptions, exportable as one embeddable file.",- "dependencies": {- "adom/adom-lbr-fusion-export": "*"+ "description": "KiCad \u2192 EAGLE .lbr generator for the whole EAGLE family (Fusion 360 / Altium / OrCAD), real-footprint accurate, with 3D-model handoff. Bidirectional KiCad converter + 7-check linter. Includes a focused fusion-export sub-skill.",+ "dependencies": {},+ "discovery_triggers": [+ "kicad to eagle",+ "generate lbr",+ "eagle library",+ "fusion library",+ "fusion 360 library",+ "altium library",+ "orcad library",+ "kicad to fusion",+ "lbr from kicad",+ "import lbr to kicad",+ "lint lbr",+ "fusion no components",+ "make eagle library",+ "fusion library export",+ "lbr 3d model",+ "package3d",+ "wip_urn",+ "fusion cloud urn",+ "bind 3d",+ "lbr footprint wrong",+ "lbr placeholder footprint"+ ],+ "scripts": {+ "install": "./install.sh",+ "uninstall": "./uninstall.sh"+ },+ "needs_sudo": false,+ "hero": {+ "type": "image",+ "path": "adom-lbr-hero-v4.png" }, "tags": [ "eda",@@ -13,15 +43,5 @@ "lbr", "fusion360", "viewer"- ],- "hero": {- "type": "image",- "path": "adom-lbr-hero-v4.png"- },- "scripts": {- "install": "./install.sh",- "uninstall": "./uninstall.sh"- },- "needs_sudo": false,- "license": "MIT"+ ] }
page.json+14−7@@ -1,11 +1,9 @@ { "slug": "adom-lbr",- "version": "1.2.0",+ "version": "1.2.1", "type": "app",- "description": "Symbol, footprint and 3D side by side with the pin to pad map and datasheet descriptions, exportable as one embeddable file.",- "dependencies": {- "adom/adom-lbr-fusion-export": "*"- },+ "description": "KiCad → EAGLE .lbr generator for the whole EAGLE family (Fusion 360 / Altium / OrCAD), real-footprint accurate, with 3D-model handoff. Bidirectional KiCad converter + 7-check linter. Includes a focused fusion-export sub-skill.",+ "dependencies": {}, "tags": [ "eda", "kicad",@@ -16,7 +14,7 @@ ], "hero": { "type": "image",- "path": "screenshots/hero.png"+ "path": "adom-lbr-hero-v4.png" }, "scripts": { "install": "./install.sh",@@ -37,6 +35,7 @@ "generate lbr", "eagle library", "fusion library",+ "fusion 360 library", "altium library", "orcad library", "kicad to fusion",@@ -44,6 +43,14 @@ "import lbr to kicad", "lint lbr", "fusion no components",- "make eagle library"+ "make eagle library",+ "fusion library export",+ "lbr 3d model",+ "package3d",+ "wip_urn",+ "fusion cloud urn",+ "bind 3d",+ "lbr footprint wrong",+ "lbr placeholder footprint" ] }
screenshots/hero.png⋯ 1 unchanged line ⋯
skills/fusion-export/SKILL.mdadded+95@@ -0,0 +1,95 @@+---+name: adom-lbr-fusion-export+description: >+ Export a KiCad part to a Fusion 360 library (.lbr) with a REAL footprint and a+ 3D body — and avoid the four traps that bite. Companion to the adom-lbr app.+ Use when generating/importing an EAGLE .lbr for Fusion 360 (or Altium/OrCAD),+ attaching a 3D model to a Fusion package, or debugging a wrong footprint / a+ gray 3D placeholder / a rejected URN. Trigger words: fusion library export,+ fusion 360 library, lbr for fusion, eagle lbr, .lbr footprint, lbr 3d model,+ package3d, package3dinstance, wip_urn, fusion cloud urn, adsk.wipprod fs.file,+ bind 3d, create3dpackage, lbr placeholder footprint, lbr footprint wrong,+ fusion gray placeholder, fusion no components, altium lbr, orcad lbr.+---++# adom-lbr — Fusion 360 library export++How to turn a KiCad part into a Fusion 360 library that places correctly — with+the real footprint and a 3D body. The same `.lbr` also imports into **Altium**+and **OrCAD**. This skill is the focused field guide; the `adom-lbr` app is the+tool. Read this before exporting an `.lbr` you'll fabricate or hand to Fusion.++## The one-liner++```bash+adom-lbr generate --sym part.kicad_sym --fp part.kicad_mod --model part.step -o part.lbr+# ^^^^ real footprint ^^^^^^^ 3D handoff sidecar+```++Then the **Fusion bridge attaches the 3D** (it can't be baked into the file).++## The four traps (this is why the skill exists)++1. **No `--fp` → a 2-column PLACEHOLDER, not the real footprint.** Without the+ `.kicad_mod`, every pad is dumped into two columns. A 4-sided LQFP comes out+ as a domino. **Always pass `--fp` for anything you'll fabricate.** The tool now+ prints a HINT when you forget — heed it.++2. **3D is a Fusion-side ATTACH, not a flat-file write.** A 3D body only renders+ once Fusion brings the model into a session. So the `.lbr` stays 2D and the+ **bridge** does: open `.lbr` (library active) → `Electron.Create3DPackage` →+ import `model.path` → orient → `Package3DStop` (**FINISH**) → Save. That step+ both binds *and* renders. `--model` just emits the sidecar that points the+ bridge at the model + package.++3. **Self-hosted models use `wip_urn`, NOT `urn:adsk.eagle:package`.** That eagle+ form is for MANAGED (library.io) parts only. A model you upload yourself links+ by the **versioned file URN** with an empty `urn`:+ ```xml+ <package3d name="P" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.<id>?version=N"+ locally_modified="yes" type="model">…</package3d>+ <!-- device: --> <package3dinstance package3d_urn="urn:adsk.wipprod:fs.file:vf.<id>?version=N"/>+ ```++4. **Never put a `dm.lineage` URN in the `.lbr`.** Fusion pins the *versioned*+ `fs.file:vf …?version=N`. `dm.lineage` is the stable cross-version id — keep it+ only as sidecar provenance. `adom-lbr bind-3d` refuses a `dm.lineage` URN.++Bonus: a pre-written `wip_urn` shows a **gray placeholder** on a cold open until+the model is brought into a session — so `bind-3d` is a fast-path for known-synced+models, never a substitute for the bridge attach.++## The flow (who does what)++| Step | Who | Command / action |+|---|---|---|+| Generate 2D `.lbr` + sidecar | adom-lbr | `generate --sym … --fp … --model part.step` |+| Attach 3D (binds **and** renders) | Fusion bridge | Create3DPackage → import → orient → FINISH → Save |+| Report the minted URN | Fusion bridge | `fusion_aps_file_info {query:"<package>"}` → `fs.file:vf…?version=N` |+| Record URN back (provenance) | adom-lbr | `bind-3d --record-only --sidecar part.fusion3d.json --wip-urn <that>` |+| (Optional) bake binding into `.lbr` | adom-lbr | `bind-3d --lbr part.lbr --wip-urn <that>` |++The **in-Fusion library is the runtime source of truth**; the sidecar is+adom-lbr-owned bookkeeping (idempotency + provenance).++## Footprint mapping facts++- KiCad is Y-down, EAGLE is Y-up → **Y is negated**.+- The KiCad pad angle maps **directly** to EAGLE `rot=` (KiCad 90 → `R90`),+ matching Fusion's own export — top/bottom QFP/SOIC pads get `rot="R90"`.+- Silkscreen outline comes from the footprint body (`F.SilkS` → `F.Fab` → pad+ extents), matched per-layer.++## Quick triage++| Symptom | Fix |+|---|---|+| Footprint is two columns / a domino | regenerate **with `--fp part.kicad_mod`** |+| Fusion: "No Components" | `adom-lbr lint part.lbr` → fix the reported code |+| 3D body is a gray placeholder | let the bridge attach it (Create3DPackage → FINISH) |+| `bind-3d` rejected the URN | self-uploaded → `--wip-urn` (`fs.file:vf…?version=N`); managed → `--urn` |+| 3D offset / wrong pin 1 | run chipfit; set `placement` in the sidecar before FINISH |++Full walkthrough + screenshots: **[docs/fusion-export.md](../../docs/fusion-export.md)** in this+repo. This is a sub-skill of the **[adom-lbr](https://wiki.adom.inc/adom/adom-lbr)** app — it+installs and surfaces with it.