Jeff Young
9dc16eb014
Don't include non-overridden parameters in Sim.Params.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14369
2023-03-22 13:52:17 +00:00
Jeff Young
39a801423e
Separate legacy model name from parameters.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13988
2023-03-21 13:29:17 +00:00
Ian McInerney
016c958021
Always build spice simulator support
...
The simulator has advanced considerably, and it is seeing lots of active
development, so make it a required part of KiCad. Additionally, the
build without the simulator has actually been broken for a while, so no
one clearly is building without ngspice right now.
2023-03-20 16:54:32 +00:00
Jeff Young
5798b586f0
Ignore extraneous LTSpice parameters for VDMOS models.
...
Also adds special case handling of VDMOS syntax to allow parens (or extra
spaces, linebreaks, etc.) between "VDMOS" and "NCHAN"/"PCHAN".
Fixes https://gitlab.com/kicad/code/kicad/issues/14299
2023-03-20 16:16:44 +00:00
Jeff Young
a14c017def
Save location of legend in worksheet.
...
Also provides a different cursor when over a legend (to make it clearer
that you can drag it).
2023-03-20 09:51:41 +00:00
Jeff Young
ec6d709929
Make sure legend reflects gain/phase for AC small signal analyses.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14301
2023-03-19 23:02:58 +00:00
Jeff Young
607622e8f8
Make the two Create() methods more parallel.
2023-03-17 15:58:28 +00:00
Jeff Young
222cd4d009
Handle underscore in parameter names.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14308
2023-03-16 23:40:52 +00:00
Jeff Young
6d296038f3
Improve simulation error reporting.
...
1) More REPORTER, less exception processing
2) Remove UI calls from SPICE_MODEL
3) Don't replace netlist with errors; show both
4) Don't bail out of netlist generation after single error
Fixes https://gitlab.com/kicad/code/kicad/issues/14295
2023-03-16 16:12:29 +00:00
Jeff Young
5041bddc3b
Union workbook sim commands with any defined on schematic.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14215
2023-03-10 21:33:06 +00:00
Jeff Young
3bc5e3dd8a
Added PSPICE/LTSPICE JFET model parameters.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12425
2023-03-10 21:33:06 +00:00
jean-pierre charras
6343147bb3
Fix Coverity warnings.
2023-03-08 11:37:56 +01:00
Jeff Young
630ff02369
Fix bone-headed logic.
...
(Else clause never gets called because 3 is always > 2.)
2023-03-06 10:26:59 +00:00
aris-kimi
5b43dc4e7b
Simulator: Fix diode ibv unit
2023-03-05 19:23:33 +02:00
Alex
d2bd7e33b9
Remove extra canvas redraws when changing sheets.
2023-03-05 04:33:07 +03:00
Jon Evans
610e787ada
Move to requiring explicit action to save project settings
2023-03-04 14:25:07 -05:00
Wayne Stambaugh
4e99812145
Coverity fixes and code cleaning.
2023-03-04 13:02:05 -05:00
Jeff Young
d714ff8549
Don't commit changes on paint events or updateUI events.
...
Also use std::numeric_limits::epsilon for comparing doubles.
Fixes https://gitlab.com/kicad/code/kicad/issues/13851
2023-03-04 00:10:01 +00:00
Jeff Young
b6d0b65261
Naming conventions and commenting. No functional changes.
2023-03-04 00:10:01 +00:00
Jeff Young
14f1f3ec79
Convert inline models in Sim.Params fields to SPICE syntax.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14157
2023-03-03 18:18:03 +00:00
Jeff Young
dcba555d44
Make SME prop-grid hack Mac-only.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13852
2023-03-02 10:42:13 +00:00
Jeff Young
63a545ebfd
We don't need "(gain)" or "(phase)" in names any more.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14140
2023-03-02 00:38:39 +00:00
Jeff Young
190ee58ccf
Don't deliver pedantic error messages to user.
2023-03-02 00:38:39 +00:00
aris-kimi
db2780090c
Simulator: Fix RLGC c unit
2023-03-01 23:03:54 +00:00
Jeff Young
9c68d4792f
Fix bungle from earlier merge.
2023-03-01 13:43:46 +00:00
Jeff Young
f5edcf82f2
Move only-write-model-if-it-contains-overrides up to base class.
...
It's necessary to keep us from writing out model lines for included
models and fall-backs of included models.
2023-03-01 13:31:57 +00:00
aris-kimi
4a761179d0
Simulator: Fix some cases with initial conditions
2023-02-28 21:31:04 +00:00
Jeff Young
281fde71b9
Make SIM_MODEL_SPICE_FALLBACK act more like the model it's a fallback for.
...
In particular, install/show the parameters, and keep the existing name
field.
Fixes https://gitlab.com/kicad/code/kicad/issues/14102
2023-02-28 12:26:04 +00:00
Jeff Young
766b1a1ca8
Continue rationalisation of vector, trace and signal names.
...
Also add a little bit more code so user-defined signals can be edited
without resetting their properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/14072
2023-02-27 21:11:31 +00:00
Fabien Corona
5b2784f418
sim - switches: open <-> closed in description
2023-02-27 09:54:14 +00:00
Jeff Young
79f13ea9c7
Don't eval empty string.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13756
2023-02-26 23:14:09 +00:00
Jeff Young
beb177fa79
Try and sort out the mess that is trace names and trace titles.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14016
2023-02-26 18:08:42 +00:00
Jeff Young
551773bf17
Save plot prefs (legend, grid, and dotted-secondary).
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13940
2023-02-26 11:57:49 +00:00
Jeff Young
23c1a23faf
Provide power axis for DC-sweep analyses.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14087
2023-02-25 23:11:29 +00:00
Jeff Young
8c8c5e1824
Provide a default xaxis for DC-sweep so we can add traces before sim is run.
2023-02-25 22:42:52 +00:00
Jeff Young
1fdc81e68d
Make substrate and thermal junction nodes optional.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14083
2023-02-25 20:36:30 +00:00
Jeff Young
77ed53ab25
Nullptr safety.
2023-02-25 18:33:32 +00:00
jean-pierre charras
49a9fe38a0
Fix a compil warning
2023-02-25 19:06:46 +01:00
Jeff Young
4b427b2d0c
Add second instance of "don't mess up user formatting" fix.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13989
2023-02-25 16:31:16 +00:00
Jeff Young
2e5bf0210a
Clear model name when switching to internal model.
...
Also fixes a bug to ensure that a modelLine gets written when using
an internal model.
Fixes https://gitlab.com/kicad/code/kicad/issues/14083
2023-02-25 15:22:20 +00:00
Jeff Young
9a0aeb4344
Adjust AC-small-signal plot names when saving placeholders.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14016
2023-02-25 13:26:33 +00:00
Jeff Young
ee956673b1
Respect readOnly cells in GRID_TRICKS.
...
Also fixes setting colors in the signals grid as it allows us to make
it editable again.
Fixes https://gitlab.com/kicad/code/kicad/issues/14079
2023-02-25 11:02:12 +00:00
Jeff Young
5a12e5ee76
Only write included models if they have overridden parameters.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13953
2023-02-24 20:31:35 +00:00
Jeff Young
c188318174
Change strategy for committing values from SIM_MODEL propGrid.
...
Note that the PCB editor's propGrid doesn't seem to need this workaround,
but I haven't yet figured out what's different between it and the sim model
propGrid.
Fixes https://gitlab.com/kicad/code/kicad/issues/13852
2023-02-24 14:22:00 +00:00
Jeff Young
200a06a677
Cleanup some dead code, and add a potentially needed fix for non-Mac.
...
(The Mac bug is fixed in 4e5b1da81fce7cd9ffedaec878ed07bfcfff4fe2 in
our wxWidgets fork.)
2023-02-24 12:44:55 +00:00
Jeff Young
8059edff0e
Don't mess up user formatting if eval'ing didn't actually change value.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13989
2023-02-24 12:44:55 +00:00
Jeff Young
71df3f9edb
Don't allow extra text in Sim.* fields.
...
(In particular, the field name.)
Fixes https://gitlab.com/kicad/code/kicad/issues/13996
2023-02-24 12:44:55 +00:00
jean-pierre charras
2b3eb0b522
fix minor compil warnings
2023-02-23 09:50:28 +01:00
Jeff Young
4917abe655
Make sure whitespace at end of command doesn't mess up detection.
...
(Fixes the failing test case.)
2023-02-22 23:29:13 +00:00
Fabien Corona
cdbb868198
sim - allow users to delete several measurements at once
2023-02-22 19:27:20 +01:00
Fabien Corona
9006f38e70
sim - Don't allow user to delete the type-in measure entry
2023-02-22 19:27:20 +01:00
Fabien Corona
1170fb2e18
sim - don't create measurement duplicates
2023-02-22 19:27:20 +01:00
Fabien Corona
aa006e9b91
sim - allow to add several measurements at once.
2023-02-22 19:27:20 +01:00
Jeff Young
6fcae34f6b
Clear operating points on all sim types.
...
(We'll fill them back in if we have data.)
Also improves handling when a plot tab is closed.
Also fixes dirtying of the view for op changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/13990
2023-02-22 15:54:18 +00:00
Jeff Young
fe2679d965
Implement default levels for JFETs, MOSFETs and MESFETs.
2023-02-22 15:54:18 +00:00
Fabien Corona
ae3a5c1c5f
sim - set the dialog list as read only
2023-02-22 15:54:49 +01:00
Fabien Corona
f2419e9e9b
sim - Fix power graphs
2023-02-22 13:18:12 +01:00
Jeff Young
cb71ea872b
Don't allow 0 field text size.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13987
2023-02-22 11:40:49 +00:00
Fabien Corona
e24ddd0be4
ADDED: Measurement on power signals and integrals
...
Fixes #14028
2023-02-22 12:11:09 +01:00
Jeff Young
f828d50cb0
Better processing of single-empty-row rule for measurements grid.
2023-02-22 10:45:27 +00:00
Jeff Young
5fa7be0320
Update signals after running a sim.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14016
2023-02-22 10:45:27 +00:00
Jeff Young
a126d961d8
More dead code removal and a bit of formatting and const& for strings.
2023-02-22 10:45:27 +00:00
Jeff Young
68fe146861
Remove most of SIM_VALUE in favour of good old wxString.
...
This allows us to save the user's intent, including units, formatting,
and crucially variable references.
2023-02-22 10:45:27 +00:00
Jeff Young
29f21cdde6
Terminology and more dead code.
2023-02-22 10:45:27 +00:00
Jeff Young
90adc26b73
Remove dead and redundant code.
2023-02-22 10:45:27 +00:00
aris-kimi
543a3317b4
Fix typo
2023-02-21 18:01:13 +00:00
Jeff Young
761b59da90
Read and write user-defined signals and measurements to workbook file.
2023-02-21 13:32:01 +00:00
Jeff Young
7fd707952b
Easier editing of new sim measurements.
2023-02-21 13:32:01 +00:00
Jeff Young
6fcb95b24e
ADDED user-defined signals.
2023-02-21 13:32:01 +00:00
Jeff Young
f6fcae479c
Don't generate error messages fetching sim data we know isn't there.
2023-02-21 13:32:01 +00:00
jean-pierre charras
b05b33a9ff
Fix a compil issue with gcc12.2 and Coverity warnings.
2023-02-21 11:54:38 +01:00
jean-pierre charras
31be74b8b3
Fix a few Coverity warnings
2023-02-20 09:25:01 +01:00
Marek Roszko
d55e2049e5
Silence some warnings with static_casts
2023-02-18 23:36:50 -05:00
Marek Roszko
aacc9746e3
Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere
2023-02-18 22:57:18 -05:00
Fabien Corona
facd50f4fd
sim - missing assignment
2023-02-18 15:36:47 +00:00
jean-pierre charras
07f79208b9
Minor fixes: Coverity and compil minor warnings.
2023-02-18 13:04:43 +01:00
Fabien Corona
5482bc2905
sim - Check FindParam() results before using them
2023-02-18 12:54:55 +01:00
Fabien Corona
f5902dad28
sim - don't write dc parameter twice
2023-02-18 10:07:29 +00:00
Fabien Corona
fa0cc09917
sim - allow sources that are both AC and TRAN
2023-02-18 02:17:48 +00:00
Fabien Corona
39a1b14a0f
sim: VSIN - allow user to specify a phase
...
TD is not the same as PHASE.
TD is the delay before the source turns on.
PHASE is ... the phase
If only TD is set, the signal starts later, but the phase is still 0 when compared to the t=0 of the simulation.
2023-02-18 00:38:46 +00:00
Jeff Young
8b1318c92f
Update associated data structures after changing trace colour.
...
Also removes likely benign but never-the-less useless grid even processing
during rebuilding of the grids.
Fixes https://gitlab.com/kicad/code/kicad/issues/13956
2023-02-17 00:47:01 +00:00
Jeff Young
d5e50b70bb
Display a generic "Value" column label when there are no cursors.
2023-02-16 16:55:26 +00:00
Jeff Young
f50d114b27
Push gain & phase for .probe statements in AC analysis.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13941
2023-02-16 16:14:25 +00:00
Jeff Young
95232edd0d
Do a better job of looking for .probe commands in directives.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13941
2023-02-16 12:42:54 +00:00
Jeff Young
d8a4f9821e
Smarten regex to accept ':' in signal names.
...
(In fact, just accept anything up to the closing paren.)
Fixes https://gitlab.com/kicad/code/kicad/issues/13942
2023-02-16 12:20:55 +00:00
Jeff Young
c618bb7046
Correctly netlist a voltage source with both AC and DC values.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13912
2023-02-15 14:50:31 +00:00
aris-kimi
dca1281263
Fix some typos
2023-02-14 23:47:05 +02:00
Jeff Young
9ce18dffdd
Better startup experience for simulator.
...
Pre-load signals list (and plot panel if there is an schText simulation
command).
Also fixes a bug where the workbook was getting dirtied on open because
the events would fire after the dirty flag had been cleared.
2023-02-14 11:59:17 +00:00
Jeff Young
df00585a55
ReadDataFields must be a separate step from Create.
...
Create() is done without execption processing, while ReadDataFields
should have exception processing.
(This also fixes a case where exception processing on ReadDataFields
was missing.)
Also fixes a bug where the pinSelect menu wasn't checked for -1 before
fetching.
Fixes https://gitlab.com/kicad/code/kicad/issues/13856
2023-02-13 12:43:25 +00:00
Marek Roszko
2cc3d8e9bc
Prevent a crash when a spice SW_I lacks two pin net names
...
Fixes KICAD-5D
2023-02-12 22:26:19 -05:00
Jeff Young
74eb587291
Better sorting within sections (voltage, current, power).
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13846
2023-02-12 23:16:45 +00:00
Marek Roszko
4665823089
Turn on and fix MSVC compliance mode issues
...
We want /permissive- to enable debug performance improvements in MSVC 17.5+.
This flag is also default under C++20 so we'll have to deal with these compile issues anyway at some point in the future.
In particular, MSVC becomes pedantic about ternary types.
See https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170#ambiguous-conditional-operator-arguments
MSFT cites https://cplusplus.github.io/CWG/issues/1805.html
2023-02-12 16:30:37 -05:00
Graham Keeth
6af3dadaee
Fix SPICE pins for BJTs and MESFETs
...
- MESFETs don't have a substrate/bulk pin
- BJTs have a substrate pin, and HICUM/VBIC have TJ
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13848
2023-02-12 21:20:02 +00:00
Jeff Young
a22964a977
Prepend correct SPICE prefix when necessary for plotting currents.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13850
2023-02-12 21:17:45 +00:00
Jeff Young
1e756dbdd8
Save cursor positions in sim workbook.
2023-02-12 20:40:23 +00:00
Jeff Young
83dd06e5d1
Allow opening of workbook when simulation frame is opened.
...
This involved splitting creation of traces from setting of trace
data.
Also renamed SIM_WORKBOOK to SIM_NOTEBOOK. This class is a subclass
of wxAiuNotebook and represents the collection of simulation plot tabs.
It is NOT the same thing as a simulation workbook, which contains other
stuff such as measurements, plotted signals, colours, etc.
This also removes a bunch of "friend" declarations.
2023-02-12 20:40:23 +00:00
Jeff Young
78746b77c6
Save trace colors and cursor value formatting in sim workbook.
2023-02-12 20:40:23 +00:00
Jeff Young
84c72b087c
Simplify (and fix) logic for starting new simulations.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13853
2023-02-12 20:40:23 +00:00
jean-pierre charras
1fb2d138b4
Fix a compil issue.
2023-02-12 09:16:42 +01:00
Jeff Young
9d3a3d705d
ADDED simulation measurements.
2023-02-11 21:11:07 +00:00