On 05/06/2012 04:17 AM, Miguel Angel Ajo Pelayo wrote:
>
>
> 2012/5/6 Dick Hollenbeck <[email protected] <mailto:[email protected]>>
>
>     On 05/05/2012 03:32 PM, Miguel Angel Ajo Pelayo wrote:
>     > I'm going further, my plan is not only to make PLUGIN accesible from 
> python, that's the
>     > first stone,
>     > and a good one.
>     >
>
>     Shortly after PCB_IO starts to firm up, it should be pretty easy to teach 
> the module
>     editor to pull an entire module off the clipboard, i.e. paste module.  It 
> is one of the
>     cleanest uses of clipboard support that I can foresee right now.
>
>     So this gives you an option to work fully external to Pcbnew, using your 
> own graphics
>     strategy, and then when done simply pass the MODULE back to PCBNEW via 
> clipboard.  It
>     requires that the user paste the module, but it is only a click or two if 
> it comes
>     with an
>     implied "replace current module with clipboard contents" paradigm.  
>
>  
> The clipboard plan sounds good, in fact I like it, 
>
>     Or you could simply write the new module into a footprint library.
>
>
> That's easy to do, but I'd miss drawing/preview, 
>
>
> My initial plan was to write it as a standalone python app, but I found caged 
> when
> trying to use the current
> drawing functionality, as:
>      1) we don't plan to include it in the future "pcbnew" module when the 
> Draw
> functions are completely separate/refactored.

The "data model" code could be one DLL/DSO.  This is basically what you have in 
class
PLUGIN, along with the ability to then actually "access" the objects you get 
back in a
BOARD or MODULE.  No graphics, as you say.  This is one of a number of building 
blocks
that would be nice to have.  Maybe we can get a class PAINTER type of interface 
into
another building block (perhaps or perhaps not another DLL/DSO).

Then there is the BOARD_ACTIONS that we talked about, which are IU-less 
procedural actions
that operate on a BOARD, and maybe MODULE.


>      2) even if I could use them now, the wxpython  wouldn't play well with 
> our swig wx
> wrapped classes (as they 
>          consider each other different objects types) -I have plans to make 
> that work,
> but it's not a priority right now-


What would this entail?  Having access to some wxPython headers at KiCad build 
time?  What?

Is the the difficulty easy to explain?


>     
>
>
>     This gives you an option to use any standard python graphics API, more 
> autonomy.  Maybe
>     you want to explore Torsten's GAL under python.
>
>
> I initially discarded that way, because using my own drawing strategy would 
> require a
> lot of maintenance, much
> more time (in fact *a lot*) and probably the drawing result's would be poor 
> compared to
> KiCad drawing functions.
>
>  So I decided to go into adding the little wizard to the module editor inside 
> pcbnew
> (which shouldn't be more
> than the c++ wrapper to the python wizards, and the interface file, that's 
> all). 
>
>      I think I'm also highly motivated to that because I strongly believe 
> that KiCad
> being scriptable *also* from inside
> will be as powerful as the "plugin" from python or even more, and it was my 
> initial
> motivation to start scripting.
>  
>
>     There are some more degrees of freedom to consider.   I personally would 
> want to build a
>     gem before I got too caught up in integrating it into Pcbnew, 
>
>
> You mean cleaning all the classes inside pcbnew, etc..., right?  Well, I 
> think that this
> is concern for both cases:
>
> 1) Python "pcbnew" plugin
> 2) KiCad "inside" python scripting
>
> Because, as we change important classes and methods inside KiCad, the scripts 
> people
> write could get broken (as the
> classes and methods -we want- are swigged out as we write them in C++), I'm 
> even adding
> little abstraction
> layers for some parts, with I find more sensitive, but that wouldn't be 
> enough for big
> changes.
>
> So probably we must be releasing 1+2 when we feel comfortable enough with our 
> internal
> class design, but not too late,
> perfection is expensive.
>
>     doing a tighter integration later is also a reasonable path, tighter than 
> clipboard
>     support.  Later you could return a
>     MODULE which replaces the one in the module editor, and is called from 
> the module
>     editor.
>
>
> Yes, that was my exact idea, and right now it's almost done, I only need to 
> build the
> interface dialog.
>
> I thought it as a good start for the inside scripting architecture, because 
> it had
> little coupling to all the design,
> (so the problems wouldn't be big...) and a good way to start learning how to 
> build a
> scripting architecture that 
> could extend KiCad from inside.
>
> The hard part of this architecture would be adding extended user interaction 
> from
> inside, but this is something I still
> don't find myself ready to do, I must pass the "footprint wizard" (or any 
> other)
> training first. :-)
>
>
> I will think a little more about how could I rip it out of pcbnew module 
> editor, but...
> I'm yet not sure about how to do
> it taking a reasonable time.
>
> In the other hand, If you finally find ok with the wizards and scripting 
> inside
> pcbnew/module editor I promise to keep it up 
> to date with the testing branch changes as they happen. The most problematic 
> part of
> this is the Python2x.dll dependency
> in windows / mac, where I might need some help. 
>
>  
>
>     >
>
>     >
>     >
>     > 2012/5/5 Dick Hollenbeck <[email protected] <mailto:[email protected]>
>     <mailto:[email protected] <mailto:[email protected]>>>
>     >
>     >     On 05/05/2012 08:55 AM, Miguel Angel Ajo Pelayo wrote:
>     >     > Thank you too Wayne,
>     >     >
>     >     >     It's nice to team up with you all :-)
>     >     >
>     >     >
>     >     >   I have a little prototype of the footprint wizards, for which I 
> should
>     finish the C++
>     >     > integration part, I just finished testing the python part.
>     >
>     >
>     >     What needs to be done in C++?
>     >
>     >     I thought you already had a bridge from python to PLUGIN done.
>     >
>     >
>     >
>     >
>     >     _______________________________________________
>     >     Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     >     <https://launchpad.net/%7Ekicad-developers>
>     >     Post to     : [email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>>
>     >     Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/%7Ekicad-developers>
>     >     <https://launchpad.net/%7Ekicad-developers>
>     >     More help   : https://help.launchpad.net/ListHelp
>     >
>     >
>     >
>     >
>     > --
>     >
>     > Miguel Angel Ajo Pelayo
>     > http://www.nbee.es
>     > +34 636 52 25 69 <tel:%2B34%20636%2052%2025%2069>
>     > skype: ajoajoajo
>
>
>
>
> -- 
>
> Miguel Angel Ajo Pelayo
> http://www.nbee.es
> +34 636 52 25 69
> skype: ajoajoajo


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to