← Back to team overview

kicad-developers team mailing list archive

Re: Patch to fix pcbnew example scripts and SWIG interface

 

Pushed now in 4105 If I'm not wrong :-)

Miguel Angel Ajo
http://www.nbee.es (http://www.nbee.es/)
+34911407752
skype: ajoajoajo


On Wednesday, 17 de April de 2013 at 23:25, Miguel Angel Ajo wrote:

> Ehh, it seems that I did not push to main repository the previous patches, I will check  
> what happened tomorrow morning, sorry about this…
>  
>  
> Miguel Angel Ajo
> http://www.nbee.es (http://www.nbee.es/)
> +34911407752
> skype: ajoajoajo
>  
>  
> On Monday, 15 de April de 2013 at 23:13, Miguel Angel Ajo wrote:
>  
> > Thanks a lot Wayne,
> >  
> >    Don't worry at all, the refactoring needed to be done, and it's high priority,
> > you're making our lives easier in the future, some pain now it's ok.
> >  
> >     If you had simple to run tests in the scripting you'd have detected it very
> > easily, but we didn't provide this. And, at the moment I write this, the
> > methods were not available yet, only the m_xx , but I wasn't still confident
> > to start touching code that wasn't mine (even asking), I wrote my own
> > python wrappers from GetXX to m_XX, which didn't necessarily need to  
> > match what it was finally done, because I did it and told nobody :)
> >  
> >   Keep the good refactoring work, it's good for all :)
> >  
> >  
> > Miguel Angel Ajo
> > http://www.nbee.es (http://www.nbee.es/)
> > +34911407752
> > skype: ajoajoajo
> >  
> >  
> > On Monday, 15 de April de 2013 at 16:47, Wayne Stambaugh wrote:
> >  
> > > On 4/15/2013 5:35 AM, Miguel Angel Ajo wrote:
> > > > Hi Matthew, sorry for my slow response,but finally I could check and
> > > > commit your patch, thanks for the 2nd version too. It's in release 4100
> > > >  
> > > > I found the GetText/TextPosition missing in TEXTE_PCB too, I think we
> > > > should ask Wayne Stambaugh,
> > > >  
> > > > Wayne, What should we use one to get a TEXTE_PCB position?
> > >  
> > > GetTextPosition(). The TEXTE_PCB object does not have a GetPosition()
> > > function. I apologize for breaking the Python scripting support. In
> > > the future I will try to be more aware of the impact of my changes to
> > > the Python scripting. To help mitigate the problem int the future,
> > > please avoid directly accessing public member variables and use the
> > > access functions whenever they are available. I knew encapsulating
> > > EDA_TEXT was going to cause problems but it's been on my personal to do
> > > list for a long long time. I just couldn't stand it any more so I broke
> > > down an fixed it. Thank you for your patience and your help.
> > >  
> > > Best Regards,
> > >  
> > > Wayne
> > >  
> > > >  
> > > > Miguel Angel Ajo
> > > > http://www.nbee.es <http://www.nbee.es/>
> > > > +34911407752
> > > > skype: ajoajoajo
> > > >  
> > > > On Wednesday, 10 de April de 2013 at 22:21, Matthew Beckler wrote:
> > > >  
> > > > > Thanks for the feedback, I have prepared a new patch that removes the
> > > > > simple pass-through python-only accessor methods as discussed. I
> > > > > applied the changes to the scripting example files, and tested the
> > > > > createPcb.py and listPcbLibrary.py. There was a problem with the
> > > > > listPcb.py script, in trying to call GetText() and GetPosition() on a
> > > > > TEXTE_PCB object. I am not sure how to fix that one immediately
> > > > > offhand, but I will look into it more in the next days.
> > > > >  
> > > > > Thanks,
> > > > > Matthew Beckler
> > > > > Wayne and Layne, LLC
> > > > >  
> > > > >  
> > > > > On Mon, Apr 8, 2013 at 7:22 PM, Cirilo Bernardo
> > > > > <cirilo_bernardo@xxxxxxxxx (mailto:cirilo_bernardo@xxxxxxxxx) <mailto:cirilo_bernardo@xxxxxxxxx>> wrote:
> > > > > > Using 'XXX()' instead of 'GetXXX()' makes more sense if you're
> > > > > > replacing a pair of Get/Set routines, but this is really only a
> > > > > > consistency issue with Python.
> > > > > >  
> > > > > > - Cirilo
> > > > > >  
> > > > > > PS. Sorry for the top post; goddamned Yahoo doesn't allow a user to
> > > > > > create messages in a sensible fashion anymore. Stinking google's
> > > > > > screwing things up too. Is there anyone out there who still gives
> > > > > > you good old plain text and quoting/indentation?
> > > > > >  
> > > > > >  
> > > > > >  
> > > > > > > ________________________________
> > > > > > > From: Miguel Angel Ajo <miguelangel@xxxxxxx (mailto:miguelangel@xxxxxxx) <mailto:miguelangel@xxxxxxx>>
> > > > > > > To: Matthew Beckler <matthew.beckler@xxxxxxxxx (mailto:matthew.beckler@xxxxxxxxx) <mailto:matthew.beckler@xxxxxxxxx>>
> > > > > > > Cc: KiCad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx (mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx)
> > > > > > >  
> > > > > >  
> > > > > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > > > > > Sent: Tuesday, April 9, 2013 6:27 AM
> > > > > > > Subject: Re: [Kicad-developers] Patch to fix pcbnew example scripts and SWIG interface
> > > > > > >  
> > > > > > >  
> > > > > > > Hey, thanks a lot Matthew,  
> > > > > > >  
> > > > > > >  
> > > > > > > This happened because of the ongoing class interface cleanup Wayne is working on,  
> > > > > > > I will apply the patch as soon as I check it,
> > > > > > >  
> > > > > > >  
> > > > > > > I put the GetValue / GetPads, etc in place, to be ready for those changes,
> > > > > > > but then It seems that later I forgot while writing the examples..
> > > > > > >  
> > > > > > >  
> > > > > > > I think that it could make sense to change the GetXXX() to XXX() directly, just
> > > > > > > removing the wrappers, and keeping everything else the same way.
> > > > > > >  
> > > > > > >  
> > > > > > > What do you think?
> > > > > > >  
> > > > > > >  
> > > > > > > Greetings,
> > > > > > > Mike.
> > > > > > >  
> > > > > > >  
> > > > > > >  
> > > > > > >  
> > > > > > > Miguel Angel Ajo
> > > > > > > http://www.nbee.es/
> > > > > > > +34911407752 <tel:%2B34911407752>
> > > > > > > skype: ajoajoajo
> > > > > > >  
> > > > > > >  
> > > > > > > On Monday, 8 de April de 2013 at 21:43, Matthew Beckler wrote:
> > > > > > > Hello,
> > > > > > > >  
> > > > > > > >  
> > > > > > > > I've been trying to explore the python scripting interface for pcbnew. I see that some changes have been made to the pcbnew/class_module.h file, such that GetReference() returns a wxString& and Reference() returns the TEXTE_MODULE& itself.
> > > > > > > >  
> > > > > > > >  
> > > > > > > > To get the scripting examples to work again, I made a few small changes in pcbnew/scripting/module.i :
> > > > > > > >  
> > > > > > > >  
> > > > > > > > === modified file 'pcbnew/scripting/module.i'
> > > > > > > > --- pcbnew/scripting/module.i2012-05-16 09:35:18 +0000
> > > > > > > > +++ pcbnew/scripting/module.i2013-04-08 19:27:00 +0000
> > > > > > > > @@ -33,10 +33,10 @@
> > > > > > > > %pythoncode
> > > > > > > > {
> > > > > > > >  
> > > > > > > > - def GetPads(self): return self.m_Pads
> > > > > > > > - def GetDrawings(self): return self.m_Drawings
> > > > > > > > - def GetReferenceObj(self): return self.m_Reference
> > > > > > > > - def GetValueObj(self): return self.m_Value
> > > > > > > > + def GetPads(self): return self.Pads()
> > > > > > > > + def GetDrawings(self): return self.GraphicalItems()
> > > > > > > > + def GetReferenceObj(self): return self.Reference()
> > > > > > > > + def GetValueObj(self): return self.Value()
> > > > > > > >  
> > > > > > > > #def SaveToLibrary(self,filename):
> > > > > > > > # return SaveModuleToLibrary(filename,self)
> > > > > > > > @@ -52,10 +52,10 @@
> > > > > > > >  
> > > > > > > > if type(itemC) is D_PAD:
> > > > > > > > item.thisown=0
> > > > > > > > - self.m_Pads.PushBack(itemC)
> > > > > > > > + self.GetPads().PushBack(itemC)
> > > > > > > > elif type(itemC) in [ TEXTE_PCB, DIMENSION, TEXTE_MODULE, DRAWSEGMENT,EDGE_MODULE]:
> > > > > > > > item.thisown = 0
> > > > > > > > - self.m_Drawings.PushBack(item)
> > > > > > > > + self.GetDrawings().PushBack(item)
> > > > > > > > }
> > > > > > > >  
> > > > > > > > }
> > > > > > > >  
> > > > > > > >  
> > > > > > > > I also made some changes to two of the example scripts in pcbnew/scripting/examples/ to work with these new functions instead of accessing e.g. m_Reference directly (as that member is now Private).
> > > > > > > >  
> > > > > > > >  
> > > > > > > > Hopefully I have prepared the patch correctly and followed all coding standards. Please let me know if I need to fix the patch in any way.
> > > > > > > >  
> > > > > > > >  
> > > > > > > > Thanks much,
> > > > > > > > Matthew Beckler
> > > > > > > >  
> > > > > > > > Wayne and Layne, LLC
> > > > > > > > _______________________________________________
> > > > > > > > Mailing list: https://launchpad.net/~kicad-developers
> > > > > > > > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx (mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx)
> > > > > > > >  
> > > > > > >  
> > > > > > >  
> > > > > >  
> > > > > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > > > > > > Unsubscribe : https://launchpad.net/~kicad-developers
> > > > > > > > More help : https://help.launchpad.net/ListHelp
> > > > > > > >  
> > > > > > > > Attachments:
> > > > > > > > - mbeckler_patch_pcbnew_scripting_module_createPcb_createFPC40.py
> > > > > > > >  
> > > > > > >  
> > > > > > >  
> > > > > > >  
> > > > > > > _______________________________________________
> > > > > > > Mailing list: https://launchpad.net/~kicad-developers
> > > > > > > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx (mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx)
> > > > > > >  
> > > > > >  
> > > > > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > > > > > Unsubscribe : https://launchpad.net/~kicad-developers
> > > > > > > More help : https://help.launchpad.net/ListHelp
> > > > > > >  
> > > > > >  
> > > > > >  
> > > > >  
> > > > >  
> > > > >  
> > > > > Attachments:
> > > > > - mbeckler_pcbnew_scripting_unencapsulate.patch
> > > > >  
> > > >  
> > > >  
> > >  
> > >  
> > >  
> > >  
> >  
> >  
>  


References