← Commit history

v1.9.24: real 3D on generated boards

John Lauer ·c8457161a8 ·1mo ago ·parent a834056
4 files changed +12−8
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.9.23\ No newline at end of file+1.9.24\ 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.23",-    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.23/adom-bridge-fusion-v1.9.23.zip",-    "sha256": "c033c331ca9c1ddec87bef045448e3c1738577a0d367e77010ec56124f825cf8",-    "size": 366258,+    "version": "1.9.24",+    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.24/adom-bridge-fusion-v1.9.24.zip",+    "sha256": "d9ea4cf800bcecb1a0f112d3da96918ca83cf105c87fa7cf356ec8f8f8673461",+    "size": 366388,     "verbPrefixes": [         "fusion_"     ],
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "fusion360",   "displayName": "Autodesk Fusion 360",-  "version": "1.9.23",+  "version": "1.9.24",   "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−2
@@ -5945,7 +5945,7 @@ _MTP_HEAD = ('<?xml version="1.0" encoding="utf-8"?>\n<!DOCTYPE eagle SYSTEM "ea  'altdistance="0.01" altunitdist="inch" altunit="inch"/>')  -def _mtp_generate(lib_name, ex, part_name):+def _mtp_generate(lib_name, ex, part_name, urn=""):     """Build the .sch/.brd pair text. Wiring: R1.2 -> the part's FIRST connected pin;     GND -> its second; VCC -> R1.1. Electrically meaningful for 2-terminal parts,     structurally valid for anything (the test project proves design integration)."""@@ -6049,7 +6049,11 @@ def _orchestrate_make_test_project(args: dict) -> dict:     if err:         return {"success": False, "error": err}     lib_name = re.sub(r"[^A-Za-z0-9_-]", "_", os.path.basename(lbr_path).rsplit(".", 1)[0])-    sch_text, brd_text = _mtp_generate(lib_name, ex, deviceset)+    # The source library's 3D binding (if any) rides into the generated BOARD - each+    # element gets package3d_urn so the 3D PCB renders the REAL component model, not a+    # generic extrusion (John caught every test board showing black boxes, 2026-08-15).+    urn_m = re.search(r'wip_urn="([^"]+)"', lbr_text)+    sch_text, brd_text = _mtp_generate(lib_name, ex, deviceset, urn_m.group(1) if urn_m else "")     d = os.path.join(tempfile.gettempdir(), "adom-fusion-wrap")     os.makedirs(d, exist_ok=True)     base = "ADOM-TEST-" + re.sub(r"[^A-Za-z0-9_-]", "_", deviceset)[:40]