Commit Graph

9057 Commits

Author SHA1 Message Date
Mike Williams 4b02e5efb4 Schematic: allowing ctrl/shift-clicking point editor points 2022-12-08 14:12:12 -05:00
Barabas Raffai add082548d Move timer used by SCH_EDITOR_CONTROL to member variable
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2430
2022-12-08 17:33:19 +00:00
jean-pierre charras 0098dfa6dc Ensure exported spice netlist contains all spice directives found in schematic 2022-12-08 14:03:47 +01:00
Stefan 1fcdd94caf add missing whitespace 2022-12-08 07:36:59 +00:00
Marek Roszko 2fc0cd68ed Avoid crashing due to empty lib tables in cli
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13097
2022-12-07 23:56:03 -05:00
Jon Evans 5251ea6f27 Prevent crash on exit due to simulator settings being double freed 2022-12-07 21:04:49 -05:00
Seth Hillbrand 9a5df73060 ERC: don't flag hierarchically connected NCs
NCs require no more than one pin on the full net.  They may also have
multiple labels connecting them.
2022-12-07 13:48:25 -08:00
Wayne Stambaugh b95ce69054 Disconnect event handlers in symbol properties dialog dtor.
This is probably a good rule of thumb to prevent any event ordering
issues between platforms or unhandled events being trigger during
inherited object destruction.
2022-12-07 14:27:36 -05:00
Jeff Young b15913bd53 Support env variables in spice library paths.
Also removes a bunch of std::string stuff from the file handling in the
simulator.  All our file handling, env variable expansion, project path,
etc. stuff is wxString based, and jumping through std::string in between
just makes it more complex and increases the potential bug surface.

Also fixes a bug where you'd get two error messages when a spice model
library wasn't found.

Also fixes a bug where you'd get a spice model library not found error
when the text field was empty.

Also fixes a bug where we'd try to absolutize a path starting with an
unresolved text or environment variable.  If the path starts with a
variable it's probably absolute, and tacking on the project path in the
error message just obfuscates things.

Fixes https://gitlab.com/kicad/code/kicad/issues/13082
2022-12-07 15:07:25 +00:00
jean-pierre charras 6130ce5d66 symbol_editor_control: fix incorrect bounding in SVG export.
Fixes #13093
https://gitlab.com/kicad/code/kicad/issues/13093
2022-12-07 13:13:35 +01:00
Jeff Young 4872dd7238 Don't put empty lines in the workbook.
Fixes https://gitlab.com/kicad/code/kicad/issues/12299
2022-12-07 11:39:47 +00:00
Marek Roszko c0b5fe58c3 Implement output targeting of symlib/fplib upgrade per request 2022-12-06 21:20:27 -05:00
Jeff Young b9287968d6 Update symbol default prefixes after updating instance data.
Also moves the sim model fixups after the instance data updating as
it uses the prefixes.
2022-12-07 01:34:56 +00:00
Jeff Young 69448afb47 Don't run simulation twice when the sim command is overridden.
Fixes https://gitlab.com/kicad/code/kicad/issues/12731
2022-12-07 01:34:56 +00:00
Wayne Stambaugh da0624286c Fix spelling error in schematic import exception handler. 2022-12-06 18:04:38 -05:00
Jeff Young 3836ec481f Add fixups for legacy syntax used during 7.0 development. 2022-12-06 16:01:18 +00:00
Jeff Young 39ad7c8205 Formatting and Kicad naming conventions. 2022-12-06 16:01:18 +00:00
Jeff Young 38906397d2 Move V6->V7 sim model migration from sheets to screens.
Also moves passive RLC inference out from migration to just-in-time
creation for the simulator or netlisting.

Also fixes a version guard mismatch because the spice migration was
done inside UpdateSymbolInstances (which has its own version guard).

Also changed UpdateSymbolInstances to UpdateSymbolInstanceData so
someone else in the future doesn't think it's a general-purpose symbol
instance updater.
2022-12-06 16:01:18 +00:00
Jeff Young f8e0a272c0 Remove a bunch of 'auto'. 2022-12-06 16:01:18 +00:00
Wayne Stambaugh 5001555f0e Fix crash in Altium schematic importer.
The crash was caused by an unhandled exception. The uncaught exception
caused a cacophony of null configuration setting pointers so guards were
added to prevent crashes should other exceptions occur that do not get
handled correctly.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13046
2022-12-05 20:20:01 -05:00
Fabien Corona 4c76082f77 "Sim Params/Settings" -> "Sim Command"
The window only really sets the simulation command.
In the future, we might want a simulation setting window with things such as SPICE optimizations.
2022-12-05 23:12:04 +00:00
Jeff Young 8e4cd1e1a6 Check for sheet directive changes when running simulations.
Fixes https://gitlab.com/kicad/code/kicad/issues/10486
2022-12-05 20:03:42 +00:00
Jeff Young 7e1fecaf2e Formatting. 2022-12-05 20:03:42 +00:00
Fabien Corona e861606871 sim: string change 2022-12-05 19:45:57 +00:00
Jeff Young b7d41e0e56 Update simulator with NUMERIC_EVAL, decimal separator processing, etc.
Also includes fixes for instance data and resolving of textvar
references.

Also includes virtual d'tors for IBIS parser to get rid of all the
compile warnings on CLang.

Fixes https://gitlab.com/kicad/code/kicad/issues/12357
2022-12-05 12:40:29 +00:00
Jeff Young f50b9799a6 Remove old code that was only needed when we auto-added netclasses...
... to netclass flags.  They're now directive labels and the netclass
field isn't auto-added anymore.  However, we *do* auto-add an intersheet
refs field, and that's required.
2022-12-04 21:06:35 +00:00
Jeff Young 1855885d1e Gracefully handle spice models not recognized by KiCad.
Fixes https://gitlab.com/kicad/code/kicad/issues/12689
2022-12-04 21:06:35 +00:00
Jeff Young f29f0c5c0a Don't push a model that didn't load.
Fixes https://gitlab.com/kicad/code/kicad/issues/12689
2022-12-04 21:06:35 +00:00
Jeff Young 672927e183 Clearer error message. 2022-12-04 21:06:35 +00:00
Jeff Young bed22272e5 Supply default values for random uniform voltage sources.
Fixes https://gitlab.com/kicad/code/kicad/issues/12861
2022-12-04 21:06:35 +00:00
Jeff Young 49abd2682a Simulation model properties dialog improvements.
1) Fix <TAB> processing
2) Don't hide/show controls where possible
3) Use a more concrete reference to primary parameter in Save to Value
checkbox
4) Move Save to Value checkbox into model section
2022-12-04 21:06:35 +00:00
jean-pierre charras 6b9c82c975 eeschema: fix a crash when converting a old .sch file containing global labels. 2022-12-04 21:06:16 +01:00
jean-pierre charras 0562eaa7b1 Eeschema plot: fix some (minor) issues with page size option set to a fixed page-size
Fixes #13062
Fixes #13056
Fixes #13057
However, DXF and HPGL is not perfect, but OTOH this is not an usual format for schematic.
PS format is not tested for now.
2022-12-04 16:55:20 +01:00
Graham Keeth ef83d01455 Minor string changes: "eeschema" / "pcbnew" in tooltips, and power port terminology 2022-12-04 14:29:57 +00:00
Jeff Young adc5c9eb20 OpenGL render order appears to be the inverse of the drawing order.
Fixes https://gitlab.com/kicad/code/kicad/issues/13070
2022-12-04 11:51:44 +00:00
Jeff Young 294a4804ed Minor dialog layout adjustments. 2022-12-04 11:51:44 +00:00
Jeff Young f805fd267f Divorce UNIT_BINDER from wxFrame.
This allows us to supply Pcbnew or Eeschema as the unitsProvider when
called from the main frame.

Fixes https://gitlab.com/kicad/code/kicad/issues/13066
2022-12-04 11:51:44 +00:00
Jeff Young f9b3f14dfa Bring intersheet refs in line with schematic setting when changing sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/13061
2022-12-04 11:51:44 +00:00
Jeff Young 96819f6c01 Better cache invalidation for text objects with references.
Fixes https://gitlab.com/kicad/code/kicad/issues/13059
2022-12-04 11:51:44 +00:00
jean-pierre charras 8ab8a48657 fix order of includes to avoid conflicts with a Windows header. 2022-12-03 10:59:46 +01:00
Fabien Corona bd235048f9 sim GUI: remove "Adjust value" checkbox.
We had a change in notation and this checkbox became useless.
2022-12-03 08:28:43 +00:00
Seth Hillbrand f9a36b9c91 Update thread_pool to 3.3
Fixes an issue with `wait_for_tasks()` and adds a lower-overhead
`push_loop` helper.  We replace our usage of `parallelize_loop` with
`push_loop` as we didn't use the multi-future vector return and don't
need the extra overhead.
2022-12-02 12:01:34 -08:00
Fabien Corona 6e45987005 fix build warning 2022-12-01 20:33:51 +00:00
Mike Williams 8f646fa9fb Schematic: fix XOR unselecting one end of fully selected line 2022-12-01 15:00:06 -05:00
Mike Williams 5b2020daf5 Schematic: only delete dangling lines not created directly by the user 2022-12-01 13:13:45 -05:00
Mikolaj Wielgus f38c5d8cd0 Sim: Add virtual destructor to SIM_SERDE 2022-12-01 17:18:55 +01:00
Mikolaj Wielgus 4ec7ea376e Sim Ibis: Minor code style changes 2022-12-01 17:13:37 +01:00
kliment 0f09172902 Eeschema: ibis_parser - Fix undefined behavior due to pointer aliasing in isNumberNA 2022-12-01 15:44:38 +00:00
Mikolaj Wielgus d2adcdfde0 Sim: Add "number of bits" parameter to KIBIS PRBS model and some more fixes
The other fixes:

- PRBS's `m_bits` should be an integer.
- Fix some references to outdated parameter names.
2022-12-01 09:19:41 +01:00
Marek Roszko bae8cb55c0 Rename the bom cli to pythonbom since we'll have a real bom system later 2022-11-30 19:56:59 -05:00
Seth Hillbrand d23f285f8c Avoid ngspice segfault
When simulating an empty netlist, calling the `.save all` and `.probe
alli` commands gives a segfault in ngspice.  We can avoid this by
skipping these commands in KiCad.

Fixes https://gitlab.com/kicad/code/kicad/issues/12938
2022-11-30 15:22:17 -08:00
Seth Hillbrand 01cf6d76d8 Remove newly dangling lines when dragging
These lines are remnants from drag operations that should be cleaned
after commiting the new line positions

Fixes https://gitlab.com/kicad/code/kicad/issues/12870
2022-11-30 13:46:38 -08:00
Wayne Stambaugh e517cad12b Fix broken hierarchical sheet file paths when adding nest sheets.
The file path for each sheet must always be relative to it's parent sheet
or absolute if using a relative path is not possible.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10868
2022-11-30 15:44:59 -05:00
Seth Hillbrand ce63c37bfd Handle possible null in dynamic_cast 2022-11-30 12:30:49 -08:00
Wayne Stambaugh 0a62c17040 Remove schematic symbol value and footprint field instance data.
https://gitlab.com/kicad/code/kicad/-/issues/12933
2022-11-30 11:47:13 -05:00
Mikolaj Wielgus 7d207c5d2f Sim Ibis: Change some strings for consistency 2022-11-30 17:38:09 +01:00
Mikolaj Wielgus e39c0b20ea Sim: Universally initialize enum parameters with their default values 2022-11-30 12:45:59 +01:00
Mikolaj Wielgus 39cd9f8980 Sim: Fix Sim.Params field generation logic
Don't generate the first parameter (e.g. for KIBIS it was 'vcc=""') when
it is empty in models without primary value.
2022-11-30 12:45:58 +01:00
Seth Hillbrand 09cc6decaf ADDED: ERC for missing units
Reports a warning (by default) for missing units
Reports an error for missing units with power input pins
Reports a warning for missing units with input pins
Reports a warning for missing units with bidi pins

Fixes https://gitlab.com/kicad/code/kicad/issues/1922
2022-11-29 23:49:55 +00:00
Seth Hillbrand 4f4e355ce5 Reset existingRefs on cancel
When placing, we need to keep our static pointer map valid.  If we
cancel the placement after annotation, we need to remove the annotated
symbol.  The safer way is to just recreate the map

Fixes https://gitlab.com/kicad/code/kicad/issues/12983
2022-11-29 13:37:23 -08:00
Jeff Young 193e8715f9 Replace wxASSERT with wxCHECK2. 2022-11-29 21:12:53 +00:00
jean-pierre charras f3aff63726 Fix minor compil warnings 2022-11-29 20:05:58 +01:00
Jeff Young b2177718a1 Tighten up refresh logic for net & netclass references.
Also tightens it up a bit for text variables which can reference things
like netnames and netclasses, but also board settings.

Fixes https://gitlab.com/kicad/code/kicad/issues/13032
2022-11-29 15:18:36 +00:00
Jeff Young a105f6c297 Add asserting checking. 2022-11-29 14:24:20 +00:00
Mikolaj Wielgus ab6caca384 Sim: Remove duplicate parameters 2022-11-29 15:02:45 +01:00
Mikolaj Wielgus b025b103de Sim Model Editor: Make the VBIC model the first BJT model to select 2022-11-29 10:13:20 +01:00
Mikolaj Wielgus 8143522371 Sim: Fix VDMOS model parsing 2022-11-29 09:48:01 +01:00
Marek Roszko 21fed9fc8c Hotglue a symbol upgrade function in cli 2022-11-29 00:00:45 -05:00
Fabien Corona 6510afe699 Ibis: Show the parser log if the parser fails 2022-11-28 17:46:42 +00:00
jean-pierre charras ef6348606a altium schematic import: convert ports to hierarchical labels instead of global labels 2022-11-28 17:56:46 +01:00
jean-pierre charras 149ddf9ddb PANEL_SETUP_BUSES: make delete a bus member working.
the member list was not updated when deleting a member.
Fixes #13024
https://gitlab.com/kicad/code/kicad/issues/13024
2022-11-28 17:55:04 +01:00
Jeff Young 9a25464337 Prevent nullptr dereference.
Fixes https://gitlab.com/kicad/code/kicad/issues/12516
2022-11-28 13:38:41 +00:00
Mikolaj Wielgus 20ea191f66 Sim: Fix model param vs. instance param duplicates in diode model 2022-11-28 08:00:49 +01:00
Mikolaj Wielgus 7b1a460649 Sim: Fix unhandled MODEL_TYPE in SIM_MODEL_NGSPICE 2022-11-28 07:59:24 +01:00
Mikolaj Wielgus d836fbaaaa Sim: Add VBIC model support
Update generate_sim_model_ngspice_data.bash a little, but it's still
outdated.
2022-11-28 04:45:36 +01:00
Wayne Stambaugh ef624199cd Fix Altium schematic import bug. 2022-11-27 19:34:46 -05:00
Mikolaj Wielgus bbcb0c04fc Sim: Don't crash when parsing unknown model in a Spice file 2022-11-27 08:59:54 +01:00
Mikolaj Wielgus 71d194071b Sim: Allow Numparam expressions in models inside subckts
Global-level numparam expressions are not properly supported yet.

Fixes https://gitlab.com/kicad/code/kicad/issues/12953
2022-11-27 06:32:17 +01:00
Seth Hillbrand f1556ed801 Prevent mirror of text elements
While we never allow the creation of mirrored text elements in the
schematic and symbol library editors, external generation of symbols may
cause the property to be set, which can then never be changed.  This
leaves the property unset for all elements

Fixes https://gitlab.com/kicad/code/kicad/issues/13007
2022-11-26 10:48:44 -08:00
Alex 754e82535a Symbol Fields Table: Highlight the first unit in multi-unit symbols. 2022-11-26 17:30:30 +05:00
Mikolaj Wielgus 0b5814f98f Sim: Allow .subckt parameter lists without "params:"
And fix .subckt parameter list parsing, because it was broken.

Fixes https://gitlab.com/kicad/code/kicad/issues/12779
2022-11-26 10:24:11 +01:00
Mikolaj Wielgus 6f630f7054 Sim: Make library path textbox editable
Load the library from the path if enter is pressed or focus is lost if
the library exists. If a library under the same path as previously is
to be loaded this way, don't do anything.

Fixes https://gitlab.com/kicad/code/kicad/issues/12970
2022-11-26 03:55:20 +01:00
Wayne Stambaugh a89102fdfc Fix Altium schematic import library symbol bug. 2022-11-25 19:38:13 -05:00
Mikolaj Wielgus acc760dc25 Sim: Fix generation of Sim.Pins field in multipart models
Fixes https://gitlab.com/kicad/code/kicad/issues/12372
2022-11-26 01:34:10 +01:00
Mikolaj Wielgus 6d5cc9e606 Sim: Sort the generated Sim.Pins by symbol pin numbers
They were sorted by model pin numbers, which weren't the keys in the
key=value pairs generated into Sim.Pins.
2022-11-26 01:34:10 +01:00
jean-pierre charras a48d06c40d Better fix than commit f2efb9c6 for issue #13003. 2022-11-25 17:29:03 +01:00
jean-pierre charras f2efb9c601 Make symbol highlighting from Symbol Fields Table working again.
Fixes #13003
https://gitlab.com/kicad/code/kicad/issues/13003
2022-11-25 16:17:34 +01:00
Jeff Young 7e0ba42f0e Bug fixes for dragging labels attached to wires in orthogonal mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/12677
2022-11-25 15:05:15 +00:00
Simon Richter 6d1ab81261 Mark unused parameter 2022-11-25 14:10:30 +01:00
jean-pierre charras 6f438b6cad altium export: add messages about skipped items (IEEE_SYMBOL and PIECHART) 2022-11-25 09:51:13 +01:00
jean-pierre charras e5877e0840 netlist_exporter_xml: ensure the list of parts is included in netlist.
This is obviously mandatory to build a BOM
DIALOG_BOM: generate a full xml netlis. We don't know what is needed by scripts
Fixes #12918
https://gitlab.com/kicad/code/kicad/issues/12918
2022-11-25 08:55:21 +01:00
Mikolaj Wielgus a65b35107d Sim: Make Sim.Pins have key-value pairs instead of a sequence
Moreover, upgrade models on schematic load instead of on model load
2022-11-25 05:38:21 +01:00
Mikolaj Wielgus f5ebd6fb47 Remove unused SCH_SYMBOL::GetAllPins() 2022-11-25 05:38:21 +01:00
jean-pierre charras a71c669543 Altium importer: try to import elliptical arcs rather to skip them.
Some schematics use elliptical arcs to describe usual arcs.
2022-11-24 19:43:00 +01:00
jean-pierre charras 199743e8b0 altium/sch_altium_plugin: do not initialize unit to -1 for common to units items.
-1 as unit id is illegal and breaks the lib file. So ensure id >= 0
(id = 0 for common to units items)
2022-11-23 14:47:55 +01:00
jean-pierre charras b1ec694905 Add string change (see commit 7aac53c6) to dialogs/dialog_sim_model_base.fbp 2022-11-23 14:46:18 +01:00
Jeff Young 651b3f1349 SCH_FIELDs are in parent's coord system.
Fixes https://gitlab.com/kicad/code/kicad/issues/12979
2022-11-23 13:22:50 +00:00
Wayne Stambaugh f5707eeca7 Fix assertion in schematic copy formatter. 2022-11-22 16:45:38 -05:00
Wayne Stambaugh 4a27d856f7 Move schematic sheet instance information into file sheet definition.
This will make it possible to maintain sheet instance information when
copying and pasting from any sheet other that the root sheet of a
project.

Setting and getting sheet page numbers must now be performed using a
sheet path.  This was done to ensure that the instance paths were not
getting changed unexpectedly from different code paths.
2022-11-22 16:45:38 -05:00
Fabien Corona 226dc9de78 Ibis: Don't create unnecessary B source 2022-11-22 21:09:08 +00:00