kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #41922
Re: Additional parameters on simulation dialog
Hi Wayne & KiCad devs, I made some progress with simulation changes (see the attached patch). I fixed your findings (hopefully this is what you intended) and made further changes. Currently it is possible to set initial condition for capacitors and inductors in DIALOG_SPICE_MODEL. At the same time I found a bug, I think fixing would require some architectural changes: 1. User adds initial condition to the element -> additional field "Spice_IC" is saved in component. 2. User opens SPICE options for component and removes initial condition. 3. In DIALOG_SPICE_MODEL::TransferDa IC field from instance of DIALOG_EDIT_COMPONENT_IN_SCHEM will be cleared. 4. DIALOG_EDIT_COMPONENT_IN_SCHEM wants to remove a row from wxGrid based on different number of elements in DIALOG_EDIT_COMPONENT_IN_SCHEM 5. Before this happen, grid wants to be updated and calls FIELDS_GRID_TABLE<T>::GetValue for a row that is going to be deleted -> wxCHECK( aRow < GetNumberRows(), wxEmptyString ) fails. This issue is reproducible in 100% cases on my machine with Linux and I think that something similar can occur with DIALOG_EDIT_COMPONENT_IN_LIBRA Best regards, Sylwester
Dnia 27 czerwca 2019 21:04 Wayne Stambaugh <stambaughw@xxxxxxxxx> napisał(a):
Hi Sylwester,
I took a look at your repo and I have a few comments on your changes. I
did not test it so there may be functional issues as well.
Please simplify your logic in
DIALOG_SIM_SETTINGS::TransferD It's way more complicated
than it needs to be.
Get rid of DIALOG_SIM_SETTINGS::disableCt and use the
appropriate wxUpdateUIEvent[1] handler to enable and/or disable any
controls. Manually doing this will almost certainly lead to broken
control states. We have done this poorly so many times in the past that
I am not allowing it in new code.
If you want to submit your changes for consideration, you should squash
you changes into a single patch and submit the output of `git
format-patch` to the mailing list.
Cheers,
Wayne
[1]:
docs.wxwidgets.org docs.wxwidgets.org
On 6/21/19 3:00 PM, Sylwester Kocjan wrote:
Hi,
I prepared some changes in KiCad simulation dialog. They are about
additional simulation parameters. According to tutorial, which I've
found on website, I store them on GitHub repository in branch
"Sim_InitialConditions_SK" here:
github.com github.com
Could you please have a look and do some review if possible? I'd be
grateful for feedback if these changes are OK. In future I'd like to
implement OP analysis using some controls I've added
( bugs.launchpad.net bugs.launchpad.net
Additionally I also prepared polish translation for new strings.
My aim was to make simulation with arbitrary initial conditions
possible (additionally I added other options). Right now it is possible
to enable checkbox UIC on TRAN tab, but there is no possibility to set
IC to any arbitrary value in element properties. I'm afraid it will
involve change in .sch format. Please take note that it is also
possible to define initial conditions for entire nodes instead of
capacitors or inductors (for example: ".ic v(11)=5 v(4)=-5 v(2)=2.2",
see ngspice manual, chapter 15.2.2). It is also a challenge.
So in current state we can use for initial conditions results of .OP
analysis or default zero.
From my point of view these are the topics, which should be taken into
account during review:
- in simulation code sometimes there is used '\n', sometimes "\r\n".
Maybe it should be unified? Is there a common definition for newline in
wxWidgets?
- I added .option savecurrents: someone added TODO that it doesn't
work. Maybe should we hide this control?
- something happened to colours on dialog windows, see attached image.
I don't know what is it and how to fix it. seems to be unrelated to my
changes, but maybe I'm wrong? (this is visible on Ubuntu 18.04)
- some feedback regarding how to add IC field to capacitors, inductors
or nodes will be very appreciated ;)
Limitations of my changes:
- parsing SPICE .options is not implemented (in bool
DIALOG_SIM_SETTINGS::parseComm const wxString& aCommand ))
Best regards,
Sylwek
______________________________
Mailing list: launchpad.net launchpad.net
Post to : kicad-developers@lists.launchp
Unsubscribe : launchpad.net launchpad.net
More help : help.launchpad.net help.launchpad.net
______________________________
Mailing list: launchpad.net launchpad.net
Post to : kicad-developers@lists.launchp
Unsubscribe : launchpad.net launchpad.net
More help : help.launchpad.net help.launchpad.net
Follow ups
References