← Commit history

v1.9.23: dangling-3D-ref strip + shim fix

John Lauer ·a8340561c6 ·1mo ago ·parent bd4abfe
4 files changed +12−7
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.9.22\ No newline at end of file+1.9.23\ No newline at end of file
adom-bridge-fusion-manifest.json+4−4
@@ -1,10 +1,10 @@ {     "manifest_version": 1,     "name": "fusion360",-    "version": "1.9.22",-    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.22/adom-bridge-fusion-v1.9.22.zip",-    "sha256": "6693bdbce8b4ee9cd34a4e43f19745bb5da964db57c8c302971ab1018aa7ac13",-    "size": 366094,+    "version": "1.9.23",+    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.23/adom-bridge-fusion-v1.9.23.zip",+    "sha256": "c033c331ca9c1ddec87bef045448e3c1738577a0d367e77010ec56124f825cf8",+    "size": 366258,     "verbPrefixes": [         "fusion_"     ],
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "fusion360",   "displayName": "Autodesk Fusion 360",-  "version": "1.9.22",+  "version": "1.9.23",   "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+6−1
@@ -5896,6 +5896,11 @@ def _mtp_extract(lbr_text, deviceset):     if not (gate and dev):         return None, "deviceset %r has no gate/package device mapping" % deviceset     connects = re.findall(r'<connect gate="[^"]+" pin="([^"]+)" pad="([^"]+)"', ds)+    # Strip 3D binding refs from the embedded deviceset: a package3dinstance whose+    # packages3d section is not ALSO embedded is a dangling ref, and Fusion then+    # renders the schematic EMPTY (caught 2026-08-15: bound-library test projects+    # imported blank sheets). The test project needs no 3D binding.+    ds = re.sub(r'<package3dinstances>.*?</package3dinstances>', '', ds, flags=re.S)     sym = block_of("symbol", gate.group(2))     pkg = block_of("package", dev.group(1))     if not (sym and pkg and connects):@@ -6666,7 +6671,7 @@ def dispatch_command(command: str, args: dict, caller_identity: dict = None) ->                 active = str((st.get("data") or {}).get("activeDocument", "")).lower()             except Exception:                 active = ""-            if _TEST_PROJECT["docBase"] in active:+            if _TEST_PROJECT:                 kind = "sch" if command == "show_schematic" else "brd"                 _test_project_activate(kind)                 if command in ("show_schematic", "show_2d_board"):