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)
This commit is contained in:
parent
3329ed26f3
commit
63eac42d07
|
@ -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 )
|
||||||
|
|
||||||
// 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 )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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:
|
||||||
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 @@
|
||||||
|
|
||||||
|
|
||||||
%extend BOARD
|
%extend BOARD
|
||||||
{
|
{
|
||||||
%pythoncode
|
%pythoncode
|
||||||
{
|
{
|
||||||
def GetModules(self): return self.m_Modules
|
def GetModules(self): return self.m_Modules
|
||||||
|
@ -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 @@
|
||||||
%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 @@
|
||||||
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):
|
||||||
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)
|
||||||
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):
|
||||||
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()))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue