← Commit history
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\ No newline at end of file+1.2.1\ No newline at end of file
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"   ] }\ No newline at end of file
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.