Commit 63eac42d authored by jean-pierre charras's avatar jean-pierre charras

Fix a minor error in class D_PAD: void D_PAD::Flip( int Y ) changed to virtual...

Fix a minor error in class D_PAD: void D_PAD::Flip( int Y ) changed to virtual void D_PAD::Flip( const wxPoint& aCentre ) (as defined in BOARD_ITEM)
Scripting: fix compatibility current pcbnew version in 2 examples and the default extension of board files  in board.i (was .kicad_brd, now is .kicad_pcb)
parent 3329ed26
...@@ -138,9 +138,17 @@ bzr branch lp:kicad/stable kicad_src ...@@ -138,9 +138,17 @@ bzr branch lp:kicad/stable kicad_src
Components and Footprints libraries Components and Footprints libraries
all (schematic libs, 3D shapes ...) but new footprints libraries (use Download zip tool) all (schematic libs, 3D shapes ...) but new footprints libraries (use Download zip tool)
https://github.com/KiCad/kicad-library/ https://github.com/KiCad/kicad-library/
New footprints libraries (use Download zip tool for each lib you want) New footprints libraries (use Download zip tool for each lib you want)
https://github.com/KiCad/ for footprint libs (*.pretty folders) https://github.com/KiCad/ for footprint libs (*.pretty folders)
A mirror of github is available, using bzr:
(schematic libs, 3D shapes ... all but new footprints libraries)
bzr checkout lp:~kicad-product-committers/kicad/library
Old legacy libraries:
bzr checkout lp:~dickelbeck/kicad/library-read-only
Note also Kicad is able to read on github.com/KiCad/ the *.pretty folders Note also Kicad is able to read on github.com/KiCad/ the *.pretty folders
without download, using github plugin. without download, using github plugin.
(however the time to read them can be long) (however the time to read them can be long)
......
...@@ -799,7 +799,7 @@ void MODULE::Flip( const wxPoint& aCentre ) ...@@ -799,7 +799,7 @@ void MODULE::Flip( const wxPoint& aCentre )
// Mirror pads to other side of board about the x axis, i.e. vertically. // Mirror pads to other side of board about the x axis, i.e. vertically.
for( D_PAD* pad = m_Pads; pad; pad = pad->Next() ) for( D_PAD* pad = m_Pads; pad; pad = pad->Next() )
pad->Flip( m_Pos.y ); pad->Flip( m_Pos );
// Mirror reference. // Mirror reference.
text = m_Reference; text = m_Reference;
......
...@@ -214,13 +214,13 @@ void D_PAD::SetOrientation( double aAngle ) ...@@ -214,13 +214,13 @@ void D_PAD::SetOrientation( double aAngle )
} }
void D_PAD::Flip( int aTranslationY ) void D_PAD::Flip( const wxPoint& aCentre )
{ {
int y = GetPosition().y - aTranslationY; int y = GetPosition().y - aCentre.y;
y = -y; // invert about x axis. y = -y; // invert about x axis.
y += aTranslationY; y += aCentre.y;
SetY( y ); SetY( y );
......
...@@ -167,7 +167,7 @@ public: ...@@ -167,7 +167,7 @@ public:
void SetOffset( const wxPoint& aOffset ) { m_Offset = aOffset; } void SetOffset( const wxPoint& aOffset ) { m_Offset = aOffset; }
const wxPoint& GetOffset() const { return m_Offset; } const wxPoint& GetOffset() const { return m_Offset; }
void Flip( int aTranslationY ); void Flip( const wxPoint& aCentre ); // Virtual function
/** /**
* Function SetOrientation * Function SetOrientation
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
%extend BOARD %extend BOARD
{ {
%pythoncode %pythoncode
{ {
def GetModules(self): return self.m_Modules def GetModules(self): return self.m_Modules
...@@ -42,35 +42,35 @@ ...@@ -42,35 +42,35 @@
def GetCurrentNetClassName(self): return self.m_CurrentNetClassName def GetCurrentNetClassName(self): return self.m_CurrentNetClassName
def GetViasDimensionsList(self): return self.m_ViasDimensionsList def GetViasDimensionsList(self): return self.m_ViasDimensionsList
def GetTrackWidthList(self): return self.m_TrackWidthList def GetTrackWidthList(self): return self.m_TrackWidthList
def Save(self,filename,format = None): def Save(self,filename,format = None):
if format is None: if format is None:
str_filename = str(filename) str_filename = str(filename)
if str_filename.endswith(".brd"): if str_filename.endswith(".brd"):
format = IO_MGR.LEGACY format = IO_MGR.LEGACY
if str_filename.endswith(".kicad_brd"): if str_filename.endswith(".kicad_pcb"):
format = IO_MGR.KICAD format = IO_MGR.KICAD
return SaveBoard(filename,self,format) return SaveBoard(filename,self,format)
# #
# add function, clears the thisown to avoid python from deleting # add function, clears the thisown to avoid python from deleting
# the object in the garbage collector # the object in the garbage collector
# #
def Add(self,item): def Add(self,item):
item.thisown=0 item.thisown=0
self.AddNative(item) self.AddNative(item)
} }
} }
// this is to help python with the * accessor of DLIST templates // this is to help python with the * accessor of DLIST templates
%rename(Get) operator BOARD_ITEM*; %rename(Get) operator BOARD_ITEM*;
%rename(Get) operator TRACK*; %rename(Get) operator TRACK*;
%rename(Get) operator D_PAD*; %rename(Get) operator D_PAD*;
%rename(Get) operator MODULE*; %rename(Get) operator MODULE*;
%rename(Get) operator SEGZONE*; %rename(Get) operator SEGZONE*;
// we must translate C++ templates to scripting languages // we must translate C++ templates to scripting languages
...@@ -81,14 +81,14 @@ ...@@ -81,14 +81,14 @@
%template(TRACK_List) DLIST<TRACK>; %template(TRACK_List) DLIST<TRACK>;
%template(PAD_List) DLIST<D_PAD>; %template(PAD_List) DLIST<D_PAD>;
// std::vector templates // std::vector templates
%template(VIA_DIMENSION_Vector) std::vector<VIA_DIMENSION>; %template(VIA_DIMENSION_Vector) std::vector<VIA_DIMENSION>;
%template (RASTNET_Vector) std::vector<RATSNEST_ITEM>; %template (RASTNET_Vector) std::vector<RATSNEST_ITEM>;
%extend DRAWSEGMENT %extend DRAWSEGMENT
{ {
%pythoncode %pythoncode
{ {
def GetShapeStr(self): def GetShapeStr(self):
return self.ShowShape(self.GetShape()) return self.ShowShape(self.GetShape())
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
def SetPos(self,p): def SetPos(self,p):
self.SetPosition(p) self.SetPosition(p)
self.SetPos0(p) self.SetPos0(p)
def SetStartEnd(self,start,end): def SetStartEnd(self,start,end):
self.SetStart(start) self.SetStart(start)
self.SetStart0(start) self.SetStart0(start)
......
...@@ -34,10 +34,10 @@ def smdRectPad(module,size,pos,name): ...@@ -34,10 +34,10 @@ def smdRectPad(module,size,pos,name):
for n in range (0,pads): for n in range (0,pads):
pad = smdRectPad(module,size_025_160mm,wxPointMM(0.5*n,0),str(n+1)) pad = smdRectPad(module,size_025_160mm,wxPointMM(0.5*n,0),str(n+1))
module.Add(pad) module.Add(pad)
pad_s0 = smdRectPad(module,size_150_200mm,wxPointMM(-1.6,1.3),"0") pad_s0 = smdRectPad(module,size_150_200mm,wxPointMM(-1.6,1.3),"0")
pad_s1 = smdRectPad(module,size_150_200mm,wxPointMM((pads-1)*0.5+1.6,1.3),"0") pad_s1 = smdRectPad(module,size_150_200mm,wxPointMM((pads-1)*0.5+1.6,1.3),"0")
module.Add(pad_s0) module.Add(pad_s0)
module.Add(pad_s1) module.Add(pad_s1)
...@@ -50,10 +50,11 @@ e.SetShape(S_SEGMENT) ...@@ -50,10 +50,11 @@ e.SetShape(S_SEGMENT)
module.Add(e) module.Add(e)
# save the PCB to disk # save the PCB to disk
module.SetLibRef("FPC"+str(pads)) fpid = FPID("FPC"+str(pads)) #the name in library
module.SetFPID( fpid )
try: try:
FootprintLibCreate("fpc40.mod") FootprintLibCreate("fpc40.mod")
except: except:
pass # we try to create, but may be it exists already pass # we try to create, but may be it exists already
FootprintSave("fpc40.mod",module) FootprintSave("fpc40.mod",module)
...@@ -30,13 +30,13 @@ for y in range (0,10): ...@@ -30,13 +30,13 @@ for y in range (0,10):
pad.SetPadName(str(n)) pad.SetPadName(str(n))
module.Add(pad) module.Add(pad)
n+=1 n+=1
# save the PCB to disk # save the PCB to disk
pcb.Save("/tmp/my2.kicad_brd") pcb.Save("my2.kicad_pcb")
pcb.Save("/tmp/my2.brd") pcb.Save("my2.brd")
pcb = LoadBoard("/tmp/my2.brd") pcb = LoadBoard("my2.kicad_pcb")
print map( lambda x: x.GetReference() , list(pcb.GetModules())) print map( lambda x: x.GetReference() , list(pcb.GetModules()))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment