app
Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
← Commit history
CREATING_BASIC_PARTS_LIBRARIES.mdadded+107@@ -0,0 +1,107 @@+# Creating a Fusion 360 library of Adom basic parts (the full tool-chain tutorial)++How to build ONE Fusion 360 `.lbr` library that holds a whole sampler of popular Adom parts -+resistors, capacitors, inductors, LEDs, microcontrollers, op-amps, ADCs, sensors - each with a+schematic symbol, a real footprint, AND the real 3D model attached. This is also the recipe behind+the **montage demo video** on this page, so it doubles as a tutorial: every Adom tool used, in order,+and how each one was shown on camera.++> Companion guides: [MAKING_LIBRARIES.md](MAKING_LIBRARIES.md) (one part, end to end) and+> [LIBRARY_FINDINGS.md](LIBRARY_FINDINGS.md) (the hard-won findings). This file is the *many-part,+> all-the-tools* version.++## ⛔ THE HARD REQUIREMENT - the symbol must carry the 3D chip outline++**Every schematic symbol you send into Fusion MUST have the part's 3D chip outline drawn inside the+symbol body.** Not optional. A symbol that is just pins-and-a-box is a FAIL.++- The outline is a vector line-drawing of the actual chip (from **adom-symbol**, the `*-3d-outline-*.svg`).+- It gets into the symbol via **`adom-lbr generate --symbol-art <outline.svg>`**, which draws the SVG+ as raw `<wire>` lines centred in the symbol body (size via `--symbol-art-scale`, default 0.38).+- **Verify it in Fusion**: open the library, look at the symbol - the chip outline must be visible+ behind/within the pins. If it is not there, you used the wrong file or skipped `--symbol-art`. Fix it+ before continuing; do not ship a symbol without the outline.++## The tools (each has a live app - open it in a pup tab for the video)++| Tool | What it does here | Show it via |+|---|---|---|+| **chip-fetcher** | downloads the manufacturer symbol + footprint + STEP bundle for an MPN; the curated `library/<MPN>/` is the content source | `chip-fetcher serve` / `app` viewer + dashboard; `chip-fetcher fetch <MPN>` |+| **chip-fetcher-lite** (`adom/chip-fetcher-lite`) | wiki-first staging for **Adom BASIC parts** (R/C/L/LED). Add by MPN or a description like `100nF 0402 capacitor`; per-row KiCad/Altium/Fusion/JLC status boxes, grouped by category; files them into your libs | the wiki app (Node, `public/index.html`) - open the page in a pup tab |+| **adom-symbol** | builds + renders the schematic symbol AND the **3D-outline SVG** that becomes the symbol-art | `adom-symbol serve` (live app) + `adom-symbol ui ...` to drive it; `render` / `embed` |+| **adom-footprint** | builds + renders the footprint (`.kicad_mod`) with layer / paste-dot views | `adom-footprint serve` + `ui`; `embed` |+| **adom-lbr** | assembles the EAGLE `.lbr` (symbol + footprint + deviceset), embeds the symbol-art, writes the 3D sidecar | `adom-lbr generate ...`; `adom-lbr serve --file X.lbr` (symbol \| footprint \| 3D + pin-map viewer) |+| **adom-desktop-fusion-bridge** (this repo) | opens the `.lbr` in Fusion and attaches the 3D | `fusion_open_lbr`, `fusion_attach_3d_package` |+| **the Adom Basic Parts wiki** (`adom/basic-parts-library`) | the canonical catalog: 79 resistors, 40 MLCCs, 6 inductors, 11 LEDs, ferrite beads | open the page in a pup tab (it has a fun interactive viewer) |++## Build recipe (per part)++1. **Get the curated CAD.** `chip-fetcher/library/<MPN>/` carries the Fusion variant set:+ `<MPN>.fusion.kicad_sym`, `<MPN>.fusion.kicad_mod`, `<MPN>-named.step` (3D with the part number+ embossed), and `<MPN>-3d-outline-bold.svg` (**the symbol-art**). For Adom basic passives, the STEP /+ footprint / symbol already exist on the wiki - **do not invent geometry**. Stage them with+ **chip-fetcher-lite** (resolve a description like `100nF 0402 capacitor` to the real MPN page and pull+ its Fusion files), then run the STEP through **service-step2glb** (`adom-step2glb`) exactly like the+ chip-fetcher tools do, to produce the GLB + the named/outline assets. Then feed those to adom-symbol+ / adom-lbr the same way as an IC.+2. **Generate the part `.lbr` WITH the outline + the model:**+ ```bash+ adom-lbr generate \+ --sym <MPN>.fusion.kicad_sym \+ --fp <MPN>.fusion.kicad_mod \+ --name <MPN> \+ --symbol-art <MPN>-3d-outline-bold.svg \ # ⛔ the 3D outline in the symbol - REQUIRED+ --model <MPN>-named.step \ # writes the <out>.fusion3d.json 3D handoff sidecar+ -o <MPN>.lbr+ ```+ The `.lbr` stays 2D (a valid Fusion 3D ref needs an Autodesk cloud URN only Fusion can mint); the+ sidecar tells the bridge which model to attach and how to align it.+3. **Merge all parts into ONE library.** An EAGLE `.lbr` is a library of many devicesets, so combine+ the per-part files: keep one file's `<layers>` skeleton, then concatenate every part's `<package>`,+ `<symbol>`, `<deviceset>` (and `<package3d>` if pre-bound) children. Names are MPN-unique, so no+ collisions. Validate: `adom-lbr validate combined.lbr`.+4. **Into Fusion.** Stage `combined.lbr` (+ each `<MPN>.step`) to Windows (no container→Windows push+ verb - serve + `Invoke-WebRequest`), `fusion_open_lbr`, then `fusion_attach_3d_package` **once per+ part** (pass `packageName`). Save the library to the cloud, **close, reopen** - that forces the 3D+ previews to refresh from gray placeholder to the real chip.++## The montage video recipe (how this page's video was made)++- Open EVERY tool app + the basic-parts wiki pages as **tabs in ONE maximized pup window**, and+ **swap between tabs on camera** - that swapping IS the montage.+- Record each tool *doing its thing* as a short pup snippet: chip-fetcher fetching a bundle,+ chip-fetcher-lite's category status boxes lighting up, **adom-symbol showing the symbol WITH the 3D+ outline**, adom-footprint's layers, the adom-lbr viewer (symbol \| footprint \| 3D), the fun+ basic-parts wiki page.+- Record **Fusion** (WGC, `desktop_record_window_start` on the main "Autodesk Fusion" window) opening+ the combined library and attaching the 3D.+- Speed the snippets up and stitch them in **video-post** (`adom-video-post`): a "what it takes"+ montage with burned-in captions + a TTS voiceover. Publish to this page and show it in pup.++## Part selection (the sampler - cover every category)++Ten popular parts spanning the categories: **MCUs** (ESP32-S3-WROOM-1, ATSAMD51J20A), **op-amp**+(LM358), **ADC** (ADS1115), **MOSFET** (SI2302), **sensor** (BME688), **resistor** (WSL2010), **LED**+(VLMS1500), **capacitor** (0603 100nF), **inductor** (0805 10µH). Pick parts that have the full curated+set so every symbol gets its outline and every package gets real 3D.++## Gotchas (each one bit us - see LIBRARY_FINDINGS.md for detail)++- **Stale `.lbr` = wrong footprint.** Regenerate with the CURRENT `adom-lbr`. The pup viewer renders the+ footprint from the SVG, so a `.lbr` can LOOK right while its pads are an old 2-column placeholder.+ Verify the pad layout: a 4-sided LQFP has many distinct X **and** Y, not 2 columns of pads.+- **No symbol-art = requirement failure.** If the symbol has no outline, you skipped `--symbol-art` or+ pointed it at the wrong SVG.+- **One bad part poisons the WHOLE merged library.** Fusion rejects the entire `.lbr` with a generic+ "has errors and cannot be opened" if ANY device has an invalid `<connect>` (a pin mapped to a pad the+ package doesn't define). This bit us on WSL2010 (chip-fetcher gave it a 3-pin symbol but a 2-pad+ footprint, so pin 3 → pad 3 which doesn't exist). **Before merging, validate every part: for each+ device, every `<connect pad="N">` must reference an `<smd name="N">`/`<pad name="N">` that exists in+ its package.** A single-device `.lbr` may still open, masking the bug - it only blows up once merged.+ (adom-lbr's lint did NOT catch this - file it.) Passives are the usual offenders: their symbol pin+ count can disagree with the footprint pad count.+- **CAPTURE the error dialog.** When `fusion_open_lbr` returns `success:false`, grab the modal error+ with `desktop_screenshot_window` (it returns owned popups) AT open time - don't just log the false.+- **3D preview lags after attach** (gray placeholder) - save → close → reopen the library to refresh.+- **Record the MAIN Fusion window** (title contains "Autodesk Fusion"), not a stray palette window.+- **Caches.** The wiki/CDN caches files for ~24h; publish a new video under a fresh filename or cache-bust.
page.json+19−3@@ -26,7 +26,23 @@ "changelog": "v1.6.1: adopt the EAGLE command reference skill (fusion-eagle-commands - the fusion_electron_run safe/blocking command split) from adom-desktop core; now owned by this bridge pkg.", "updated_at": "2026-06-21T12:34:40.792Z", "hero": {- "type": "image",- "path": "screenshots/hero.png"- }+ "type": "billboard",+ "headline": "Adom Desktop - Fusion 360 Bridge",+ "subhead": "Drive Fusion 360 from the cloud: electronics, exports, fast APS cloud search, and component libraries with real 3D",+ "screenshot": "screenshots/hero.png"+ },+ "files": [+ "SKILL.md",+ "skills/**",+ "screenshots/hero.png",+ "README.md",+ "VERBS.md",+ "install.sh",+ "uninstall.sh",+ "page.json",+ "MAKING_LIBRARIES.md",+ "LIBRARY_FINDINGS.md",+ "PUBLISHING.md",+ "CREATING_BASIC_PARTS_LIBRARIES.md"+ ] }