Add explicit SOIC body dimensions for courtyard generation - #866
Open
pokemongo1027 wants to merge 2 commits into
Open
pokemongo1027 wants to merge 2 commits into
pokemongo1027 wants to merge 2 commits into
Conversation
This was referenced Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SOIC courtyards infer the component body from the pad layout and silkscreen height. This prevents expressing the physical body independently of the land pattern.
Add optional positive finite
bodywidthandbodyheightparameters to SOIC strings and the fluent builder. With either parameter supplied, the courtyard encloses the body and copper envelopes with 0.25mm clearance, including containment and offset thermal-pad cases. Existing footprints retain their current output when neither parameter is supplied. Pad placement, pad sizes and silkscreen remain unchanged.The SOIC-8 parity test now specifies the actual reference land pattern: 1.95 x 0.6mm pads at x = +/-2.475mm, a 6.9mm pad-tip span, and a 3.9 x 4.9mm body. The old test used different pad dimensions. Correcting those inputs and supplying the new body dimensions changes courtyard overlap from 85.76% to 99.9221%. The remaining 0.0779% difference comes from KiCad rounding the 2.455mm clearance boundary outward to 2.46mm.
Relates to #731, scoped to the SOIC-8 comparison. This does not close the remaining SOIC-20, SOIC-24 and QFN-32 items.
Validation
d0d2ee19b261781af97d405400eb88402598ac92has the same 3 failures:smf,parity/sod523, anddiode-kicad-parity/sod523(561 passed). Tested on Windows with Bun 1.4.2 and Node 22.14.0.Reference: https://gitlab.com/kicad/libraries/kicad-footprints/-/blob/master/Package_SO.pretty/SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod
Prepared with AI assistance, local regression testing and an independent review of the geometry and existing behavior.