← Commit history

Publish 1.6.1

John Lauer ·1fd73e01c7 ·4mo ago ·parent 4d669e5
2 files changed +126−3
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"+  ] }\ No newline at end of file