KiCad PCB EDA Suite
|
A DSN data tree, usually coming from a DSN file. More...
#include <specctra.h>
Public Member Functions | |
SPECCTRA_DB () | |
virtual | ~SPECCTRA_DB () |
void | SetPCB (PCB *aPcb) |
Delete any existing PCB and replaces it with the given one. | |
PCB * | GetPCB () |
void | SetSESSION (SESSION *aSession) |
Delete any existing SESSION and replaces it with the given one. | |
SESSION * | GetSESSION () |
void | LoadPCB (const wxString &aFilename) |
A recursive descent parser for a SPECCTRA DSN "design" file. | |
void | LoadSESSION (const wxString &aFilename) |
A recursive descent parser for a SPECCTRA DSN "session" file. | |
void | ExportPCB (const wxString &aFilename, bool aNameChange=false) |
Write the internal PCB instance out as a SPECTRA DSN format file. | |
void | FromBOARD (BOARD *aBoard) |
Add the entire BOARD to the PCB but does not write it out. | |
void | FromSESSION (BOARD *aBoard) |
Add the entire #SESSION info to a BOARD but does not write it out. | |
void | ExportSESSION (const wxString &aFilename) |
Write the internal #SESSION instance out as a #SPECTRA DSN format file. | |
bool | BuiltBoardOutlines (BOARD *aBoard) |
Build the board outlines and store it in m_brd_outlines. | |
void | FlipFOOTPRINTs (BOARD *aBoard) |
Flip the footprints which are on the back side of the board to the front. | |
void | RevertFOOTPRINTs (BOARD *aBoard) |
Flip the footprints which were on the back side of the board back to the back. | |
Static Public Member Functions | |
static PCB * | MakePCB () |
Make a PCB with all the default ELEMs and parts on the heap. | |
Private Member Functions | |
void | buildLayerMaps (BOARD *aBoard) |
Create a few data translation structures for layer name and number mapping between the DSN::PCB structure and the KiCad BOARD structure. | |
int | findLayerName (const std::string &aLayerName) const |
Return the PCB layer index for a given layer name, within the specctra sessionfile. | |
void | readCOMPnPIN (std::string *component_id, std::string *pid_id) |
Read a <pin_reference> and splits it into the two parts which are on either side of the hyphen. | |
void | readTIME (time_t *time_stamp) |
Read a <time_stamp> which consists of 8 lexer tokens: "month date hour : minute : second year". | |
void | doPCB (PCB *growth) |
void | doPARSER (PARSER *growth) |
void | doRESOLUTION (UNIT_RES *growth) |
void | doUNIT (UNIT_RES *growth) |
void | doSTRUCTURE (STRUCTURE *growth) |
void | doSTRUCTURE_OUT (STRUCTURE_OUT *growth) |
void | doLAYER_NOISE_WEIGHT (LAYER_NOISE_WEIGHT *growth) |
void | doSPECCTRA_LAYER_PAIR (SPECCTRA_LAYER_PAIR *growth) |
void | doBOUNDARY (BOUNDARY *growth) |
void | doRECTANGLE (RECTANGLE *growth) |
void | doPATH (PATH *growth) |
void | doSTRINGPROP (STRINGPROP *growth) |
void | doTOKPROP (TOKPROP *growth) |
void | doVIA (VIA *growth) |
void | doCONTROL (CONTROL *growth) |
void | doLAYER (LAYER *growth) |
void | doRULE (RULE *growth) |
void | doKEEPOUT (KEEPOUT *growth) |
void | doCIRCLE (CIRCLE *growth) |
void | doQARC (QARC *growth) |
void | doWINDOW (WINDOW *growth) |
void | doCONNECT (CONNECT *growth) |
void | doREGION (REGION *growth) |
void | doCLASS_CLASS (CLASS_CLASS *growth) |
void | doLAYER_RULE (LAYER_RULE *growth) |
void | doCLASSES (CLASSES *growth) |
void | doGRID (GRID *growth) |
void | doPLACE (PLACE *growth) |
void | doCOMPONENT (COMPONENT *growth) |
void | doPLACEMENT (PLACEMENT *growth) |
void | doPROPERTIES (PROPERTIES *growth) |
void | doPADSTACK (PADSTACK *growth) |
void | doSHAPE (SHAPE *growth) |
void | doIMAGE (IMAGE *growth) |
void | doLIBRARY (LIBRARY *growth) |
void | doPIN (PIN *growth) |
void | doNET (NET *growth) |
void | doNETWORK (NETWORK *growth) |
void | doCLASS (CLASS *growth) |
void | doTOPOLOGY (TOPOLOGY *growth) |
void | doFROMTO (FROMTO *growth) |
void | doCOMP_ORDER (COMP_ORDER *growth) |
void | doWIRE (WIRE *growth) |
void | doWIRE_VIA (WIRE_VIA *growth) |
void | doWIRING (WIRING *growth) |
void | doSESSION (SESSION *growth) |
void | doANCESTOR (ANCESTOR *growth) |
void | doHISTORY (HISTORY *growth) |
void | doROUTE (ROUTE *growth) |
void | doWAS_IS (WAS_IS *growth) |
void | doNET_OUT (NET_OUT *growth) |
void | doSUPPLY_PIN (SUPPLY_PIN *growth) |
void | fillBOUNDARY (BOARD *aBoard, BOUNDARY *aBoundary) |
Make the board perimeter for the DSN file by filling the BOUNDARY element in the specctra element tree. | |
IMAGE * | makeIMAGE (BOARD *aBoard, FOOTPRINT *aFootprint) |
Allocates an I::MAGE on the heap and creates all the PINs according to the PADs in the FOOTPRINT. | |
PADSTACK * | makePADSTACK (BOARD *aBoard, PAD *aPad) |
Create a PADSTACK which matches the given pad. | |
PADSTACK * | makeVia (int aCopperDiameter, int aDrillDiameter, int aTopLayer, int aBotLayer) |
Make a round through hole PADSTACK using the given KiCad diameter in deci-mils. | |
PADSTACK * | makeVia (const ::PCB_VIA *aVia) |
Make any kind of PADSTACK using the given KiCad VIA. | |
void | deleteNETs () |
Delete all the NETs that may be in here. | |
void | exportNETCLASS (const std::shared_ptr< NETCLASS > &aNetClass, BOARD *aBoard) |
Export aNetClass to the DSN file. | |
PCB_TRACK * | makeTRACK (WIRE *wire, PATH *aPath, int aPointIndex, int aNetcode) |
Create a TRACK form the #PATH and BOARD info. | |
PCB_VIA * | makeVIA (WIRE_VIA *aVia, PADSTACK *aPadstack, const POINT &aPoint, int aNetCode, int aViaDrillDefault) |
Instantiate a KiCad VIA on the heap and initializes it with internal values consistent with the given PADSTACK, #POINT, and netcode. | |
Private Attributes | |
PCB * | m_pcb |
SHAPE_POLY_SET | m_brd_outlines |
SESSION * | m_session |
wxString | m_filename |
std::string | m_quote_char |
bool | m_footprintsAreFlipped |
STRING_FORMATTER | m_sf |
STRINGS | m_layerIds |
indexed by PCB layer number | |
std::vector< int > | m_kicadLayer2pcb |
maps BOARD layer number to PCB layer numbers | |
std::vector< PCB_LAYER_ID > | m_pcbLayer2kicad |
maps PCB layer number to BOARD layer numbers | |
UNIT_RES * | m_routeResolution |
used during FromSESSION() only, memory for it is not owned here. | |
BOARD * | m_sessionBoard |
a copy to avoid passing as an argument, memory for it is not owned here. | |
PADSTACKSET | m_padstackset |
std::vector< NET * > | m_nets |
we don't want ownership here permanently, so we don't use boost::ptr_vector | |
int | m_top_via_layer |
specctra cu layers, 0 based index: | |
int | m_bot_via_layer |
Static Private Attributes | |
static const KEYWORD | keywords [] |
specctra DSN keywords | |
static const KICAD_T | scanPADs [] |
A DSN data tree, usually coming from a DSN file.
Is essentially a SPECCTRA_PARSER class.
Definition at line 3640 of file specctra.h.
|
inline |
Definition at line 3644 of file specctra.h.
References m_bot_via_layer, m_footprintsAreFlipped, m_pcb, m_quote_char, m_routeResolution, m_session, m_sessionBoard, and m_top_via_layer.
|
inlinevirtual |
Definition at line 3665 of file specctra.h.
References deleteNETs(), m_pcb, and m_session.
|
private |
Create a few data translation structures for layer name and number mapping between the DSN::PCB structure and the KiCad BOARD structure.
aBoard | The BOARD to create the maps for. |
Definition at line 76 of file specctra.cpp.
References B_Cu, F_Cu, FIRST_LAYER, BOARD::GetCopperLayerCount(), BOARD::GetLayerName(), m_kicadLayer2pcb, m_layerIds, m_pcbLayer2kicad, TO_UTF8, and ToLAYER_ID().
Referenced by FromBOARD(), and FromSESSION().
bool DSN::SPECCTRA_DB::BuiltBoardOutlines | ( | BOARD * | aBoard | ) |
Build the board outlines and store it in m_brd_outlines.
Because it calls GetBoardPolygonOutlines() it must be called before flipping footprints
Definition at line 234 of file specctra_export.cpp.
References BOARD::GetBoardPolygonOutlines(), and m_brd_outlines.
Referenced by DSN::ExportBoardToSpecctraFile().
|
inlineprivate |
Delete all the NETs that may be in here.
Definition at line 3938 of file specctra.h.
References m_nets.
Referenced by FromBOARD(), and ~SPECCTRA_DB().
|
private |
Definition at line 3274 of file specctra.cpp.
References DSN::ANCESTOR::comment, DSN::ANCESTOR::filename, readTIME(), and DSN::ANCESTOR::time_stamp.
Referenced by doHISTORY().
|
private |
Definition at line 1037 of file specctra.cpp.
References doPATH(), doRECTANGLE(), path, DSN::BOUNDARY::paths, RECTANGLE, and DSN::BOUNDARY::rectangle.
Referenced by doSTRUCTURE().
|
private |
Definition at line 1167 of file specctra.cpp.
References DSN::CIRCLE::diameter, DSN::CIRCLE::layer_id, DSN::CIRCLE::vertex, DSN::POINT::x, and DSN::POINT::y.
Referenced by doKEEPOUT(), doSHAPE(), doWINDOW(), and doWIRE().
|
private |
Definition at line 2698 of file specctra.cpp.
References doLAYER_RULE(), doRULE(), doTOPOLOGY(), DSN::CLASS::m_circuit, DSN::CLASS::m_class_id, DSN::CLASS::m_layer_rules, DSN::CLASS::m_net_ids, m_quote_char, DSN::CLASS::m_rules, DSN::CLASS::m_topology, and RULE.
Referenced by doNETWORK().
|
private |
Definition at line 1703 of file specctra.cpp.
References DSN::ELEM_HOLDER::Append(), DSN::CLASS_CLASS::classes, doCLASSES(), doLAYER_RULE(), doRULE(), RULE, and DSN::ELEM::Type().
Referenced by doREGION().
|
private |
Definition at line 1751 of file specctra.cpp.
References DSN::CLASSES::class_ids.
Referenced by doCLASS_CLASS().
|
private |
Definition at line 2857 of file specctra.cpp.
References DSN::COMP_ORDER::m_placement_ids.
Referenced by doNET(), and doTOPOLOGY().
|
private |
Definition at line 2012 of file specctra.cpp.
References doPLACE(), DSN::COMPONENT::m_image_id, DSN::COMPONENT::m_places, and PLACE.
Referenced by doPLACEMENT().
|
private |
Definition at line 943 of file specctra.cpp.
Referenced by doWIRE().
|
private |
Definition at line 1277 of file specctra.cpp.
References DSN::ELEM_HOLDER::Append(), doTOKPROP(), and DSN::CONTROL::via_at_smd.
Referenced by doSTRUCTURE().
|
private |
Definition at line 2873 of file specctra.cpp.
References doLAYER_RULE(), doRULE(), DSN::FROMTO::m_fromText, DSN::FROMTO::m_fromto_type, DSN::FROMTO::m_layer_rules, DSN::FROMTO::m_net_id, DSN::FROMTO::m_rules, DSN::FROMTO::m_toText, and RULE.
Referenced by doNET(), and doTOPOLOGY().
|
private |
Definition at line 1775 of file specctra.cpp.
References DSN::GRID::m_dimension, DSN::GRID::m_direction, DSN::GRID::m_grid_type, DSN::GRID::m_image_type, and DSN::GRID::m_offset.
Referenced by doSTRUCTURE().
|
private |
Definition at line 3313 of file specctra.cpp.
References DSN::HISTORY::ancestors, DSN::HISTORY::comments, doANCESTOR(), readTIME(), and DSN::HISTORY::time_stamp.
Referenced by doSESSION().
|
private |
Definition at line 2302 of file specctra.cpp.
References DSN::ELEM_HOLDER::Append(), doKEEPOUT(), doPIN(), doRULE(), doSHAPE(), doUNIT(), DSN::IMAGE::m_image_id, DSN::IMAGE::m_keepouts, DSN::IMAGE::m_pins, DSN::IMAGE::m_place_rules, DSN::IMAGE::m_rules, DSN::IMAGE::m_side, DSN::IMAGE::m_unit, PIN, pin, and RULE.
Referenced by doLIBRARY().
|
private |
Definition at line 844 of file specctra.cpp.
References doCIRCLE(), doPATH(), doQARC(), doRECTANGLE(), doRULE(), doWINDOW(), KI_FALLTHROUGH, DSN::KEEPOUT::m_name, DSN::KEEPOUT::m_place_rules, DSN::KEEPOUT::m_rules, DSN::KEEPOUT::m_sequence_number, DSN::KEEPOUT::m_shape, DSN::KEEPOUT::m_windows, RECTANGLE, and RULE.
Referenced by doIMAGE(), and doSTRUCTURE().
|
private |
Definition at line 1350 of file specctra.cpp.
References DSN::LAYER::cost, DSN::LAYER::cost_type, DSN::LAYER::direction, doPROPERTIES(), doRULE(), DSN::LAYER::layer_type, DSN::LAYER::name, DSN::LAYER::properties, RULE, DSN::LAYER::rules, and DSN::LAYER::use_net.
Referenced by doSTRUCTURE(), and doSTRUCTURE_OUT().
|
private |
Definition at line 634 of file specctra.cpp.
References doSPECCTRA_LAYER_PAIR(), and DSN::LAYER_NOISE_WEIGHT::layer_pairs.
Referenced by doSTRUCTURE().
|
private |
Definition at line 1852 of file specctra.cpp.
References doRULE(), DSN::LAYER_RULE::m_layer_ids, DSN::LAYER_RULE::m_rule, and RULE.
Referenced by doCLASS(), doCLASS_CLASS(), doFROMTO(), and doNET().
|
private |
Definition at line 2455 of file specctra.cpp.
References DSN::LIBRARY::AddPadstack(), doIMAGE(), doPADSTACK(), doUNIT(), image, DSN::LIBRARY::m_images, and DSN::LIBRARY::m_unit.
|
private |
Definition at line 2511 of file specctra.cpp.
References DSN::PIN_REF::component_id, doCOMP_ORDER(), doFROMTO(), doLAYER_RULE(), doRULE(), empty(), DSN::NET::m_comp_order, DSN::NET::m_expose, DSN::NET::m_fromtos, DSN::NET::m_layer_rules, DSN::NET::m_load, DSN::NET::m_net_id, DSN::NET::m_net_number, DSN::NET::m_noexpose, DSN::NET::m_pins, DSN::NET::m_pins_type, DSN::NET::m_rules, DSN::NET::m_source, DSN::NET::m_terminator, DSN::NET::m_unassigned, DSN::PIN_REF::pin_id, readCOMPnPIN(), RULE, and DSN::ELEM::type.
Referenced by doNETWORK().
|
private |
Definition at line 3586 of file specctra.cpp.
References doRULE(), doSUPPLY_PIN(), doWIRE(), doWIRE_VIA(), DSN::NET_OUT::net_id, DSN::NET_OUT::net_number, RULE, DSN::NET_OUT::rules, DSN::NET_OUT::supply_pins, WIRE, DSN::NET_OUT::wire_vias, and DSN::NET_OUT::wires.
Referenced by doROUTE().
|
private |
Definition at line 2811 of file specctra.cpp.
References CLASS, doCLASS(), doNET(), DSN::NETWORK::m_classes, DSN::NETWORK::m_nets, and NET.
Referenced by doPCB().
|
private |
Definition at line 2102 of file specctra.cpp.
References DSN::ELEM_HOLDER::Append(), doRULE(), doSHAPE(), doUNIT(), DSN::PADSTACK::m_absolute, DSN::PADSTACK::m_attach, DSN::PADSTACK::m_padstack_id, DSN::PADSTACK::m_rotate, DSN::PADSTACK::m_rules, DSN::PADSTACK::m_unit, DSN::PADSTACK::m_via_id, and RULE.
Referenced by doLIBRARY().
|
private |
Definition at line 413 of file specctra.cpp.
References DSN::PARSER::case_sensitive, DSN::PARSER::constants, DSN::PARSER::generated_by_freeroute, DSN::PARSER::host_cad, DSN::PARSER::host_version, m_quote_char, DSN::PARSER::routes_include_guides, DSN::PARSER::routes_include_image_conductor, DSN::PARSER::routes_include_testpoint, DSN::PARSER::space_in_quoted_tokens, DSN::PARSER::string_quote, and DSN::PARSER::via_rotate_first.
|
private |
Definition at line 1087 of file specctra.cpp.
References DSN::PATH::aperture_type, DSN::PATH::aperture_width, DSN::PATH::layer_id, DSN::PATH::points, DSN::POINT::x, and DSN::POINT::y.
Referenced by doBOUNDARY(), doKEEPOUT(), doREGION(), doSHAPE(), doWINDOW(), and doWIRE().
|
private |
Definition at line 298 of file specctra.cpp.
References doLIBRARY(), doNETWORK(), doPARSER(), doPLACEMENT(), doRESOLUTION(), doSTRUCTURE(), doUNIT(), doWIRING(), DSN::PCB::m_library, DSN::PCB::m_network, DSN::PCB::m_parser, DSN::PCB::m_pcbname, DSN::PCB::m_placement, DSN::PCB::m_resolution, DSN::PCB::m_structure, DSN::PCB::m_unit, DSN::PCB::m_wiring, and NETWORK.
Referenced by LoadPCB().
|
private |
Definition at line 2404 of file specctra.cpp.
References DSN::PIN::m_padstack_id, DSN::PIN::m_pin_id, DSN::PIN::m_vertex, DSN::PIN::SetRotation(), DSN::POINT::x, and DSN::POINT::y.
Referenced by doIMAGE().
|
private |
Definition at line 1877 of file specctra.cpp.
References doPROPERTIES(), doREGION(), doRULE(), DSN::PLACE::m_component_id, DSN::PLACE::m_lock_type, DSN::PLACE::m_logical_part, DSN::PLACE::m_mirror, DSN::PLACE::m_part_number, DSN::PLACE::m_place_rules, DSN::PLACE::m_properties, DSN::PLACE::m_region, DSN::PLACE::m_rules, DSN::PLACE::m_side, DSN::PLACE::m_status, REGION, RULE, DSN::PLACE::SetRotation(), DSN::PLACE::SetVertex(), DSN::POINT::x, and DSN::POINT::y.
Referenced by doCOMPONENT().
|
private |
Definition at line 2044 of file specctra.cpp.
References doCOMPONENT(), doRESOLUTION(), doUNIT(), DSN::PLACEMENT::m_components, DSN::PLACEMENT::m_flip_style, and DSN::PLACEMENT::m_unit.
Referenced by doPCB(), and doSESSION().
|
private |
Definition at line 1327 of file specctra.cpp.
|
private |
Definition at line 1198 of file specctra.cpp.
References DSN::QARC::aperture_width, DSN::QARC::layer_id, DSN::QARC::vertex, DSN::POINT::x, and DSN::POINT::y.
Referenced by doKEEPOUT(), doSHAPE(), doWINDOW(), and doWIRE().
|
private |
Definition at line 1138 of file specctra.cpp.
References DSN::RECTANGLE::layer_id, DSN::RECTANGLE::point0, DSN::RECTANGLE::point1, DSN::POINT::x, and DSN::POINT::y.
Referenced by doBOUNDARY(), doKEEPOUT(), doREGION(), doSHAPE(), doWINDOW(), and doWIRE().
|
private |
Definition at line 1628 of file specctra.cpp.
References DSN::ELEM_HOLDER::Append(), doCLASS_CLASS(), doPATH(), doRECTANGLE(), doRULE(), doSTRINGPROP(), DSN::REGION::m_polygon, DSN::REGION::m_rectangle, DSN::REGION::m_region_id, DSN::REGION::m_rules, RECTANGLE, and RULE.
Referenced by doPLACE(), and doSTRUCTURE().
|
private |
Definition at line 568 of file specctra.cpp.
References DSN::UNIT_RES::units, and DSN::UNIT_RES::value.
Referenced by doPCB(), doPLACEMENT(), doROUTE(), doSTRUCTURE(), and doWIRING().
|
private |
Definition at line 3496 of file specctra.cpp.
References doLIBRARY(), doNET_OUT(), doPARSER(), doRESOLUTION(), doSTRUCTURE_OUT(), DSN::ROUTE::library, DSN::ROUTE::net_outs, DSN::ROUTE::parser, DSN::ROUTE::resolution, and DSN::ROUTE::structure_out.
Referenced by doSESSION().
|
private |
Definition at line 1490 of file specctra.cpp.
References m_quote_char, and DSN::RULE::m_rules.
Referenced by doCLASS(), doCLASS_CLASS(), doFROMTO(), doIMAGE(), doKEEPOUT(), doLAYER(), doLAYER_RULE(), doNET(), doNET_OUT(), doPADSTACK(), doPLACE(), doREGION(), doSTRUCTURE(), and doSTRUCTURE_OUT().
|
private |
Definition at line 3372 of file specctra.cpp.
References DSN::SESSION::base_design, doHISTORY(), doPLACEMENT(), doROUTE(), doSTRUCTURE(), doWAS_IS(), DSN::SESSION::history, DSN::SESSION::placement, DSN::SESSION::route, DSN::SESSION::session_id, DSN::SESSION::structure, and DSN::SESSION::was_is.
Referenced by LoadSESSION().
|
private |
Definition at line 2214 of file specctra.cpp.
References doCIRCLE(), doPATH(), doQARC(), doRECTANGLE(), doWINDOW(), KI_FALLTHROUGH, DSN::SHAPE::m_connect, DSN::SHAPE::m_windows, RECTANGLE, and DSN::WINDOW::shape.
Referenced by doIMAGE(), and doPADSTACK().
|
private |
Definition at line 617 of file specctra.cpp.
References DSN::SPECCTRA_LAYER_PAIR::layer_id0, DSN::SPECCTRA_LAYER_PAIR::layer_id1, and DSN::SPECCTRA_LAYER_PAIR::layer_weight.
Referenced by doLAYER_NOISE_WEIGHT().
|
private |
Definition at line 1225 of file specctra.cpp.
References DSN::STRINGPROP::value.
Referenced by doREGION(), and doSTRUCTURE().
|
private |
Definition at line 654 of file specctra.cpp.
References DSN::ELEM_HOLDER::Append(), doBOUNDARY(), doCONTROL(), doGRID(), doKEEPOUT(), doLAYER(), doLAYER_NOISE_WEIGHT(), doREGION(), doRESOLUTION(), doRULE(), doSTRINGPROP(), doUNIT(), doVIA(), grid, DSN::STRUCTURE::m_boundary, DSN::STRUCTURE::m_control, DSN::STRUCTURE::m_grids, DSN::STRUCTURE::m_keepouts, DSN::STRUCTURE::m_layer_noise_weight, DSN::STRUCTURE::m_layers, DSN::STRUCTURE::m_place_boundary, DSN::STRUCTURE::m_place_rules, DSN::STRUCTURE::m_planes, DSN::STRUCTURE::m_regions, DSN::STRUCTURE::m_rules, DSN::STRUCTURE::m_unit, DSN::STRUCTURE::m_via, REGION, RULE, and VIA.
Referenced by doPCB(), and doSESSION().
|
private |
Definition at line 799 of file specctra.cpp.
References doLAYER(), doRULE(), DSN::STRUCTURE_OUT::m_layers, DSN::STRUCTURE_OUT::m_rules, and RULE.
Referenced by doROUTE().
|
private |
Definition at line 3658 of file specctra.cpp.
References DSN::PIN_REF::component_id, empty(), DSN::SUPPLY_PIN::net_id, DSN::PIN_REF::pin_id, DSN::SUPPLY_PIN::pin_refs, and readCOMPnPIN().
Referenced by doNET_OUT().
|
private |
Definition at line 1233 of file specctra.cpp.
References DSN::TOKPROP::value.
Referenced by doCONTROL().
|
private |
Definition at line 2659 of file specctra.cpp.
References doCOMP_ORDER(), doFROMTO(), DSN::TOPOLOGY::m_comp_orders, and DSN::TOPOLOGY::m_fromtos.
Referenced by doCLASS().
|
private |
Definition at line 596 of file specctra.cpp.
References DSN::UNIT_RES::units.
Referenced by doIMAGE(), doLIBRARY(), doPADSTACK(), doPCB(), doPLACEMENT(), doSTRUCTURE(), and doWIRING().
|
private |
Definition at line 1246 of file specctra.cpp.
References DSN::VIA::m_padstacks, and DSN::VIA::m_spares.
Referenced by doSTRUCTURE().
|
private |
Definition at line 3455 of file specctra.cpp.
References DSN::PIN_REF::component_id, empty(), DSN::PIN_PAIR::is, DSN::PIN_REF::pin_id, DSN::WAS_IS::pin_pairs, readCOMPnPIN(), and DSN::PIN_PAIR::was.
Referenced by doSESSION().
|
private |
Definition at line 978 of file specctra.cpp.
References doCIRCLE(), doPATH(), doQARC(), doRECTANGLE(), KI_FALLTHROUGH, RECTANGLE, and DSN::WINDOW::shape.
Referenced by doKEEPOUT(), doSHAPE(), and doWIRE().
|
private |
Definition at line 2966 of file specctra.cpp.
References doCIRCLE(), doCONNECT(), doPATH(), doQARC(), doRECTANGLE(), doWINDOW(), KI_FALLTHROUGH, DSN::WIRE::m_attr, DSN::WIRE::m_connect, DSN::WIRE::m_net_id, DSN::WIRE::m_shape, DSN::WIRE::m_shield, DSN::WIRE::m_supply, DSN::WIRE::m_turret, DSN::WIRE::m_windows, DSN::WIRE::m_wire_type, and RECTANGLE.
Referenced by doNET_OUT(), and doWIRING().
|
private |
Definition at line 3100 of file specctra.cpp.
References DSN::WIRE_VIA::m_attr, DSN::WIRE_VIA::m_contact_layers, DSN::WIRE_VIA::m_net_id, DSN::WIRE_VIA::m_padstack_id, DSN::WIRE_VIA::m_supply, DSN::WIRE_VIA::m_vertexes, DSN::WIRE_VIA::m_via_number, DSN::WIRE_VIA::m_via_type, DSN::WIRE_VIA::m_virtual_pin_name, DSN::POINT::x, and DSN::POINT::y.
Referenced by doNET_OUT(), and doWIRING().
|
private |
Definition at line 3215 of file specctra.cpp.
References doRESOLUTION(), doUNIT(), doWIRE(), doWIRE_VIA(), DSN::WIRING::unit, WIRE, DSN::WIRING::wire_vias, and DSN::WIRING::wires.
Referenced by doPCB().
|
private |
Export aNetClass to the DSN file.
Definition at line 1731 of file specctra_export.cpp.
References NETCLASS::Default, BOARD::GetNetInfo(), m_bot_via_layer, DSN::CLASS::m_circuit, DSN::CLASS::m_class_id, DSN::NETWORK::m_classes, DSN::CLASS::m_net_ids, DSN::PCB::m_network, m_pcb, DSN::RULE::m_rules, DSN::CLASS::m_rules, m_top_via_layer, makeVia(), scale, text, TO_UTF8, and via.
Referenced by FromBOARD().
void DSN::SPECCTRA_DB::ExportPCB | ( | const wxString & | aFilename, |
bool | aNameChange = false |
||
) |
Write the internal PCB instance out as a SPECTRA DSN format file.
aFilename | The file to save to. |
aNameChange | If true, causes the pcb's name to change to "aFilename" and also to to be changed in the output file. |
IO_ERROR,if | an i/o error occurs saving the file. |
Definition at line 3696 of file specctra.cpp.
References DSN::PCB::Format(), m_pcb, DSN::PCB::m_pcbname, m_quote_char, and TO_UTF8.
Referenced by DSN::ExportBoardToSpecctraFile().
void DSN::SPECCTRA_DB::ExportSESSION | ( | const wxString & | aFilename | ) |
Write the internal #SESSION instance out as a #SPECTRA DSN format file.
aFilename | The file to save to. |
Definition at line 3710 of file specctra.cpp.
References DSN::SESSION::Format(), m_quote_char, and m_session.
Make the board perimeter for the DSN file by filling the BOUNDARY element in the specctra element tree.
aBoard | The BOARD to get information from in order to make the BOUNDARY. |
aBoundary | The empty BOUNDARY to fill in. |
Definition at line 1037 of file specctra_export.cpp.
References DSN::PATH::AppendPoint(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_POLY_SET::Hole(), SHAPE_POLY_SET::HoleCount(), m_brd_outlines, DSN::STRUCTURE::m_keepouts, m_pcb, DSN::PCB::m_structure, DSN::mapPt(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), path, DSN::BOUNDARY::paths, SHAPE_LINE_CHAIN::PointCount(), DSN::PATH::SetLayerId(), DSN::KEEPOUT::SetShape(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by FromBOARD().
|
private |
Return the PCB layer index for a given layer name, within the specctra sessionfile.
Definition at line 125 of file specctra.cpp.
References m_layerIds.
Referenced by makeTRACK(), and makeVIA().
void DSN::SPECCTRA_DB::FlipFOOTPRINTs | ( | BOARD * | aBoard | ) |
Flip the footprints which are on the back side of the board to the front.
Definition at line 1806 of file specctra_export.cpp.
References B_Cu, BOARD::Footprints(), and m_footprintsAreFlipped.
Referenced by DSN::ExportBoardToSpecctraFile().
void DSN::SPECCTRA_DB::FromBOARD | ( | BOARD * | aBoard | ) |
Add the entire BOARD to the PCB but does not write it out.
Definition at line 1088 of file specctra_export.cpp.
References _, DSN::LIBRARY::AddPadstack(), DSN::KEEPOUT::AddWindow(), ANGLE_180, DSN::PATH::AppendPoint(), DSN::VIA::AppendVia(), DSN::LIBRARY::AppendVia(), EDA_ANGLE::AsDegrees(), B_Cu, NETINFO_LIST::begin(), buildLayerMaps(), DSN::PIN_REF::component_id, deleteNETs(), empty(), NETINFO_LIST::end(), exportNETCLASS(), fillBOUNDARY(), BOARD::FindNet(), BOARD::Footprints(), BOARD::GetCopperLayerCount(), BOARD::GetDesignSettings(), BOARD::GetLayerType(), BOARD::GetNetInfo(), NETINFO_ITEM::GetNetname(), image, SHAPE_POLY_SET::ITERATOR_TEMPLATE< T >::IsEndContour(), DSN::PATH::layer_id, DSN::LAYER::layer_type, DSN::PLACEMENT::LookupCOMPONENT(), DSN::LIBRARY::LookupIMAGE(), DSN::LIBRARY::LookupVia(), LT_JUMPER, LT_MIXED, LT_POWER, LT_SIGNAL, m_bot_via_layer, DSN::PLACE::m_component_id, DSN::STRUCTURE::m_keepouts, m_kicadLayer2pcb, m_layerIds, DSN::STRUCTURE::m_layers, DSN::PCB::m_library, DSN::KEEPOUT::m_name, DSN::NET::m_net_id, DSN::WIRE::m_net_id, DSN::WIRE_VIA::m_net_id, DSN::NETWORK::m_nets, m_nets, BOARD_DESIGN_SETTINGS::m_NetSettings, DSN::PCB::m_network, DSN::WIRE_VIA::m_padstack_id, m_padstackset, DSN::PCB::m_parser, DSN::PLACE::m_part_number, m_pcb, m_pcbLayer2kicad, DSN::NET::m_pins, DSN::PCB::m_placement, DSN::COMPONENT::m_places, DSN::STRUCTURE::m_planes, DSN::PCB::m_resolution, DSN::RULE::m_rules, DSN::STRUCTURE::m_rules, DSN::PLACE::m_side, DSN::PCB::m_structure, m_top_via_layer, DSN::PCB::m_unit, DSN::WIRE_VIA::m_vertexes, DSN::STRUCTURE::m_via, DSN::WIRE_VIA::m_via_type, DSN::LIBRARY::m_vias, DSN::WIRE::m_wire_type, DSN::PCB::m_wiring, makeIMAGE(), MakePCB(), makeVia(), DSN::mapPt(), name, DSN::LAYER::name, EDA_ANGLE::Normalize(), path, PCB_VIA_T, pin, DSN::PIN_REF::pin_id, DSN::LAYER::properties, registered, scale, DSN::STRUCTURE::SetBOUNDARY(), DSN::PLACE::SetRotation(), DSN::WINDOW::SetShape(), DSN::KEEPOUT::SetShape(), DSN::WIRE::SetShape(), DSN::PLACE::SetVertex(), DSN::PARSER::space_in_quoted_tokens, THROW_IO_ERROR, TO_UTF8, BOARD::Tracks(), UNDEFINED_LAYER, DSN::UNIT_RES::units, DSN::UNIT_RES::value, via, DSN::WIRING::wire_vias, DSN::WIRING::wires, and BOARD::Zones().
Referenced by DSN::ExportBoardToSpecctraFile().
void DSN::SPECCTRA_DB::FromSESSION | ( | BOARD * | aBoard | ) |
Add the entire #SESSION info to a BOARD but does not write it out.
The BOARD given to this function will have all its tracks and via's replaced, and all its components are subject to being moved.
aBoard | The BOARD to merge the #SESSION information into. |
Definition at line 330 of file specctra_import.cpp.
References _, BOARD::Add(), B_Cu, buildLayerMaps(), DEGREES_T, BOARD::DeleteMARKERs(), F_Cu, BOARD::FindFootprintByReference(), BOARD::FindNet(), FOOTPRINT::Flip(), From_UTF8(), BOARD::GetDesignSettings(), FOOTPRINT::GetLayer(), NETINFO_ITEM::GetNetCode(), DSN::WIRE_VIA::GetPadstackId(), FOOTPRINT::GetPosition(), DSN::ELEM::GetUnits(), DSN::ROUTE::GetUnits(), group, library, DSN::ROUTE::library, locked, DSN::PLACE::m_component_id, DSN::PLACEMENT::m_components, DSN::PLACE::m_hasVertex, BOARD_DESIGN_SETTINGS::m_NetSettings, DSN::PLACE::m_rotation, m_routeResolution, m_session, m_sessionBoard, DSN::WIRE::m_shape, DSN::PLACE::m_side, DSN::PLACE::m_vertex, DSN::WIRE_VIA::m_vertexes, makeTRACK(), makeVIA(), DSN::mapPt(), DSN::ROUTE::net_outs, path, PCB_TRACE_T, DSN::SESSION::placement, BOARD::RemoveAll(), DSN::SESSION::route, FOOTPRINT::SetOrientation(), FOOTPRINT::SetPosition(), THROW_IO_ERROR, BOARD::Tracks(), DSN::ELEM::Type(), and via.
Referenced by DSN::ImportSpecctraSession().
|
inline |
|
inline |
void DSN::SPECCTRA_DB::LoadPCB | ( | const wxString & | aFilename | ) |
A recursive descent parser for a SPECCTRA DSN "design" file.
A design file is nearly a full description of a PCB (seems to be missing only the silkscreen stuff).
aFilename | The name of the dsn file to load. |
IO_ERROR | if there is a lexer or parser error. |
Definition at line 259 of file specctra.cpp.
void DSN::SPECCTRA_DB::LoadSESSION | ( | const wxString & | aFilename | ) |
A recursive descent parser for a SPECCTRA DSN "session" file.
A session file is a file that is fed back from the router to the layout tool (Pcbnew) and should be used to update a BOARD object with the new tracks, vias, and component locations.
aFilename | The name of the dsn file to load. |
IO_ERROR | if there is a lexer or parser error. |
Definition at line 278 of file specctra.cpp.
References doSESSION(), m_session, and SetSESSION().
Referenced by DSN::ImportSpecctraSession(), and main().
Allocates an I::MAGE on the heap and creates all the PINs according to the PADs in the FOOTPRINT.
Definition at line 604 of file specctra_export.cpp.
References SHAPE_POLY_SET::AddOutline(), DSN::KEEPOUT::AddWindow(), LSET::AllCuMask(), ANGLE_0, ANGLE_360, SHAPE_POLY_SET::Append(), DSN::PATH::AppendPoint(), ARC_HIGH_DEF, EDA_ANGLE::AsDegrees(), B_Cu, UTF8::c_str(), SHAPE_LINE_CHAIN::Clear(), PCB_TYPE_COLLECTOR::Collect(), ConvertArcToPolyline(), SHAPE_LINE_CHAIN::CPoint(), ERROR_INSIDE, LIB_ID::Format(), EDA_SHAPE::GetArcAngle(), PCB_SHAPE::GetCenter(), BOARD::GetCopperLayerCount(), COLLECTOR::GetCount(), BOARD::GetDesignSettings(), EDA_SHAPE::GetEnd(), FOOTPRINT::GetFPID(), FOOTPRINT::GetOrientation(), FOOTPRINT::GetPosition(), EDA_SHAPE::GetRadius(), EDA_SHAPE::GetShape(), EDA_SHAPE::GetStart(), PCB_SHAPE::GetWidth(), image, SHAPE_POLY_SET::ITERATOR_TEMPLATE< T >::IsEndContour(), DSN::isRoundKeepout(), ZONE::IterateWithHoles(), DSN::PATH::layer_id, BOARD_DESIGN_SETTINGS::m_HoleClearance, m_kicadLayer2pcb, m_layerIds, DSN::PADSTACK::m_padstack_id, m_padstackset, m_pcb, DSN::PCB::m_structure, makePADSTACK(), DSN::mapPt(), move, EDA_ANGLE::Normalize(), SHAPE_POLY_SET::Outline(), pad, path, PCB_PAD_T, PCB_SHAPE_T, pin, SHAPE_POLY_SET::PM_FAST, SHAPE_LINE_CHAIN::PointCount(), ZONE::Rotate(), scale, DSN::CIRCLE::SetDiameter(), DSN::CIRCLE::SetLayerId(), DSN::WINDOW::SetShape(), DSN::KEEPOUT::SetShape(), DSN::CIRCLE::SetVertex(), SHAPE_POLY_SET::Simplify(), TO_UTF8, TransformCircleToPolygon(), VECTOR2< T >::x, VECTOR2< T >::y, and FOOTPRINT::Zones().
Referenced by FromBOARD().
Create a PADSTACK which matches the given pad.
aBoard | The owner of the PAD's footprint. |
aPad | The PAD which needs to be made into a PADSTACK. |
Definition at line 240 of file specctra_export.cpp.
References std::abs(), PADSTACK::ALL_LAYERS, LSET::AllCuMask(), ANGLE_0, DSN::ELEM_HOLDER::Append(), DSN::PATH::AppendPoint(), BuildConvexHull(), SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CPoint(), delta, ERROR_INSIDE, PAD::GetBoundingBox(), PAD::GetChamferPositions(), PAD::GetChamferRectRatio(), BOARD::GetCopperLayerCount(), PAD::GetDelta(), BOARD::GetDesignSettings(), SHAPE_POLY_SET::GetHash(), BOX2< Vec >::GetHeight(), PAD::GetLayerSet(), PAD::GetOffset(), PAD::GetRoundRectCornerRadius(), PAD::GetShape(), PAD::GetSize(), BOX2< Vec >::GetWidth(), PAD::IsOnLayer(), DSN::isRoundKeepout(), DSN::IU2um(), KiROUND(), m_layerIds, BOARD_DESIGN_SETTINGS::m_MaxError, m_pcbLayer2kicad, DSN::makePath(), DSN::mapPt(), PAD::MergePrimitivesAsPolygon(), SHAPE_POLY_SET::Outline(), path, SHAPE_LINE_CHAIN::PointCount(), scale, DSN::RECTANGLE::SetCorners(), DSN::CIRCLE::SetDiameter(), DSN::PATH::SetLayerId(), DSN::CIRCLE::SetLayerId(), DSN::RECTANGLE::SetLayerId(), DSN::PADSTACK::SetPadstackId(), DSN::WINDOW::SetShape(), DSN::CIRCLE::SetVertex(), HASH_128::ToString(), TransformRoundChamferedRectToPolygon(), VECTOR2< T >::x, DSN::POINT::x, VECTOR2< T >::y, and DSN::POINT::y.
Referenced by makeIMAGE().
|
static |
Make a PCB with all the default ELEMs and parts on the heap.
Definition at line 3721 of file specctra.cpp.
References DSN::STRUCTURE::m_boundary, DSN::PCB::m_library, DSN::PCB::m_network, DSN::PCB::m_parser, DSN::PCB::m_placement, DSN::PCB::m_resolution, DSN::STRUCTURE::m_rules, DSN::PCB::m_structure, DSN::PCB::m_unit, DSN::STRUCTURE::m_via, DSN::PCB::m_wiring, NETWORK, RULE, and VIA.
Referenced by DSN::ExportBoardToSpecctraFile(), and FromBOARD().
|
private |
Create a TRACK form the #PATH and BOARD info.
Definition at line 145 of file specctra_import.cpp.
References _, DSN::PATH::aperture_width, findLayerName(), From_UTF8(), DSN::PATH::layer_id, m_pcbLayer2kicad, m_routeResolution, m_sessionBoard, DSN::WIRE::m_wire_type, DSN::mapPt(), DSN::PATH::points, scale, PCB_TRACK::SetEnd(), BOARD_ITEM::SetLayer(), BOARD_ITEM::SetLocked(), BOARD_CONNECTED_ITEM::SetNetCode(), PCB_TRACK::SetStart(), PCB_TRACK::SetWidth(), and THROW_IO_ERROR.
Referenced by FromSESSION().
|
private |
Make a round through hole PADSTACK using the given KiCad diameter in deci-mils.
aCopperDiameter | The diameter of the copper pad. |
aDrillDiameter | The drill diameter, used on re-import of the session file. |
aTopLayer | The DSN::PCB top most layer index. |
aBotLayer | The DSN::PCB bottom most layer index. |
Definition at line 985 of file specctra_export.cpp.
References DSN::ELEM_HOLDER::Append(), DSN::IU2um(), m_layerIds, name, scale, DSN::CIRCLE::SetDiameter(), DSN::CIRCLE::SetLayerId(), DSN::PADSTACK::SetPadstackId(), and DSN::WINDOW::SetShape().
Referenced by exportNETCLASS(), and FromBOARD().
|
private |
Instantiate a KiCad VIA on the heap and initializes it with internal values consistent with the given PADSTACK, #POINT, and netcode.
Definition at line 175 of file specctra_import.cpp.
References _, PADSTACK::ALL_LAYERS, B_Cu, DSN::CIRCLE::diameter, F_Cu, findLayerName(), From_UTF8(), BOARD::GetCopperLayerCount(), EDA_IU_SCALE::IU_PER_MM, DSN::CIRCLE::layer_id, DSN::ELEM_HOLDER::Length(), DSN::PADSTACK::m_padstack_id, m_pcbLayer2kicad, m_routeResolution, m_sessionBoard, DSN::WIRE_VIA::m_via_type, DSN::mapPt(), pcbIUScale, scale, DSN::WINDOW::shape, THROW_IO_ERROR, DSN::ELEM::Type(), UNDEFINED_DRILL_DIAMETER, and via.
Referenced by FromSESSION().
|
private |
Read a <pin_reference> and splits it into the two parts which are on either side of the hyphen.
This function is specialized because pin_reference may or may not be using double quotes. Both of these are legal: U2-14 or "U2"-"14". The lexer treats the first one as a single T_SYMBOL, so in that case we have to split it into two here.
The caller should have already read in the first token comprising the pin_reference and it will be tested through CurTok().
component_id | Where to put the text preceding the '-' hyphen. |
pid_id | Where to put the text which trails the '-'. |
IO_ERROR,if | the next token or two do no make up a pin_reference, or there is an error reading from the input stream. |
Definition at line 137 of file specctra.cpp.
Referenced by doNET(), doSUPPLY_PIN(), and doWAS_IS().
|
private |
Read a <time_stamp> which consists of 8 lexer tokens: "month date hour : minute : second year".
This function is specialized because time_stamps occur more than once in a session file. The caller should not have already read in the first token comprising the time stamp.
time_stamp | Where to put the parsed time value. |
IO_ERROR,if | the next token or 8 do no make up a time stamp, or there is an error reading from the input stream. |
Definition at line 179 of file specctra.cpp.
Referenced by doANCESTOR(), and doHISTORY().
void DSN::SPECCTRA_DB::RevertFOOTPRINTs | ( | BOARD * | aBoard | ) |
Flip the footprints which were on the back side of the board back to the back.
Definition at line 1826 of file specctra_export.cpp.
References BOARD::Footprints(), and m_footprintsAreFlipped.
Referenced by DSN::ExportBoardToSpecctraFile().
|
inline |
Delete any existing PCB and replaces it with the given one.
Definition at line 3681 of file specctra.h.
References m_pcb.
Referenced by DSN::ExportBoardToSpecctraFile(), and LoadPCB().
|
inline |
Delete any existing SESSION and replaces it with the given one.
Definition at line 3692 of file specctra.h.
References m_session.
Referenced by LoadSESSION().
|
staticprivate |
specctra DSN keywords
Definition at line 3970 of file specctra.h.
|
private |
Definition at line 4002 of file specctra.h.
Referenced by exportNETCLASS(), FromBOARD(), and SPECCTRA_DB().
|
private |
Definition at line 3973 of file specctra.h.
Referenced by BuiltBoardOutlines(), and fillBOUNDARY().
|
private |
Definition at line 3975 of file specctra.h.
|
private |
Definition at line 3978 of file specctra.h.
Referenced by FlipFOOTPRINTs(), RevertFOOTPRINTs(), and SPECCTRA_DB().
|
private |
maps BOARD layer number to PCB layer numbers
Definition at line 3984 of file specctra.h.
Referenced by buildLayerMaps(), FromBOARD(), and makeIMAGE().
|
private |
indexed by PCB layer number
Definition at line 3982 of file specctra.h.
Referenced by buildLayerMaps(), findLayerName(), FromBOARD(), makeIMAGE(), makePADSTACK(), and makeVia().
|
private |
we don't want ownership here permanently, so we don't use boost::ptr_vector
Definition at line 3998 of file specctra.h.
Referenced by deleteNETs(), and FromBOARD().
|
private |
Definition at line 3995 of file specctra.h.
Referenced by FromBOARD(), and makeIMAGE().
|
private |
Definition at line 3972 of file specctra.h.
Referenced by exportNETCLASS(), ExportPCB(), fillBOUNDARY(), FromBOARD(), GetPCB(), LoadPCB(), makeIMAGE(), SetPCB(), SPECCTRA_DB(), and ~SPECCTRA_DB().
|
private |
maps PCB layer number to BOARD layer numbers
Definition at line 3985 of file specctra.h.
Referenced by buildLayerMaps(), FromBOARD(), makePADSTACK(), makeTRACK(), and makeVIA().
|
private |
Definition at line 3976 of file specctra.h.
Referenced by doCLASS(), doPARSER(), doRULE(), ExportPCB(), ExportSESSION(), and SPECCTRA_DB().
|
private |
used during FromSESSION() only, memory for it is not owned here.
Definition at line 3988 of file specctra.h.
Referenced by FromSESSION(), makeTRACK(), makeVIA(), and SPECCTRA_DB().
|
private |
Definition at line 3974 of file specctra.h.
Referenced by ExportSESSION(), FromSESSION(), GetSESSION(), LoadSESSION(), SetSESSION(), SPECCTRA_DB(), and ~SPECCTRA_DB().
|
private |
a copy to avoid passing as an argument, memory for it is not owned here.
Definition at line 3991 of file specctra.h.
Referenced by FromSESSION(), makeTRACK(), makeVIA(), and SPECCTRA_DB().
|
private |
Definition at line 3980 of file specctra.h.
|
private |
specctra cu layers, 0 based index:
Definition at line 4001 of file specctra.h.
Referenced by exportNETCLASS(), FromBOARD(), and SPECCTRA_DB().
|
staticprivate |
Definition at line 3993 of file specctra.h.