Hi Andreas, I am sorry for late response, I must have lost your e-mail. Still, the answers may help you in the future.
On 12/05/2017 03:42 PM, Andreas Buhr wrote: > Dear Kicad developers, > > I am browsing the Kicad source code to get an idea how to integrate a > simulation tool. > > I'd like the following: > > 1. The plugin should be informed whenever something changes. It would be > great to get a bounding box of the change. > 2. The plugin should be able to draw on the canvas. I'd like to register > a new layer (for example to show the triangle mesh). The user should > then be able to enable/disable this layer. > > These two requirements are in some sense similar to the requirements of > "ratsnest", so I followed "ratsnest" through the code. > > Concerning (1): > I got the impression that it is not easy to be informed about all > changes in a BOARD. Is this correct? Unfortunately you are right. Most of the changes go through BOARD_COMMIT class that takes care of creating undo entries, refreshing the view, connectivity, etc. Recently Miles has been asking for a subscription based observer model, perhaps BOARD_COMMIT would be a good spot to send notifications to the observers. Regards, Orson > Concerning (2): > And I got the impression that there is not one way to draw to the > canvas. I found two drawing methods for ratsnest, one in PCB_BASE_FRAME, > the other in RATSNEST_VIEWITEM::ViewDraw. Is it necessary to implement > two drawing methods for each feature? > > And it seems that the layers are organized in an enum (GAL_LAYER_ID), so > adding a layer at runtime seems impossible without larger infrastructure > changes. Is this correct? > > What would you propose? How can a plugin be informed about all changes > to the board? And how could a plugin draw on the canvas? > > thanks a lot in advance, > Cheers, > Andreas > > > On 11/30/2017 12:18 AM, Wayne Stambaugh wrote: >> Hi Andreas, >> >> Per our previous conversation, if you want to write your solver in C++, >> then I would prefer that you do it as part of a solver plugin rather >> than a command event handler in Pcbnew. I image there would be other >> uses for a solver plugin object such as a thermal mapping solver which >> has been proposed in the past. The other option would be to use the >> Python action object and write the entire solver in Python rather than >> C++. That may make your life a bit easier. >> >> Cheers, >> >> Wayne >> >> On 11/29/2017 01:09 PM, Andreas Buhr wrote: >>> Dear Kicad developers, >>> >>> I'm new to Kicad development. Maybe you could give me some starting tips? >>> >>> I am a 5th year PhD student at the university of Münster in Germany, >>> website: >>> https://www.uni-muenster.de/AMM/en/ohlberger/team/andreas_buhr.shtml >>> >>> I am doing mathematical research targeted at developing solvers for 3D >>> Maxwell's equations in highly complex structures, such as PCBs. While >>> being in an early stage, the goal is to develop a signal integrity >>> solver which does a full-wave simulation of the electromagnetic fields >>> and calculates S-parameters within a very short time. >>> >>> I would love to develop and test my algorithms within KiCad. >>> >>> The input which my solver needs would be an array of polygons, >>> representing the copper-filled areas on each layer. >>> I then want to create a 2D triangle mesh and based on that a 3D prism >>> mesh for finite element analysis. >>> >>> What would you recommend? How to I get polygons, representing the copper >>> filled areas of each layer? >>> I do have some experience developing C++. >>> >>> thanks a lot in advance, >>> best regards, >>> >>> Andreas >>> >>> >>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~kicad-developers >>> Post to : kicad-developers@lists.launchpad.net >>> Unsubscribe : https://launchpad.net/~kicad-developers >>> More help : https://help.launchpad.net/ListHelp >>> >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~kicad-developers >> Post to : kicad-developers@lists.launchpad.net >> Unsubscribe : https://launchpad.net/~kicad-developers >> More help : https://help.launchpad.net/ListHelp >> > > > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : kicad-developers@lists.launchpad.net > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp