455 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
Mark Roszko
9f1aa612ec Fix position of package properties that must follow packages 2025-09-04 07:16:02 -04:00
Mark Roszko
9de2548064 Fix typo in allegro output for nets 2025-09-04 07:09:12 -04:00
Mark Roszko
a899da7cb7 Fix double quoting tol for some reason 2025-09-03 22:59:37 -04:00
Mark Roszko
9bc1cf006f Fix the allegro netlist export and move mostly to {fmt}
Weirdly $PACKAGES header got shifted out of position.
Drop generating empty references.
2025-09-03 22:54:00 -04:00
Seth Hillbrand
2f21414186 Revert "Allow netlisting for multi-unit parts"
Breaks QA.  need to debug before re-committing

This reverts commit 635445c096c8624a47c9e0fdd6c1ebefa668e973.
2025-08-26 22:07:40 -07:00
Seth Hillbrand
8bd6da3ec9 Revert "Fix build error"
This reverts commit 19e4c3f498b8b66eacd2b651a570f0f137a8b6b2.
2025-08-26 22:07:26 -07:00
Mark Roszko
19e4c3f498 Fix build error
std::string does not have a overload for appending a wchar
2025-08-26 20:25:56 -04:00
Seth Hillbrand
635445c096 Allow netlisting for multi-unit parts
Merges pin map from each unit into coherent model prior to exporting for
spice simulation

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1779
2025-08-26 15:02:37 -07:00
Mark Roszko
5895c27f4a Rename Prj() on schematic to avoid conflict with global function 2025-08-07 23:21:41 -04:00
Seth Hillbrand
4aa2047f45 Replace alg::delete and alg::delete_if with std c++20 2025-08-04 09:03:16 -07:00
Jeff Young
d8cbafe858 Fix merge error. 2025-07-20 19:06:40 +01:00
Alex Shvartzkop
4a5039c2cf Remove some unused variables. 2025-07-02 16:48:26 +03: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
4cf559ad27 Performance tweak. 2025-06-09 12:54:30 +01:00
Jeff Young
1968d67bf3 Prefer const& to passing by value. 2025-06-06 18:28:39 +01:00
Jeff Young
327cca9de5 Coverity fixes. 2025-05-25 20:01:18 +01:00
Jeff Young
42c68f1a16 Uniform application of recursion guards in simulation code. 2025-05-25 09:09:11 +01:00
Mike Williams
d2f0a13515 groups/design blocks: add lib link to groups from design blocks
Also add Place Linked Design Block function.
2025-05-13 10:41:32 -04:00
Mike Williams
a17ef3fd93 groups: add support for syncing from SCH->PCB 2025-05-07 12:40:59 -04:00
Jeff Young
b01fef5ca8 Update visibility flag when adding fields.
Also removes extra c'tor which fails to set the
ordinal.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20556
2025-04-26 16:37:36 +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
Jon Evans
1c83f0a70b Implement jumpers for footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
2025-03-24 22:17:46 -04:00
Jeff Young
5ec526fe4f Don't write out empty footprint filters.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20394
2025-03-20 10:02:26 +00:00
Jeff Young
c5bb59468d Get rid of assumptions about field order. 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
e19bce2f93 Reduce reliance on MANDATORY_FIELDS and their implied order. 2025-01-22 17:51:57 +00:00
Jeff Young
4fe05bfe47 Remove some more usages of MANDATORY_FIELDS. 2025-01-21 23:38:55 +00:00
Jeff Young
a0dd0485e9 Pull a little harder on the MANDATORY_FIELDs string.
We still conflate the fieldID, the position in the
array of fields, and whether or not that means the
field is mandatory.  But this attempts to clean up
*some* of that, without introducing too much risk.
2025-01-21 16:48:13 +00:00
Jeff Young
d50b69f1ae Reconcile divergence of MANDATORY_FIELDS between symbols and footprints.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19697
2025-01-21 13:28:28 +00:00
Jeff Young
232542f42b Re-work filtering of temp-dir messages in jobset outputs.
(Also rationalises some of the output reporting
for consistency.)
2025-01-17 15:58:21 +00:00
Seth Hillbrand
6769efc807 Contain the unescaped netnames to XML output
Kicad netlists branch off the xml, so keep their output stable.  Only
use XML-based escaping for XML files
2025-01-13 19:48:13 -08:00
Seth Hillbrand
6beeabd5d2 Ensure netlist netnames are readable
We don't need name escaping here because XML has a standard escaping
paradigm (HTML-like) that will be applied to the strings when written to
the file
2025-01-13 16:49:01 -08:00
Seth Hillbrand
7728d5eccf Keep effective netclass data in XML output
Tagging nets allows downstream processors to more effectively handle
KiCad outputs

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13240
2025-01-13 16:39:12 -08: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
Jeff Young
e04f873765 Honour sheet-level DNP & Exclude from BOM in symbol fields table.
(And also in netlist exporter.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18717
2024-12-22 21:22:30 +00:00
Jeff Young
7da8b42206 Push more functionality to SYMBOL.
(This will allow us to run the fields autoplacer on SYMBOLs,
including LIB_SYMBOLs.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19247
2024-12-22 20:21:24 +00:00
JamesJCode
3a7aa7b660 Ensure deterministic ordering in cadstar netlist exporter
Also re-enable checking of exporter in qa_cli
2024-12-20 11:50:23 +00:00
JamesJCode
c9d74d24f0 Ensure deterministic ordering in orcadpcb2 netlist exporter
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18822
2024-12-19 23:01:32 +00: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
3d6d8b9946 Strip richio.h from headers that don't need them
Like the DSNLEXER header, this has visibility in over 700
files, whereas well under half actually use any of it
(quite a bit, but not all, of it actually via DSNLEXER)

Many places already forward-declare the OUTPUTFORMATTER type,
by doing that for the others, it still possible to use the
non-IO methods without having to see richio.h.
2024-10-04 18:06:18 +01:00
JamesJCode
d64a112971 Implement Component Classes
- Adds Component Class field to SCH_DIRECTIVE_LABEL
- Adds SCH_SYMBOLs to SCH_RULE_AREA item lists
- SCH_SYMBOLs resolve Component Class directives
- Netlist exporter / importer handles Component Class names
- Adds DRC expressions and functions
- Adds QA check for component class netlist export
2024-10-01 22:36:18 +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
Jeff Young
9fcbd4e6d0 Slight reduction in asserts. 2024-07-18 18:01:05 +01:00
Mike Williams
a5e2615251 Revert "SCH/LIB SYMBOL: never allow null LIB_SYMBOLs in SCH_SYMBOL"
This reverts commit 0b187e71227d2129d271f24fb92ae0b99b6f93bd.
2024-06-12 13:30:29 -04:00
Jeff Young
de2fbbd11a Fix stack address escaping routine. 2024-06-10 20:23:36 +01:00
Jeff Young
4e133ae83b Cleanup. 2024-06-10 20:23:36 +01:00
Jeff Young
a02cb75656 Cleanup. 2024-06-10 20:23:36 +01:00
Jeff Young
2e38fa84bf Don't allow writing "//" to spice netlist.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18161
2024-06-10 15:36:20 +01:00