79 Commits

Author SHA1 Message Date
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
Jeff Young
28141ed350 Be more consistent with periods at the end of sentences.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21614
2025-09-07 17:54:22 +01:00
Mark Roszko
9bc463606a More redundant LOCALE_IO 2025-08-27 20:11:26 -04:00
Jeff Young
6dd4e01f16 ADDED: custom body styles.
(Also moves editing of unit display names to the
Symbol Properties dialog and retires the Set Unit
Display Name dialog.)

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

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14843
2025-08-27 18:11:56 +01:00
dsa-t
f896417ed4 Show errors before warnings in DRC/ERC.
(cherry picked from commit 316a9511e813af257af23f60642859fa623537d4)

Co-authored-by: Alex Shvartzkop <dudesuchamazing@gmail.com>
2025-08-21 00:25:07 +03:00
JamesJCode
88c09517f2 Ignore empty net class fields in net class ERC 2025-08-08 14:37:11 +01:00
Mark Roszko
5895c27f4a Rename Prj() on schematic to avoid conflict with global function 2025-08-07 23:21:41 -04: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
Jeff Young
8c85cd43f3 Copy c'tor / operator= safety.
Also fixes a memory leak of search pane handlers.
2025-08-02 22:04:53 +01:00
Jeff Young
3eb66e1b3d Similar local labels on different sheets are fine
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21334
2025-07-30 18:03:50 +01:00
Jeff Young
15468c86b9 Formatting. 2025-07-30 17:56:45 +01:00
Jeff Young
ec155c00f3 Comboboxes for units and body styles.
Also for pin-types in pad properties.

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

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19905
2025-07-23 14:35:37 +01: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
Jeff Young
e230d5164d Honour renderSettings' default font.
This still leaves a few things out in the cold,
such as hit-testing and polygon generation.
But at least it allows us to plot with a default
font.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19031
2025-07-17 09:35:21 +01:00
Seth Hillbrand
ab5aa661e9 Fix a few more stagglers for floating point
Update banned functions to better catch these

- page size
- erc/drc reports
- x/y position files
- color alpha
- footprint reports
- specctra
2025-07-15 13:27:45 -07:00
Jeff Young
21992c5030 Remove overzealous assert (KICAD-7YQ). 2025-07-12 15:53:46 +01:00
Jeff Young
5d3279004f Add undefined netclass to severities list.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20373
2025-06-25 16:23:58 -06:00
Jeff Young
4678000a0e ADDED: DNP, etc. attributes to SCH rule areas.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14037
2025-06-10 18:26:34 +01:00
Jeff Young
1968d67bf3 Prefer const& to passing by value. 2025-06-06 18:28:39 +01:00
Jeff Young
8265950658 Treat stacked pins as a single item in 4-way connection test.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20532
2025-06-02 12:53:17 +01:00
Jeff Young
2dd28d18e8 Performance improvements for ERC. 2025-05-26 13:37:57 +01:00
Jeff Young
42c68f1a16 Uniform application of recursion guards in simulation code. 2025-05-25 09:09:11 +01:00
Jeff Young
f58fc0b952 Rewrite GROUP undo based on uuids.
This also removes the GROUP/UNGROUP-specific undo actions.

This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.

This also fixes some undo bugs when dividing wires etc.

This also fixes some bugs with new sch items not
being created within an entered group.
2025-05-21 14:24:59 +01:00
Jeff Young
524575a595 Allow embedded files to come from components
as well as parent containers, part II.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20210
2025-04-25 12:26:31 +01:00
JamesJCode
a5be581b1b Add char_traits<T> specialisations for wxUniChar and NANODBC_SQLCHAR
when building on Apple with Clang >= 17.

These specialisations are not strictly required by the C++ standard,
and have been removed from LLVM.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20631
2025-04-15 20:57:23 +01:00
Mike Williams
c67924ccac schematic: convert RunOnChildren to also take recursion mode argument
Prepping for SCH_GROUPS, making consistent with the PCB code.
2025-03-27 13:16:09 -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
Jeff Young
38cf86cb09 Don't flag double no-connect annotations.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20222
2025-03-06 10:27:07 +00:00
Seth Hillbrand
49a4699d5a ADDED: Local power symbol option
Local power symbols work like regular power symbols except that they are
scoped only the the sheet in which they are instantiated

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2075
2025-03-04 17:07:46 -08:00
Wayne Stambaugh
a9cea9fbb7 Show the correct footprint name on footprint filter mismatch ERC warning.
The lower case variant used for internal comparison was being used which
is confusing because it doesn't match the footprint name capitalization.
2025-02-27 09:48:13 -05:00
Jeff Young
f9c41d70d1 No-connect pins aren't endpoints.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18316
2025-02-24 11:08:29 +00:00
Seth Hillbrand
157c7422b0 Allow sim models to reference embedded files
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20024
2025-02-22 14:53:59 -08:00
Jeff Young
2a1b93a254 Fix bugs in library existence checking, and add for symbol libs. 2025-02-19 23:43:52 +00:00
Alex Shvartzkop
83fc5ff793 Allow severity specifiers to be translated in ERC/DRC items. 2025-02-16 16:36:04 +03:00
JamesJCode
35172fe402 Guard against null m_part in erc TextVar checks
Also removes duplication of LIB_SYMBOL dummy() construction methods

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19575
2025-01-10 00:13:53 +00:00
Jan Wichmann
473b43994c Fixed severity ERC local and global labels
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18814
2025-01-05 22:10:47 +00:00
Ian McInerney
d847e2bd92 Add ERC check for off-grid bus entry 2025-01-03 14:32:43 +00:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
John Beard
a55915726f Eeschema: tiny tweak to DRC rule wording
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19118
2024-12-25 00:33:48 +08:00
Jeff Young
1e9d9adb09 Remove duplicate-pin-error from severities list.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19293
2024-12-16 13:26:48 +00:00
Jeff Young
4883c27972 Handle ERC/DRC assertions in drawing sheet.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19132
2024-12-02 20:13:43 +00:00
Jon Evans
499ed2ef93 Fix similar labels ERC to catch all errors
Logic issue with test was causing QA failures on macOS
due to the order of item iteration changing between
the QA test and eeschema standalone, and the test not
checking more than one possible mismatch per normalized name.
2024-12-01 15:50:40 -05:00
Jeff Young
ae6171a988 Match filters against full-id and lib-item-name.
Also, filter matching is case-insensitive.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19074
2024-12-01 17:29:16 +00:00
Alex Shvartzkop
74a507249d Try to work around AppleClang 15 compiler bug.
The error message is:
reference to local binding 'pinIt' declared in enclosing function 'ERC_TESTER::TestPinToPin'
2024-11-23 14:52:41 +03:00
Daniel Treffenstädt
81ecccb21c Fixed: Fewer ERC items for pin connection conflicts in larger set of conflicting pins 2024-11-22 23:26:31 +00:00
jean-pierre charras
16d389a488 ERC: fix "label not connected anywhere" ERC does not have configurable severity
Fix also the right message if the label is a global label.
Rename ERCE_GLOBLABEL to a better name ERCE_GLOBLABEL_DANGLING

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19119
2024-11-12 13:35:05 +01:00
Wayne Stambaugh
a6923b3de3 Cache full schematic sheet list sorted by sheet page number.
The sheet list is returned as a copy of the cached list rather than a
reference to prevent external code from changing the list.  While not as
performant, it eliminates the risk of the sheet list being altered in
ways that could break the schematic.  The sheet list should only be
updated by calling SCHEMATIC::RefreshHierarchy() when any appropriate
sheet changes are made.

Note to developers: there is something inherently different about how the
QA tests are loading and handling schematics versus the schematic editor.
Using the cached sheet list for the SCHEMATIC object will cause some QA
test to fail.  This is why SCHEMATIC::Hierarchy() has not replaced
SCHEMATIC::BuildSheetListSortedByPageNumbers() everywhere.
2024-10-09 09:58:50 -04:00
John Beard
df5fe44839 sch_symbol.h doesn't need sch_lib_table.h
It doesn't even use the forward-declared
SYMBOL_LIB_TABLE.

Including this pulls in the whole richio system,
and sch_symbol.h is a very-included header.

Quite a few things do use SYMBOL_LIB_TABLE, but nowhere
near as many as use SYMBOL.
2024-10-04 18:06:18 +01:00
John Beard
2815c99a2a Use our own hash function rather than boost::hash
I just wanted to get a fairly chonky Boost include out of a header, but
then I noticed this doesn't need to use Boost at all.
2024-09-11 22:08:36 +01:00
Alex Shvartzkop
36019314e9 Make simulation reporter warnings non-fatal.
Adds REPORTER::HasMessageOfSeverity for WX_STRING_REPORTER,
which allows us to show simulation warnings and fail only if there's errors.

Also fixes a crash when SPICE_GENERATOR_KIBIS throws an IO_ERROR.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18143
2024-09-05 05:59:35 +03:00