Commit Graph

8347 Commits

Author SHA1 Message Date
Wayne Stambaugh 898ec0d094 Fix wxWidgets 3.1 and later deprecated build warnings.
wxWidgets 3.1 has deprecated wxPATH_NORM_ALL when normalizing file
paths when calling wxFileName::Normalize().  This change keeps the
existing behavior except in places where our own internal
ExpandEnvVarSubstitutions() to expand environment variables.
2022-08-15 08:00:40 -04:00
Marek Roszko c418b25756 Centralize the parseDouble functions in the parsers and gcc specialcase 2022-08-14 18:46:19 -04:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
Jeff Young 18ac169ac7 Add contexts to EDA_COMBINED_MATCHER. 2022-08-14 22:56:29 +01:00
Roberto Fernandez Bautista 69d696660b cadstar: Report warning that imported text may be different
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12195
2022-08-14 22:24:16 +01:00
Marek Roszko a070959209 Switch from strtod to std::from_chars for performance 2022-08-14 16:19:24 +00:00
BugRepellentExtraStrong 02a6566438 eeschema: Fixes wrong displayed secondary worksheet
Fixes https://gitlab.com/kicad/code/kicad/issues/12017
2022-08-14 14:52:23 +00:00
jean-pierre charras 4270c6d676 DIALOG_SYMBOL_PROPERTIES: rebuild the pin list when selecting another unit. 2022-08-13 11:00:00 +02:00
Seth Hillbrand d142cf239e Avoid null pin assertions
When changing units, we might not have the original pins
available to set the Alt assignments.  Instead, we search
by number and skip the pin if it doesn't exist in the
new unit

Fixes https://gitlab.com/kicad/code/kicad/issues/12218
2022-08-12 18:25:49 -07:00
jean-pierre charras 488a53e71b Fix a few minor Coverity warnings 2022-08-12 10:51:36 +02:00
Mikolaj Wielgus 6d59fef9a5 Sim: Fix reading the legacy Spice_Node_Sequence field (2nd attempt)
bd809bf31c was botched and broke QA tests,
this will fix the problem.
2022-08-11 15:50:16 +02:00
Mikolaj Wielgus bd809bf31c Sim: Fix reading the legacy Spice_Node_Sequence field 2022-08-11 02:42:16 +02:00
Mikolaj Wielgus a1a99b1ec2 Sim QA: Check NGSPICE's LoadNetlist() and Run() status code 2022-08-10 17:54:28 +02:00
Mikolaj Wielgus 0040ffc567 Convert strings to UTF8 before they are input to PEGTL
Otherwise there are QA failures under non-UTF-8 locales.
2022-08-10 14:20:52 +02:00
jean-pierre charras b5c83ffd95 Eeschema, slash in power pin name: better fix than commit ba7a06f5.
ba7a06f5 tried to fix a (minor) issue in net names when the name was coming
from a input power pin having a '/' in name. But ba7a06f5 blindly escaped any '/'
in net name, and the hierarchy info was lost.
Now only the pin name is escaped (like any other pin name used in net names)
2022-08-10 11:00:19 +02:00
jean-pierre charras 574783bf70 netlist_exporter_spice: cleanup data lists when rerun the netlister.
It avoid duplicate includes when rerun the simulator.
Avoid also duplicate includes found in symbols.
Fixes #12192
https://gitlab.com/kicad/code/kicad/issues/12192
2022-08-09 20:52:06 +02:00
jean-pierre charras 4f7d7013e0 netlist_exporter_spice: fix crash when re-run the simulator after a schematic change.
Fixes #12142
https://gitlab.com/kicad/code/kicad/issues/12142
2022-08-09 18:33:54 +02:00
Jeff Young ba7a06f52e Escape netnames with illegal characters in them.
Fixes https://gitlab.com/kicad/code/kicad/issues/12194
2022-08-09 15:05:10 +01:00
Marek Roszko 09da6f32dc Copy ngspice codemodels for MSVC 2022-08-08 21:57:44 -04:00
Marek Roszko 22649f79e8 Fix some ngspice handling during build for MSVC 2022-08-08 18:42:27 -04:00
Jeff Young a11f48ef10 Markers provider is no longer responsible for all markers.
Unconnected items and schematic partity violations are also now
represented by markers, so the ERC/DRC window itself needs to do
the deep-delete.

Fixes https://gitlab.com/kicad/code/kicad/issues/12182
2022-08-08 22:02:20 +01:00
Mikolaj Wielgus 67476c330e Fix broken PEGTL include path 2022-08-08 17:50:42 +02:00
Mikolaj Wielgus 5096f5d8a9 Sim: Fix inference of RLC models with garbage suffixes
Garbage suffix is e.g. the "F" in "100uF".
2022-08-08 17:06:50 +02:00
jean-pierre charras 842c8df4c3 SYMBOL_EDIT_FRAME: fix a better initial zoom when no symbol loaded 2022-08-08 15:50:00 +02:00
Mikolaj Wielgus 24e7a8ac41 Commit missing eeschema/sim/sim_model_ngspice_data.cpp 2022-08-05 18:51:52 +02:00
Mikolaj Wielgus c9f3507ff7 Sim: Don't require ngspice.h for SIM_MODEL_NGSPICE 2022-08-05 18:26:09 +02:00
Jeff Young 2b1cfd6a74 ADDED support for NET_NAME, SHORT_NET_NAME and NET_CLASS system vars.
They can be used in fields of any of the label types.

Fixes https://gitlab.com/kicad/code/kicad/issues/12158
2022-08-04 18:07:25 +01:00
jean-pierre charras d667d9b464 Do not include and use sharedspice.h when KICAD_SPICE = OFF 2022-08-04 17:01:29 +02:00
jean-pierre charras 7441510b3c CONNECTION_GRAPH::Recalculate(): ensure unit and pin list are up to date.
Multi-unit symbols created previously incorrect connections, due to not
up to date or missing data. I also saw crashes due to this not up to date data
Fixes #12149
https://gitlab.com/kicad/code/kicad/issues/12149
2022-08-03 17:21:16 +02:00
Jeff Young ced55583a6 Back out unordered_map change for SCH_ITEM.
We're sensitive to the ordering in this one.

Also fixes a problem with the unit tests when KICAD_SPICE=OFF.
2022-08-03 14:29:34 +01:00
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Mikolaj Wielgus a14d3e74a8 Remove generate_ngspice_models.bash script 2022-08-02 14:50:02 +02:00
Mikolaj Wielgus 5d64fc12a1 Attempt to fix GCC MSYS2 build crash
Initialize ngspice_models.cpp structures at runtime on demand. Use
a sequence of std::vector::emplace_back() instead of
brace-initialization.
2022-08-02 14:47:28 +02:00
jean-pierre charras c815847b1e DIALOG_SIM_MODEL: fix some issues (not all)
* internationalize
* fix min size
* show lib filename in a not editable wxTextCtrl instead of a wxStatic Text
2022-08-02 12:52:22 +02:00
Jeff Young 6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
Seth Hillbrand 225b03d702 Move sheetpins by their connection point
Need to calculate the sheet pin anchor position in order to get it
aligned to the grid while moving

Fixes https://gitlab.com/kicad/code/kicad/issues/12134
2022-07-31 20:02:57 -07:00
Seth Hillbrand 4074409890 Fix broken compile on Linux/Mac
Template instantiations need to follow the template definitions or you
don't get all of the template members, just the ones called from within
the file
2022-07-31 19:49:28 -07:00
Seth Hillbrand e8627c89df Fix initial compile error on Linux.
Still getting link error with DIALOG_SIM_MODEL
2022-07-31 16:43:52 -07:00
jean-pierre charras 578b13c041 sim/ngspice_models.cpp: compile this file always in release mode (msys2).
On msys2, this file (mainly a large amount of data) compiled in debug mode
crashes Eeschema at start (issue probably related to a memory issue).
On msys2, binaries built in debug are always *very* large
2022-07-31 17:27:48 +02:00
jean-pierre charras fc849e3e0c sim_model.h: change order of includes to avoid conflicts with a windows header.
msys2 specific. No actual change in code.
2022-07-31 10:32:31 +02:00
Mikolaj Wielgus 5e47ce8963 Fix build errors when KICAD_SPICE=OFF 2022-07-31 07:59:00 +02:00
Seth Hillbrand fe3a112396 ADDED: Allow stacked pins of the same type
Removes the need for the "KiCad" workaround where stacked pins need
to be "Passive" type.  Pins that have the same parent symbol, name,
position and type are considered to be the same output and do not
trigger ERC errors

Fixes https://gitlab.com/kicad/code/kicad/issues/5367
2022-07-30 13:16:30 -07:00
jean-pierre charras ee1d458af0 Eeschema: fix crash in SCH_SHEET_LIST::MigrateSimModelNameFields() for SCH_TXTBOX items.
Due to a typo, if a SCH_TXTBOX is in a scheet, it crashes eeschema.
2022-07-30 15:57:59 +02:00
jean-pierre charras 4915f6ca20 Fix a few compil warnings 2022-07-30 14:06:51 +02:00
Mikolaj Wielgus 7cf5138c63 Sim: Bugfixes, mostly for MS Windows compilation errors
Unfortunately, Windows headers define a lot of macros for common words,
so we had to rename some enums to not collide.

We also fix some of the many bugs related to the new simulation
architecture and the Spice Model Editor dialog.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 739b9255d9 Sim Model Editor improvements
- Tab-switching,
- Automatic expansion of categories on tab-switch,
- Various minor simulation improvements,
- Various new simulation-related bugfixes.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 6984f63af8 Sim: Transmission line models
Implement transmission line models and perform some adjustments to
the current models. Add some QA tests.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus fe38c622a9 Sim: Improvements to model serialization
Don't serialize parameters in certain models for default values. Infer
models from Value field for some kinds of models. Resolve synonyms when
loading models from Spice libraries.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 6450ec6b85 Sim: Spice netlist exporter rewrite
Rewrite the spice exporter to work with the new simulation model
architecture and data model, with many bugfixes related to the latter
two along the way.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus ce84a48037 Sim: Implement loading Spice library files
Implement parsing and loading Spice libraries into KiCad. This is done
without any involvement of Ngspice -- we create our own in-tree parser
using PEGTL -- because Ngspice doesn't offer any intermediate output we
could plug ourselves into. We don't parse everything -- just the library
content, so this won't be that much effort.

We implement some basic Spice code preview to give the user a hint what
Spice code eir model will correspond to.
2022-07-30 02:25:34 +00:00