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
v1.9.14: screenshot key fix
4 files changed
+20−14
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.9.13+1.9.14
adom-bridge-fusion-manifest.json+4−4@@ -1,10 +1,10 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.9.13",- "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.13/adom-bridge-fusion-v1.9.13.zip",- "sha256": "1e24a64848d11e5735d58dc048656a9653cd38147dc307fac65ea85474d68031",- "size": 359243,+ "version": "1.9.14",+ "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.14/adom-bridge-fusion-v1.9.14.zip",+ "sha256": "86c66c2b8a90983b34be1f81c8fdf4707b38dbe094df0883d20c5f06876ac659",+ "size": 359359, "verbPrefixes": [ "fusion_" ],
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.9.13",+ "version": "1.9.14", "description": "Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.", "homepage": "https://wiki.adom.inc/adom/fusion-bridge", "author": "Adom Inc.",
server.py+14−8@@ -5433,8 +5433,9 @@ def _show_library_view(name, suffix): out = {"success": True, "view": suffix, "name": name} try: shot = _handle_screenshot_fusion({}, {})- if shot.get("success") and shot.get("localSafePath"):- out["screenshot"] = shot.get("localSafePath")+ p = shot.get("savedTo") or shot.get("localSafePath")+ if shot.get("success") and p:+ out["screenshot"] = p except Exception: pass return out@@ -5564,8 +5565,9 @@ def _orchestrate_show_3d_package(args: dict) -> dict: out = {"success": True, "view": "3d-package", "name": name, "libraryPath": library_path} try: shot = _handle_screenshot_fusion({}, {})- if shot.get("success") and shot.get("localSafePath"):- out["screenshot"] = shot.get("localSafePath")+ p = shot.get("savedTo") or shot.get("localSafePath")+ if shot.get("success") and p:+ out["screenshot"] = p except Exception: pass out["_hint"] = ("You are in the Package3DEnvironment. To leave WITHOUT saving, run "@@ -5629,8 +5631,11 @@ def _orchestrate_demo_tour(args: dict) -> dict: # reply, harness live in ab 2.0.39) - label kept as an alias. try: r = _handle_screenshot_fusion({}, {})- if r.get("success") and r.get("localSafePath"):- state["shots"].append({"title": label, "label": label, "path": r.get("localSafePath")})+ # server-side helper returns savedTo (localSafePath is the CLI layer's name -+ # checking only that dropped EVERY tour shot, caught live 2026-08-15)+ p = r.get("savedTo") or r.get("localSafePath")+ if r.get("success") and p:+ state["shots"].append({"title": label, "label": label, "path": p}) except Exception: pass @@ -5851,8 +5856,9 @@ def _orchestrate_demo(args: dict) -> dict: def _shot(label): try: r = _handle_screenshot_fusion({}, {})- if r.get("success") and r.get("localSafePath"):- shots.append({"label": label, "path": r.get("localSafePath")})+ p = r.get("savedTo") or r.get("localSafePath")+ if r.get("success") and p:+ shots.append({"title": label, "label": label, "path": p}) except Exception: pass