314 Commits

Author SHA1 Message Date
Seth Hillbrand
4229b3cc76 Update cli golden files with new output format 2025-09-12 23:25:22 -07:00
Jeff Young
ead7de69ca Fix periods in ERC gold files. 2025-09-08 20:44:32 +01:00
Seth Hillbrand
f66cbaf43a ADDED: Stacked pin notation support
Implement bracket notation for stacked pins ([1,2,3], [1-4], [1,3,5-7]).
Automatic net naming proceeds based on the smallest logical pin number
in stacked groups.

Provide explode/reform commands in symbol editor for conversion.
Supports arbitrary ranges including BGA alphanum ranges like
[AA1-AA3,CD14-CD22]

Adds some additional QA and trace logging

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2004
2025-09-07 14:59:51 -07:00
Seth Hillbrand
de8c4d4b01 ADDED: via_dangling constraint
Allows programmatic suppression of this error if you don't care about it

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18058
2025-09-02 08:26:18 -07:00
Seth Hillbrand
bfe805a221 Add user-controlled scaling factor
Lets the user decide what 100% zoom is for their system based on a
slider.

This is inspired by Inkscape's custom scaling widget

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19256
2025-08-25 14:37:07 -07:00
Seth Hillbrand
26f0c03e61 ADDED: support for 45 degree crosshairs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6047
2025-08-23 06:20:00 -07:00
Alex Shvartzkop
937d53b77c Update golden ERC QA files after f896417ed41ac3623d01d84857cca07ba30ec9eb 2025-08-21 12:35:25 +03:00
Seth Hillbrand
8faf1b4d0e Allow soldermask bridging between nettie items
Previously we only allowed graphical items but within the net-tie we
need to allow bridging for connected items as well

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19288
2025-08-18 08:47:26 -07:00
Seth Hillbrand
d8a99ea38f ADDED: New ERC test for mis-match GND pins
If you have a pin with a label containing the letters "GND" in it and it
is not connected to a net with a label also containing "GND" AND there
is another pin on your symbol that _is_ connected to a net containing
"GND", then there is a likelihood that you have accidentally mixed up
your connections to the GND pin
2025-08-07 15:42:56 -07:00
JamesJCode
b87a050bd8 Use full start / end copper layer heights in length calculations
Previously we halved the start / end copper layer heights, which is
not in line with how other EDA tools behave. This was also inconsistent
with adding pad-to-die lengths as we did not add back in the missing
half.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21365
2025-08-06 20:30:13 +01:00
Seth Hillbrand
4aa2047f45 Replace alg::delete and alg::delete_if with std c++20 2025-08-04 09:03:16 -07:00
Seth Hillbrand
6b44c4cbae update qa config to new data 2025-07-26 15:58:08 -07:00
Seth Hillbrand
3a06de0076 Consolidate ERC label warnings
If global or local labels are floating -> error
If global or local labels are only connected to one pin -> warning

Rather than forcing two different errors depending on whether the label
is local or global
2025-07-18 16:47:25 -07:00
Christopher Alexander
f4b1a15cd8 fix for issue 17429 - fixes DRC unconnected items exclusion instability 2025-06-25 17:03:35 +00:00
Jon Evans
9b72e30a0b QA: Store SVGs, not PNGs
Different platforms/versions can result in very slight differences
when converting SVGs to PNGs for diffing them.

(cherry picked from commit 8b80853ad7269460a68b20ed9f2a0fd33a8cfef8)
2025-06-14 17:16:25 -04:00
Jeff Young
24bb72c3cf Update CLI gold files for higher arc definition. 2025-05-13 10:09:26 +01:00
Jeff Young
f54ae5246c Update Cadstar gold file for increased precision. 2025-05-12 21:40:48 +01:00
Jeff Young
96522c4113 DRCEpsilon is generic. Zone knockouts need more specific values.
Each knockout can be approximated, and each knockout
will have m_ExtraClearance added.  If a neck is
between two knockouts, it will be 2X the above
values narrower than expected.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20361
2025-05-04 15:33:04 +01:00
Jeff Young
3cfab79a78 Fix qa_cli gold files for junction dot size issue. 2025-05-02 10:55:04 +01:00
Wayne Stambaugh
bebc9669ad Fix ERC QA failures caused by hierarchical label root sheet test. 2025-04-29 17:46:39 -04:00
jean-pierre charras
874fad4846 QA test: Update issue11814.kicad_pcb by removing old teardrops
These teardrops created by a old plugin have all the same priority.
Overlapping zones must avoid using the same priority.
Now replaced by teardrops created by Pcbnew.
2025-04-22 15:46:29 +02:00
JamesJCode
eb17ebee4e Implement time-domain length tuning
- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
   - Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints
2025-04-17 21:46:56 +01:00
Mike Williams
b9013b87d0 sch groups: add test case for loading from file 2025-04-15 10:19:40 -04:00
Jeff Young
10af2f04d3 Make test use the solder-mask healing algo. 2025-04-14 15:38:18 +01:00
Wayne Stambaugh
66fad52331 Update QA JSON files to prevent modified status after running QA test. 2025-04-10 11:47:33 -04:00
Wayne Stambaugh
cb1e6b62e9 Update QA test json files with latest changes. 2025-04-08 08:17:12 -04:00
Wayne Stambaugh
11edaa6e4a Use arc mid point for footprint library parity DRC testing.
The arc center is a pseudo coordinate which is calculated for drawing
purposes.  This mid point is fixed unless the arc is modified which
should result in more reliable arc parity footprint library DRC testing.

Also change EDA_SHAPE::Compare() to use the arc mid point.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15917
2025-04-04 15:30:44 -04:00
Mike Williams
40058ebe80 actions: move all basic selection operations to common actions 2025-04-02 12:02:01 -04:00
JamesJCode
906c24bc6d Unify length calculation between router, board / frame, and DRC 2025-03-30 09:18:41 +01:00
Wayne Stambaugh
69f758dbcd Update QA configuration files to the latest changes.
This prevents having to revert the changes to these files every time the
QA tests are run.
2025-03-25 10:56:33 -04:00
Jon Evans
1c83f0a70b Implement jumpers for footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
2025-03-24 22:17:46 -04:00
Jon Evans
805ca0c791 ADDED: Jumpers for symbols
Support explicit jumper symbols, defined either by a
flag that all pins with the same number are connected,
or by explicit groups of jumpered pins

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
2025-03-24 22:08:46 -04:00
Jon Evans
fe22166d9f Use stable sort ordering in ERC reports
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20333
2025-03-16 10:25:29 -04:00
JamesJCode
ede5faee72 Implement dynamic assignment of component classes 2025-03-15 14:33:47 +00:00
JamesJCode
68b6c2d1da Add Orientation DRC property QA check 2025-03-06 15:56:39 +00:00
Daniel Treffenstädt
27edf0b949 ADDED: Per layer properties of zones used for control over zone hatching position 2025-03-02 20:31:04 +00:00
Daniel Treffenstädt
3768221d9c ADDED: Support for IPC-4761 Via protection features
Fixes https://gitlab.com/kicad/code/kicad/-/work_items/18837
2025-03-01 18:02:54 +00:00
Daniel Treffenstädt
5e467a969d Added check for custom thermal spoke count
When using custom thermal spoke templates, the user can create templates with fewer, or more, thermal spokes than 4.
2025-02-27 22:40:40 +00:00
Jon Evans
ca21a35bfc Improvements to kicad-cli test repeatability 2025-02-22 10:35:27 -05:00
Seth Hillbrand
9e4204340f Fixup net-tie caching and add QA for netties
When building a net tie, all elements in the footprint that belong to
the net tie can be arbitrarily close to one another.  outside of the
footprint, connected items can be arbitrarily close to the tie element
but must respect the clearance values for elements that have nets
assigned to them

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19933

(cherry picked from commit bff819edb08e3d303c695b79f990374d259e4d0a)
2025-02-13 14:45:40 -08:00
Ian McInerney
088e0e80a1 Fix layer writing/reading for copper zones
* Always enumerate layers - never use the wildcards
* Keep fills on layers the zone is actually on when loading

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19775
2025-01-29 00:31:28 +00:00
John Beard
954ef70a8a QA: add a library-mode footprint load/test/save test
This is not only a useful place to hang regression tests,
but also allows to catch defects specific to loading or
saving footprints.

For example, it would catch:

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19713
2025-01-24 02:11:06 +08:00
Jon Evans
975fe32fa7 Add a mechanism for using a mock config dir for QA tests 2025-01-18 13:40:38 -05:00
JamesJCode
baa0beec4d Update some pcbnew QA files to remove warning messages 2025-01-14 22:49:21 +00:00
Seth Hillbrand
bfb3875a68 Add additional handling for arc collisions
Provides nearest point calculation for circles, segments and rects

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18203
2025-01-14 13:08:45 -08:00
Seth Hillbrand
00de67eea8 Properly handle cleanup for multiple collinear tracks
When we have multiple tracks that share a single anchor, they are
technically a node but should still be cleaned as they are collinear.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19574
2025-01-09 12:10:23 -08:00
Marek Roszko
ae0dc97929 Add qa for cli sch erc 2025-01-04 22:32:53 -05:00
JamesJCode
0c76b723b4 Add ERC QA for wire bus entry unconnected / off grid 2025-01-03 18:13:30 +00:00
Seth Hillbrand
66ee4a1ddd Fix up Annular ring check
- Remove bespoke collide routine.  We should never rewrite these instead
  of using the geometry library
- Optimize check by creating unified geometry before colliding
- Make extra variable that we don't need but makes cherry-picks easier
  (min/maxAnnularWidth)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19325

(cherry picked from commit a611c72c27e1000afb385cc230f1c288309e4c16)
2024-12-23 08:38:45 -08:00
Jeff Young
a048acf9db Don't assume all things with mask layers are in a footprint.
In particular, tracks can now have mask layers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18878
2024-12-20 22:21:54 +00:00