← Commit history

v1.6.17: sketch-space etch auto-fit

John Lauer ·34effa56cf ·3mo ago ·parent c8e324c
5 files changed +19−15
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.6.16\ No newline at end of file+1.6.17\ No newline at end of file
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" }\ No newline at end of file
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)