merged to last testing, also added automatic file extension detection on save/load
This commit is contained in:
parent
aef92a345c
commit
5157657eba
|
@ -235,8 +235,6 @@ public:
|
|||
*/
|
||||
bool Read_GPCB_Descr( const wxString& CmpFullFileName );
|
||||
|
||||
int Read_3D_Descr( LINE_READER* aReader );
|
||||
|
||||
/* drawing functions */
|
||||
|
||||
void Draw( EDA_DRAW_PANEL* aPanel,
|
||||
|
|
|
@ -294,13 +294,6 @@ public:
|
|||
*/
|
||||
NETCLASS* Find( const wxString& aName ) const;
|
||||
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
bool Save( FILE* aFile ) const;
|
||||
};
|
||||
|
||||
#endif // CLASS_NETCLASS_H
|
||||
|
|
|
@ -45,9 +45,12 @@
|
|||
|
||||
def Save(self,filename,format = None):
|
||||
if format is None:
|
||||
return SaveBoard(filename,self)
|
||||
else:
|
||||
return SaveBoard(filename,self,format)
|
||||
str_filename = str(filename)
|
||||
if str_filename.endswith(".brd"):
|
||||
format = IO_MGR.LEGACY
|
||||
if str_filename.endswith(".kicad_brd"):
|
||||
format = IO_MGR.KICAD
|
||||
return SaveBoard(filename,self,format)
|
||||
|
||||
#
|
||||
# add function, clears the thisown to avoid python from deleting
|
||||
|
@ -90,4 +93,4 @@
|
|||
def GetShapeStr(self):
|
||||
return self.ShowShape(self.GetShape())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,9 +34,9 @@ for y in range (0,10):
|
|||
|
||||
# save the PCB to disk
|
||||
pcb.Save("/tmp/my2.kicad_brd")
|
||||
pcb.Save("/tmp/my2.brd",IO_MGR.LEGACY)
|
||||
pcb.Save("/tmp/my2.brd")
|
||||
|
||||
pcb = LoadBoard("/tmp/my2.brd",IO_MGR.LEGACY)
|
||||
pcb = LoadBoard("/tmp/my2.brd")
|
||||
|
||||
print map( lambda x: x.GetReference() , list(pcb.GetModules()))
|
||||
|
||||
|
|
|
@ -73,12 +73,11 @@
|
|||
BOARD *GetBoard(); /* get current editor board */
|
||||
%}
|
||||
|
||||
#ifdef BUILD_WITH_PLUGIN
|
||||
|
||||
%{
|
||||
#include <io_mgr.h>
|
||||
#include <kicad_plugin.h>
|
||||
%}
|
||||
#endif
|
||||
|
||||
%include <class_board_item.h>
|
||||
%include <class_board_connected_item.h>
|
||||
|
@ -104,15 +103,14 @@
|
|||
|
||||
%include <pcbnew_scripting_helpers.h>
|
||||
|
||||
#ifdef BUILD_WITH_PLUGIN
|
||||
// ignore RELEASER as nested classes are still unsupported by swig
|
||||
%ignore IO_MGR::RELEASER;
|
||||
%include <io_mgr.h>
|
||||
%include <kicad_plugin.h>
|
||||
#endif
|
||||
|
||||
// ignore RELEASER as nested classes are still unsupported by swig
|
||||
%ignore IO_MGR::RELEASER;
|
||||
%include <io_mgr.h>
|
||||
%include <kicad_plugin.h>
|
||||
|
||||
|
||||
%include "board.i"
|
||||
%include "module.i"
|
||||
%include "units.i"
|
||||
|
||||
|
|
|
@ -54,13 +54,20 @@ void ScriptingSetPcbEditFrame(PCB_EDIT_FRAME *aPCBEdaFrame)
|
|||
|
||||
BOARD* LoadBoard(wxString& aFileName)
|
||||
{
|
||||
return LoadBoard(aFileName,IO_MGR::KICAD);
|
||||
|
||||
if (aFileName.EndsWith(wxT(".kicad_brd")))
|
||||
return LoadBoard(aFileName,IO_MGR::KICAD);
|
||||
else if (aFileName.EndsWith(wxT(".brd")))
|
||||
return LoadBoard(aFileName,IO_MGR::LEGACY);
|
||||
|
||||
// as fall back for any other kind use the legacy format
|
||||
return LoadBoard(aFileName,IO_MGR::LEGACY);
|
||||
|
||||
}
|
||||
|
||||
BOARD* LoadBoard(wxString& aFileName,IO_MGR::PCB_FILE_T aFormat)
|
||||
{
|
||||
static char ExceptionError[256];
|
||||
#ifdef USE_NEW_PCBNEW_LOAD
|
||||
try{
|
||||
return IO_MGR::Load(aFormat,aFileName);
|
||||
} catch (IO_ERROR e)
|
||||
|
@ -69,10 +76,7 @@ BOARD* LoadBoard(wxString& aFileName,IO_MGR::PCB_FILE_T aFormat)
|
|||
PyErr_SetString(PyExc_IOError,ExceptionError);
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
fprintf(stderr,"Warning, LoadBoard not implemented without USE_NEW_PCBNEW_LOAD\n");
|
||||
return NULL;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
bool SaveBoard(wxString& aFilename, BOARD* aBoard)
|
||||
|
@ -84,7 +88,6 @@ bool SaveBoard(wxString& aFileName, BOARD* aBoard,
|
|||
IO_MGR::PCB_FILE_T aFormat)
|
||||
{
|
||||
static char ExceptionError[256];
|
||||
#ifdef USE_NEW_PCBNEW_LOAD
|
||||
aBoard->m_Status_Pcb &= ~CONNEXION_OK;
|
||||
aBoard->SynchronizeNetsAndNetClasses();
|
||||
aBoard->SetCurrentNetClass( aBoard->m_NetClasses.GetDefault()->GetName() );
|
||||
|
@ -115,11 +118,6 @@ bool SaveBoard(wxString& aFileName, BOARD* aBoard,
|
|||
return false;
|
||||
}
|
||||
|
||||
#else
|
||||
fprintf(stderr,"Warning, SaveBoard not implemented without USE_NEW_PCBNEW_LOAD\n");
|
||||
return false;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue