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.6.17: sketch-space etch auto-fit
5 files changed
+19−15
BRIDGE_VERSION+1−1@@ -1 +1 @@-1.6.16+1.6.17
CHANGELOG.md+2@@ -5,6 +5,8 @@ Canonical: https://wiki.adom.inc/adom/adom-desktop-fusion-bridge ยท GitHub backu ## 1.6.16 - 2026-07-04 +- (1.6.17) Etch auto-fit measures the face in SKETCH space (model-bbox axes can be swapped vs the+ text's baseline axis) + a 0.75h glyph width - 'LM358' now fits fully on a SOIC-8 top. - `fusion_generate_package` etch auto-fit is now WIDTH-aware: text height is capped by box-width / char-count (a glyph is ~0.62h wide), so a 5-char MPN like 'LM358' fits instead of cropping (height-only fit rendered 'M35' on a SOIC-8 - caught on the live verify).
adom-bridge-fusion-manifest.json+5−5@@ -1,13 +1,13 @@ { "manifest_version": 1, "name": "fusion360",- "version": "1.6.16",- "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.16/adom-bridge-fusion-v1.6.16.zip",- "sha256": "06f1b8eaa2b252a5e207d3a8c8fe1b2c608645f096c62dfdb72ae29fe2835308",- "size": 309093,+ "version": "1.6.17",+ "url": "https://wiki.adom.inc/download/adom/adom-desktop-fusion-bridge/1.6.17/adom-bridge-fusion-v1.6.17.zip",+ "sha256": "ca6c178dcee2145cb6593958d5001fb86a5820c2a4d5a71130a1922acf47a6e3",+ "size": 309227, "verbPrefixes": [ "fusion_" ], "healthEndpoint": "/status",- "released_at": "2026-07-04T16:10:00Z"+ "released_at": "2026-07-04T16:40:00Z" }
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "fusion360", "displayName": "Autodesk Fusion 360",- "version": "1.6.16",+ "version": "1.6.17", "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/adom-desktop-fusion-bridge", "author": "Adom Inc.",
server.py+10−8@@ -2056,16 +2056,18 @@ if {etch!r}: raise RuntimeError('ETCH_NO_TOP_FACE: largest body has no upward planar face') sk = root.sketches.add(top_face) center = sk.modelToSketchSpace(top_face.centroid)- # auto-fit text box to the face bounding box (80% wide, 55% tall) unless overridden+ # Measure the face in SKETCH space (model-space bbox axes can be SWAPPED vs+ # the sketch axes the text lays out in - learned live: 'LM358' still clipped+ # when sized from the model bbox). Project the model bbox corners. bb = top_face.boundingBox- face_w = abs(bb.maxPoint.x - bb.minPoint.x)- face_h = abs(bb.maxPoint.y - bb.minPoint.y)- span = min(face_w, face_h)- w = max(face_w, face_h) * 0.8- # width-aware auto-fit: a glyph is ~0.62*h wide, so cap h by the box width /- # char count too (learned live: 'LM358' at height-only fit cropped to 'M35')+ p_min = sk.modelToSketchSpace(bb.minPoint)+ p_max = sk.modelToSketchSpace(bb.maxPoint)+ face_w = abs(p_max.x - p_min.x) # sketch-x = the text baseline axis+ face_h = abs(p_max.y - p_min.y)+ w = face_w * 0.85+ # width-aware auto-fit: a glyph is ~0.75*h wide in Fusion's default text font n_chars = max(1, len({etch!r}))- h = ({etch_height_mm!r} / 10.0) if {etch_height_mm!r} else max(0.015, min(span * 0.45, w / (0.62 * n_chars)))+ h = ({etch_height_mm!r} / 10.0) if {etch_height_mm!r} else max(0.015, min(face_h * 0.45, w / (0.75 * n_chars))) c1 = adsk.core.Point3D.create(center.x - w/2, center.y - h*0.75, 0) c2 = adsk.core.Point3D.create(center.x + w/2, center.y + h*0.75, 0) ti = sk.sketchTexts.createInput2({etch!r}, h)