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.35: debug the click screenshot
4 files changed
+11−7
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.9.34+1.9.35
adom-bridge-fusion-manifest.json+4−4@@ -1,10 +1,10 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.9.34",- "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.34/adom-bridge-fusion-v1.9.34.zip",- "sha256": "359b247f38b27cbafeeac1f34ecc2ec01fd4d3c75327ecedc2c8273fa0efc5e2",- "size": 383645,+ "version": "1.9.35",+ "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.35/adom-bridge-fusion-v1.9.35.zip",+ "sha256": "081b01b18ad4946e098e796f1641507ae40aad25239573072a425f477fa2ba84",+ "size": 383740, "verbPrefixes": [ "fusion_" ],
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.9.34",+ "version": "1.9.35", "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+5−1@@ -4980,7 +4980,11 @@ def _fusion_click_signin() -> dict: cm = shot.get("coordMap") or (_raw.get("coordMap") if isinstance(_raw, dict) else None) or {} sid = cm.get("shotId") or shot.get("shotId") or (_raw.get("shotId") if isinstance(_raw, dict) else None) if not sid:- return {"clicked": False, "why": "screenshot returned no shotId"}+ return {"clicked": False,+ "why": "screenshot returned no shotId (hwnd=%s raw_keys=%s err=%s)" % (+ hwnd,+ sorted(list(_raw.keys()))[:8] if isinstance(_raw, dict) else type(_raw).__name__,+ str((_raw or {}).get("error"))[:100] if isinstance(_raw, dict) else "")} img = cm.get("image") or {} w = shot.get("width") or img.get("w") or img.get("width") or cm.get("imageWidth") or 1400 h = shot.get("height") or img.get("h") or img.get("height") or cm.get("imageHeight") or 860