From 5391f2e8bcc47144fc2e1227e552bfc82d68e0ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pal=CC=8Co?= Date: Mon, 5 Oct 2026 21:04:12 +0200 Subject: [PATCH] Fix Eagle/Fusion SMD corner radius using pad height instead of shorter side Eagle defines SMD roundness relative to the shorter side of the pad (100% gives fully rounded ends), but the parser always used dy. For pads taller than they are wide the radius exceeded half the pad width and the pad was drawn distorted, and lower roundness values were exaggerated. Co-Authored-By: Claude Opus 5.5 --- InteractiveHtmlBom/ecad/fusion_eagle.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/InteractiveHtmlBom/ecad/fusion_eagle.py b/InteractiveHtmlBom/ecad/fusion_eagle.py index 76d00196..002ca1c7 100644 --- a/InteractiveHtmlBom/ecad/fusion_eagle.py +++ b/InteractiveHtmlBom/ecad/fusion_eagle.py @@ -451,8 +451,9 @@ def _footprint_pads(self, package, x, y, angle, mirrored, refdes): pad['shape'] = 'rect' else: pad['shape'] = 'roundrect' + # Roundness is relative to the shorter side pad['radius'] = (float(el.attrib['roundness']) / 100) \ - * float(el.attrib['dy']) / 2 + * min(pad['size']) / 2 if self.config.include_nets and \ element_pad_nets is not None: