specctra_export supports interior polygons and circles on the Edge.Cuts layer.

Interior regions on Edge.Cuts are out as keepouts for specctra DSN file
and downstream routers.  Point to point matching during polygon assembly
can have individual thresholds, one for board edge and another for interior polygons.
This is more forgiving for sloppy graphical mousers, or those that work without
grid snap on.  Currently the threshold for board edge is at zero, meaning the
board edge has to be precisely defined as a polygon, just as before.  But it
is easily tunable for experimentation.
This commit is contained in:
Dr. Thomas Spindler 2013-04-30 10:25:41 -05:00 committed by Dick Hollenbeck
parent f50f31e5a3
commit f8f35a8cd0
2 changed files with 604 additions and 288 deletions

View File

@ -3704,14 +3704,14 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
//-----<FromBOARD>------------------------------------------------------- //-----<FromBOARD>-------------------------------------------------------
/** /**
* Function makeBOUNDARY * Function fillBOUNDARY
* makes the board perimeter for the DSN file. * makes the board perimeter for the DSN file by filling the BOUNDARY element
* in the specctra element tree.
* @param aBoard The BOARD to get information from in order to make the BOUNDARY. * @param aBoard The BOARD to get information from in order to make the BOUNDARY.
* @param aBoundary The empty BOUNDARY to fill in. * @param aBoundary The empty BOUNDARY to fill in.
*/ */
void fillBOUNDARY( BOARD* aBoard, BOUNDARY* aBoundary ) throw( IO_ERROR ); void fillBOUNDARY( BOARD* aBoard, BOUNDARY* aBoundary ) throw( IO_ERROR );
/** /**
* Function makeIMAGE * Function makeIMAGE
* allocates an IMAGE on the heap and creates all the PINs according * allocates an IMAGE on the heap and creates all the PINs according
@ -3722,7 +3722,6 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
*/ */
IMAGE* makeIMAGE( BOARD* aBoard, MODULE* aModule ); IMAGE* makeIMAGE( BOARD* aBoard, MODULE* aModule );
/** /**
* Function makePADSTACK * Function makePADSTACK
* creates a PADSTACK which matches the given pad. Only pads which do not * creates a PADSTACK which matches the given pad. Only pads which do not
@ -3755,7 +3754,6 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
*/ */
PADSTACK* makeVia( const SEGVIA* aVia ); PADSTACK* makeVia( const SEGVIA* aVia );
/** /**
* Function deleteNETs * Function deleteNETs
* deletes all the NETs that may be in here. * deletes all the NETs that may be in here.
@ -3768,14 +3766,12 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
nets.clear(); nets.clear();
} }
/** /**
* Function exportNETCLASS * Function exportNETCLASS
* exports \a aNetClass to the DSN file. * exports \a aNetClass to the DSN file.
*/ */
void exportNETCLASS( NETCLASS* aNetClass, BOARD* aBoard ); void exportNETCLASS( NETCLASS* aNetClass, BOARD* aBoard );
//-----</FromBOARD>------------------------------------------------------ //-----</FromBOARD>------------------------------------------------------
//-----<FromSESSION>----------------------------------------------------- //-----<FromSESSION>-----------------------------------------------------
@ -3786,7 +3782,6 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
*/ */
TRACK* makeTRACK( PATH* aPath, int aPointIndex, int aNetcode ) throw( IO_ERROR ); TRACK* makeTRACK( PATH* aPath, int aPointIndex, int aNetcode ) throw( IO_ERROR );
/** /**
* Function makeVIA * Function makeVIA
* instantiates a KiCad SEGVIA on the heap and initializes it with internal * instantiates a KiCad SEGVIA on the heap and initializes it with internal
@ -3847,7 +3842,6 @@ public:
} }
SESSION* GetSESSION() { return session; } SESSION* GetSESSION() { return session; }
/** /**
* Function LoadPCB * Function LoadPCB
* is a recursive descent parser for a SPECCTRA DSN "design" file. * is a recursive descent parser for a SPECCTRA DSN "design" file.
@ -3859,7 +3853,6 @@ public:
*/ */
void LoadPCB( const wxString& filename ) throw( IO_ERROR ); void LoadPCB( const wxString& filename ) throw( IO_ERROR );
/** /**
* Function LoadSESSION * Function LoadSESSION
* is a recursive descent parser for a SPECCTRA DSN "session" file. * is a recursive descent parser for a SPECCTRA DSN "session" file.
@ -3872,10 +3865,8 @@ public:
*/ */
void LoadSESSION( const wxString& filename ) throw( IO_ERROR ); void LoadSESSION( const wxString& filename ) throw( IO_ERROR );
void ThrowIOError( const wxChar* fmt, ... ) throw( IO_ERROR ); void ThrowIOError( const wxChar* fmt, ... ) throw( IO_ERROR );
/** /**
* Function ExportPCB * Function ExportPCB
* writes the internal PCB instance out as a SPECTRA DSN format file. * writes the internal PCB instance out as a SPECTRA DSN format file.
@ -3887,7 +3878,6 @@ public:
*/ */
void ExportPCB( wxString aFilename, bool aNameChange=false ) throw( IO_ERROR ); void ExportPCB( wxString aFilename, bool aNameChange=false ) throw( IO_ERROR );
/** /**
* Function FromBOARD * Function FromBOARD
* adds the entire BOARD to the PCB but does not write it out. Note that * adds the entire BOARD to the PCB but does not write it out. Note that

File diff suppressed because it is too large Load Diff