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
Integration test results: footprint writer fix VERIFIED (4-sided LQFP-64); minting yields wipprod not eagle URN; binding wipprod fails. Record owned-popup error-capture technique + bridge hint.
3 files changed
+42−2
FUSION_3D_FINDINGS.md+35@@ -82,3 +82,38 @@ The one step not yet automated end-to-end: minting + mapping the eagle URN (the in-library generator). Current plan: open the footprint env with the chip placed (sections 4-5), let the human align + FINISH/save once, then export that `.lbr`, read the exact `package3d` markup + eagle URN, and from there automate the edit-and-reupload for every future chip.++## 9. Integration test (adom-lbr.fusion3d/1 sidecar) - results++Tested the adom-lbr-fixed `.lbr` + `ads.fusion3d.json` sidecar end to end:+- **Footprint writer fix: VERIFIED.** The new `adom-lbr generate` emits a real 4-sided LQFP-64+ (16 left / 16 right / 16 top / 16 bottom `<smd>`, X & Y ±5.74 mm), 64 `<connect>` intact. Opens in+ Fusion as a proper QFP, not a 2-column placeholder. (Format nit: the `<smd>` have **no `rot=`** - fine+ for square pads, but non-square pads on the top/bottom sides would need `rot="R90"`.)+- **URN minting: the assumed scheme is WRONG.** Running the 3D Package Generator+ (`Create3DPackage` -> import model -> `Package3DStop`/FINISH -> Save) mints+ **`urn:adsk.wipprod:dm.lineage:...`** (a regular user cloud design), NOT the+ **`urn:adsk.eagle:package:NNN/V`** the manifest expects. Fusion's generator saves a *custom* 3D model+ as an ordinary cloud file (wipprod), not a managed eagle package.+- **Binding the wipprod URN: FAILS.** Writing `<packages3d><package3d urn="urn:adsk.wipprod:dm.lineage:...">`+ + a device `<package3dinstance package3d_urn="...">` into the `.lbr` and reopening gives+ **"<file>.lbr has errors and cannot be opened. Close the empty design file..."** So a wipprod URN is+ not valid in `package3d`; the `.lbr` genuinely needs an `adsk.eagle:package` URN.+- **THE REMAINING BLOCKER:** how to mint an `adsk.eagle:package` URN for a custom model. The standalone+ generator path does not produce one. The in-library `Electron::AddCustom3DModel` + `AttachToFootprintCmd`+ path (section 6) is the likely minter, but it is interactive. This is the crux to crack next.++## 10. Capturing GUI error dialogs (Fusion) - ALWAYS check owned popups++Fusion error dialogs (e.g. "<file>.lbr has errors and cannot be opened") are **owned popups**: they do+NOT enumerate in `desktop_list_windows` and are invisible to a plain capture of the main window. A+`fusion_*` verb can return `success:true` while an error dialog is actually up.++**`desktop_screenshot_window {hwnd}` (AD v1.8.177+) captures them automatically** and returns them at the+TOP LEVEL: **`ownedPopupCount`** (always present; 0 = none) + **`_screenshots[]`** (each owned popup:+`title`, `kind:"owned_popup"`, `localSafePath`, `rect`, `coordMap`). The CLI auto-pulls each popup PNG.++RULE: after every Fusion open / `execute_text_command` / generator FINISH, grab+`desktop_screenshot_window` on the Fusion main hwnd and **check `ownedPopupCount` / read `_screenshots[]`** -+do NOT just read `output.data.image` (that is the main window only and misses the dialog). Treat+`ownedPopupCount > 0` as "an error/confirm dialog is up - read it before proceeding."
lib-08-fixed-4sided-footprint.pngadded⋯ 1 unchanged line ⋯
server.py+7−2@@ -1003,9 +1003,14 @@ def _orchestrate_open_lbr(args: dict) -> dict: "data": {"results": results, "filePath": file_path}, "_hint": ( "Library opened in the Electronics Library editor (Content Manager). "+ "ALWAYS VERIFY VIA SCREENSHOT: a .lbr can FAIL to open ('<file>.lbr has errors and cannot be "+ "opened') while this call still returns success - that error is an OWNED POPUP. Grab "+ "desktop_screenshot_window on the Fusion main hwnd and CHECK ownedPopupCount + read the "+ "_screenshots[] array (AD v1.8.177+ captures owned dialogs invisible to a plain capture); "+ "ownedPopupCount>0 means an error/confirm dialog is up. " "NOTE: an adom-lbr .lbr is 2D ONLY - symbol + footprint + a PLACEHOLDER 3D package. "- "The real 3D chip is NOT attached; that requires uploading the model to the Fusion "- "cloud for a URN and linking it. See the 'fusion-libraries' skill before claiming the 3D is present."+ "The real 3D chip is NOT attached; that needs an adsk.eagle:package URN (a wipprod URN does NOT "+ "work in package3d). See the 'fusion-libraries' skill / FUSION_3D_FINDINGS.md." ), } if symbol_name: